20 инструментов командной строки для мониторинга производительности Linux

Быть системным администратором, которому поручено ежедневно отслеживать и устранять проблемы с производительностью Linux-систем, – чрезвычайно ответственная задача.

Она требует непоколебимой преданности делу, глубокого понимания систем Linux и постоянного стремления к обеспечению оптимальной производительности и надежности.

Я составили список из 20 наиболее часто используемых инструментов мониторинга командной строки. Эти комегда могут оказаться незаменимыми для любого системного администратора Linux/Unix, они могут помочь эффективно контролировать, диагностировать и поддерживать работоспособность и производительность ваших систем.

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

@linuxkalii – всех любителей Linux, приглашаю в канал, где я публикую полезные советы, гайды, инструменты этичного хакинга и еще кучу всего полезного.

А здесь полезная папка от для всех администраторов и разработчиков, где много годного материала.

Эти инструменты мониторинга доступны во всех версиях Linux и могут быть полезны для отслеживания и поиска реальных причин проблем с производительностью.

Поехали!

1. Топ – Мониторинг процессов в Linux

Top – это база. Команда top, часто используется многими системными администраторами для контроля производительности Linux и доступна под многими Linux/Unix-подобными операционными системами.

Команда top используется для отображения всех запущенных и активных процессов в режиме реального времени в виде упорядоченного списка. Она отображает использование процессора, памяти, своп-памяти, размер кэша, размер буфера, PID процесса, пользователя и многое другое.

Команда top очень полезна системным администраторам для мониторинга и принятия нужных мер в случае необходимости. Давайте посмотрим команду top в действии.

top

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Проверка запущенных процессов Linux

2. VmStat – статистика виртуальной памяти

Команда Linux VmStat используется для отображения статистики виртуальной памяти, потоков ядра, дисков, системных процессов, блоков ввода-вывода, прерываний, активности процессора и многого другого.

Установите VmStat в Linux

По умолчанию команда vmstat недоступна в системах Linux, поэтому вам необходимо установить пакет sysstat(мощный инструмент мониторинга), который включает в себя программу vmstat.

