Pull to refresh

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

Level of difficultyEasy
Reading time11 min
Views25K
Original author: https://www.tecmint.com/


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

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

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

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

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

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

Поехали!

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

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

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

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

top
Check Linux Running Processes
Проверка запущенных процессов 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
Vmstat System Monitoring Tool
Инструмент мониторинга системы 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
...
List Open Files in Linux
Список открытых файлов в 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
...
Tcpdump - Network Packet Analyzer
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
...
Netstat - Monitor Linux Network Connections
Netstat – мониторинг сетевых подключений Linux

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

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

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

# htop
Htop - Linux System Process Viewer
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
iotop - Monitor Linux Disk IO Usage
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
iostat - Monitor Disk IO Statistics
iostat – мониторинг статистики дисковых операций ввода-вывода

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Monit Monitor Linux System
Monit Monitor Linux System

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

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

Nethogs Monitor Network Traffic in Linux
Nethogs отслеживает сетевой трафик в Linux

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

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

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

# iftop
iftop - Network Bandwidth Monitoring
iftop – Мониторинг пропускной способности сети

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

$ man iftop

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

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

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

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

Monitorix Monitoring
Мониторинг Monitorix

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

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

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

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

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

Arpwatch - Monitor ARP Traffic
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 также можно использовать в пакетном режиме для сбора и сохранения данных о производительности для последующего анализа.

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

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

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

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

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

Tags:
Hubs:
Total votes 35: ↑14 and ↓21-7
Comments10

Articles