$ sudo yum install sysstat [On Older CentOS/RHEL & Fedora] $ sudo dnf install sysstat [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install sysstat [On Debian/Ubuntu & Mint] $ sudo pacman -S sysstat [On Arch Linux]

Обычно используется формат команды vmstat.

# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 43008 275212 1152 561208 4 16 100 105 65 113 0 1 96 3 0

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Инструмент мониторинга системы Vmstat

3. Lsof – список открытых файлов

Команда lsof используется во многих Linux/Unix-подобных системах для отображения списка всех открытых файлов и процессов. К открытым файлам относятся дисковые файлы, сокеты, каналы, устройства и процессы.

Популярная ошибка – когда диск не может быть размонтирован и выдает ошибку, что файлы используются или открыты. С помощью lsof можно легко определить, какие файлы используются.

Наиболее распространенным форматом команды lsof является:

# lsof COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root cwd DIR 8,2 224 128 / systemd 1 root rtd DIR 8,2 224 128 / systemd 1 root txt REG 8,2 1567768 134930842 /usr/lib/systemd/systemd systemd 1 root mem REG 8,2 2714928 134261052 /usr/lib64/libm-2.28.so systemd 1 root mem REG 8,2 628592 134910905 /usr/lib64/libudev.so.1.6.11 systemd 1 root mem REG 8,2 969832 134261204 /usr/lib64/libsepol.so.1 systemd 1 root mem REG 8,2 1805368 134275205 /usr/lib64/libunistring.so.2.1.0 systemd 1 root mem REG 8,2 355456 134275293 /usr/lib64/libpcap.so.1.9.0 systemd 1 root mem REG 8,2 145984 134261219 /usr/lib64/libgpg-error.so.0.24.2 systemd 1 root mem REG 8,2 71528 134270542 /usr/lib64/libjson-c.so.4.0.0 systemd 1 root mem REG 8,2 371736 134910992 /usr/lib64/libdevmapper.so.1.02 systemd 1 root mem REG 8,2 26704 134275177 /usr/lib64/libattr.so.1.1.2448 systemd 1 root mem REG 8,2 3058736 134919279 /usr/lib64/libcrypto.so.1.1.1c ...

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Список открытых файлов в Linux

4. Tcpdump – анализатор сетевых пакетов

Команда tcpdump – одна из самых распространенных программ анализатора сетевых пакетов или сниффера пакетов, которая используется для захвата или фильтрации TCP/IP-пакетов, получаемых или передаваемых на определенном интерфейсе по сети.

Она также предоставляет возможность сохранять захваченные пакеты в файл для последующего анализа. tcpdump доступен практически во всех основных дистрибутивах Linux.

# tcpdump -i enp0s3 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 10:19:34.635893 IP tecmint.ssh > 192.168.0.124.45611: Flags [P.], seq 2840044824:2840045032, ack 4007244093 10:19:34.636289 IP 192.168.0.124.45611 > tecmint.ssh: Flags [.], ack 208, win 11768, options 10:19:34.873060 IP _gateway.57682 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 10:19:34.873104 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86 10:19:34.895453 IP _gateway.48953 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 10:19:34.895501 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86 10:19:34.992693 IP 142.250.4.189.https > 192.168.0.124.38874: UDP, length 45 10:19:35.010127 IP 192.168.0.124.38874 > 142.250.4.189.https: UDP, length 33 10:19:35.135578 IP _gateway.39383 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 10:19:35.135586 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86 10:19:35.155827 IP _gateway.57429 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 10:19:35.155835 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86 ...

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Tcpdump – анализатор сетевых пакетов

5. Netstat – сетевая статистика

netstat – это инструмент командной строки для мониторинга статистики входящих и исходящих сетевых пакетов, а также статистики интерфейсов. Это очень полезный инструмент для каждого системного администратора для мониторинга производительности сети и устранения проблем, связанных с сетью.

# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN tcp 0 0 tecmint:domain 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:postgres 0.0.0.0:* LISTEN tcp 0 0 tecmint:ssh 192.168.0.124:45611 ESTABLISHED tcp6 0 0 [::]:sunrpc [::]:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 localhost:postgres [::]:* LISTEN udp 0 0 0.0.0.0:mdns 0.0.0.0:* udp 0 0 localhost:323 0.0.0.0:* udp 0 0 tecmint:domain 0.0.0.0:* udp 0 0 0.0.0.0:bootps 0.0.0.0:* udp 0 0 tecmint:bootpc _gateway:bootps ESTABLISHED ...

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Netstat – мониторинг сетевых подключений Linux

Хотя в настоящее время netstat устарел в пользу команды ss, вы все еще можете обнаружить netstat в своем наборе сетевых инструментов.

6. Htop – мониторинг процессов в Linux

htop – это продвинутый интерактивный инструмент для мониторинга процессов Linux в режиме реального времени, который во многом похож на команду top, но имеет ряд дополнительных приемуществ, таких как удобный интерфейс для управления процессами, клавиши быстрого доступа, вертикальные и горизонтальные отобрадения процессов и многое другое.

# htop

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Htop – просмотрщик системных процессов Linux

htop – это сторонний инструмент, который не поставляется с системами Linux, его нужно установить с помощью менеджера пакетов.

7. Iotop – мониторинг дискового ввода-вывода в Linux

iotop также очень похожа на команду top и htopiotop, эта утилита позволяет просмотреть сведения об общем и текущем количестве операций обращения к диску..

Использование данной утилиты, позволяет узнать какой процесс в данный момент времени использует диск и как часто к нему обращаются. Вывод информации утилиты аналогичен утилите htop, отображается активность записи на диск и чтения с диска, использования раздела подкачки, полную статистку обращения к диску процессов и др.

Установка Iotop в Linux

По умолчанию команда iotop недоступна в Linux, и вам нужно установить ее:

$ sudo yum install iotop [On Older CentOS/RHEL & Fedora] $ sudo dnf install iotop [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install iotop [On Debian/Ubuntu & Mint] $ sudo pacman -S iotop [On Arch Linux]

Обычно используется следующий формат команды iotop.

# iotop

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

iotop – Мониторинг использования дискового ввода-вывода в Linux

Утилита iotop запускается только с админскими правами, поэтому для её запуска я использую sudo:

$ sudo iotop

8. Iostat – Статистика ввода/вывода

iostat – это простой инструмент, который собирает и отображает основные параметры ввода/вывода данных на диск, скорость записи и чтения данных, а также объем записанных или прочитанных данных. Этот инструмент часто используется для отслеживания проблем производительности устройств хранения данных, включая.

Установка Iostat

Чтобы установить команду iostat, вам нужно установить пакет sysstat, как показано на рисунке.

$ sudo yum install sysstat [On Older CentOS/RHEL & Fedora] $ sudo dnf install sysstat [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install sysstat [On Debian/Ubuntu & Mint] $ sudo pacman -S sysstat [On Arch Linux]

Обычно используется следующий формат команды iostat.

# iostat Linux 4.18.0-193.el8.x86_64 (tecmint) 04/05/2021 x86_64 (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.21 0.03 0.59 2.50 0.00 96.67 Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 3.95 83.35 89.63 1782431 1916653

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

iostat – мониторинг статистики дисковых операций ввода-вывода

9. IPTraf – мониторинг IP LAN в режиме реального времени

IPTraf – это консольная утилита мониторинга сети (IP LAN) в реальном времени с открытым исходным кодом для Linux. Она собирает разнообразную информацию, такую как мониторинг IP-трафика, проходящего по сети, включая информацию о TCP, ICMP, трафик TCP/UDP, пакеты TCP-соединений и подсчет байтов.

IPTraf позволяет системному администратору увидеть статистику сетевых пакетов (прошедших через сетевой интерфейс) по протоколам, статистику сетевых пакетов по их размеру и текущую пропускную способность интерфейса.

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

IPTraf IP сетевой монитор

10. Psacct или Acct – мониторинг активности пользователей

Утилиты psacct или acct очень полезны для мониторинга активности каждого пользователя в системе. Оба демона работают в фоновом режиме и помогают следить за общей активностью каждого пользователя в системе, а также за тем, какие ресурсы он потребляет.

Вы можете посмотреть что делает пользователь, какие команды выполняет, сколько ресурсов использует, как долго активен в системе и т. д.

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

psacct – Мониторинг действий пользователей Linux

11. Monit – мониторинг процессов и служб Linux

Monit – это бесплатная утилита для активного мониторинга с открытым исходным кодом для операционных систем семейства Linux. Утилита позволяет:

  • вести мониторинг и контролировать системные процессы, программы, файлы, каталоги регистрируя изменение разрешений файлов, размеров каталогов и контрольных сумм;

  • остановить ресурсоёмкие процессы, перезапускать сервисы которые перестали отвечать и запускать остановившиеся службы

  • вывести информацию о статусе каждого процесса, который был поставлен на мониторинг, и о ресурсах, которые операционная система выделяем для работы данных процессов;

Она позволяет следить за такими сервисами, как Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH. Состояние системы можно просматривать из командной строки или с помощью удобного интерфейса.

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Monit Monitor Linux System

12. NetHogs – мониторинг пропускной способности сети для каждого процесса

NetHogs – это небольшая программа с открытым исходным кодом (похожая на команду Linux top), которая отслеживает сетевую активность каждого процесса в вашей системе. Она также отслеживает в реальном времени пропускную способность сетевого трафика, используемую каждой программой или приложением.# nethogs

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Nethogs отслеживает сетевой трафик в Linux

13. iftop – Мониторинг пропускной способности сети

iftop – еще одна терминальная бесплатная утилита, которая применяется для мониторинга сетевого трафика на уровне интерфейсов. Iftop отображает информацию о текущем сетевом соединении, передаче данных, скорости передачи данных, а также выводит IP-адреса и порты, с которыми установлены соединения. Утилита является очень полезным инструментом для анализа сетевой активности на сервере, работающем на Linux-системе.

iftop является аналогом ‘top’ в контексте использования сети, подобно тому, как ‘top‘ предоставляет информацию об использовании процессора.

# iftop

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

iftop – Мониторинг пропускной способности сети

Если вам нужена подробная информация по использованию iptop, наберите в командной строке:

$ man iftop

14. Monitorix – мониторинг систем и сетей

Monitorix – это бесплатная легкая утилита, предназначенная для запуска и мониторинга системных и сетевых ресурсов Linux/Unix-серверов в большом объеме.

Она имеет встроенный HTTP-веб-сервер, который регулярно собирает системную и сетевую информацию и отображает ее в виде графиков. Мониторинг нагрузки на систему и ее использования, распределения памяти, состояния дисковых накопителей, системных служб, сетевых портов, почтовой статистики (Sendmail, Postfix, Dovecot и т.д.), статистики MySQL и многого другого.

Она предназначена для мониторинга общей производительности системы и помогает обнаружить сбои, узкие места, аномальные случае в функционировании вашей системы и т. д.

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Мониторинг Monitorix

15. Arpwatch – монитор активности в сети Ethernet

Arpwatch – это программа, предназначенная для мониторинга разрешения адресов (изменения MAC и IP адресов) сетевого трафика Ethernet в сети Linux.

Arpwatch создает журнал замеченных сопряжений IP- и MAC-адресов вместе с меткой времени, так что вы можете внимательно проследить, когда в сети появилась активность сопряжения.

В программе также есть возможность отправлять отчеты по электронной почте администратору сети при добавлении или изменении сопряжения.

Инструмент Arpwatch особенно полезен для сетевых администраторов, следящих за ARP-активностью для обнаружения ARP-спуфинга или неожиданных изменений IP/MAC-адресов.

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Arpwatch – мониторинг ARP-трафика

16. Suricata – мониторинг сетевой безопасности

Suricata – это высокопроизводительная система мониторинга сетевой безопасности и обнаружения и предотвращения вторжений с открытым исходным кодом для Linux, FreeBSD и Windows.

Она была разработана и принадлежит некоммерческому фонду OISF (Open Information Security Foundation).

Име

Предоставляет Suricata возможность использования GPU для вычислений в режиме IDS, а также в продвинутой IPS. Система изначально рассчитана на многопоточность.

17. VnStat PHP – мониторинг пропускной способности сети

vnStat PHP — это веб-интерфейс к vnStat, инструменту мониторинга пропускной способности для систем Linux. vnStat PHP позволяет просматривать данные, собранные vnStat, в привлекательном и удобном формате через веб-браузер.

vnStat PHP предоставляет множество вариантов настройки, таких как выбор сетевых интерфейсов для мониторинга и настройка цветов и графики, используемых для отображения данных.

18. Nagios – мониторинг сети/серверов

Nagios – это мощная система мониторинга с открытым исходным кодом, которая позволяет сетевым/системным администраторам выявлять и устранять проблемы, связанные с сервером, до того, как они повлияют на основные бизнес-процессы.

Nagios запускает плагины, хранящиеся на сервере, который подключен к хосту или другому серверу в вашей сети или Интернете. В случае любого сбоя система предупреждает о проблемах, чтобы техническая группа могла немедленно выполнить процесс восстановления.

19. Nmon: мониторинг производительности Linux

Nmon (расшифровывается как Nigel’s Performance Monitor) – это полностью интерактивная утилита командной строки для мониторинга производительности системы Linux, которая изначально была разработана IBM для систем AIX, а затем перенесена на платформу Linux.

Важным преимуществом инструмента nmon является то, что он позволяет отслеживать производительность таких аспектов вашей системы Linux, как загрузка ЦП, использование памяти, дисковое пространство, использование сети, основные процессы, статистика виртуальных машин, файловые системы, ресурсы, микропроцессорная мощность. раздел и многое другое, в одном, сжатом представлении.

Помимо интерактивного мониторинга вашей системы Linux, nmon также можно использовать в пакетном режиме для сбора и сохранения данных о производительности для последующего анализа.

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Nmon – инструмент для мониторинга производительности Linux

20. Collectl: Универсальный инструмент для мониторинга производительности

Collectl – это еще одна мощная и многофункциональная утилита командной строки, которая может использоваться для сбора информации о системных ресурсах Linux, таких как использование процессора, памяти, сети, процессов, nfs, TCP, сокетов и многого другого.

20 инструментов командной строки для мониторинга производительности Linux Linux, Мониторинг, Программирование, IT, Системное администрирование, Длиннопост, Telegram (ссылка)

Мониторинг коллектора

Расскажите в комментариях какие программы мониторинга вы используете для отслеживания производительности ваших Linux-серверов. Если мы упустили какой-то важный инструмент, который вы хотели бы включить в этот список, пожалуйста, сообщите нам об этом в комментариях и не забудьте поделиться им.