20 инструментов командной строки для мониторинга производительности Linux
Быть системным или сетевым администратором, которому поручено ежедневно отслеживать и устранять проблемы с производительностью Linux-систем, – чрезвычайно сложная задача.
Она требует непоколебимой преданности делу, глубокого понимания Linux-систем и постоянного стремления обеспечить оптимальную производительность и надежность.
После десяти лет работы администратором Linux в ИТ-индустрии я по достоинству оценил трудную задачу мониторинга и обеспечения непрерывной работы систем.
В свете этого мы подготовили полный список из 20 лучших часто используемых инструментов мониторинга командной строки. Эти бесценные инструменты могут оказаться незаменимыми для каждого системного администратора Linux/Unix, позволяя ему эффективно контролировать, диагностировать и поддерживать работоспособность и производительность своих систем.
Эти инструменты мониторинга доступны под всеми версиями Linux и могут быть полезны для отслеживания и поиска причин проблем с производительностью. Приведенный здесь список команд вполне достаточен для того, чтобы вы могли выбрать ту, которая подходит для вашего сценария мониторинга.
1. Top – мониторинг процессов Linux
Команда top в Linux – это программа мониторинга производительности, которая часто используется многими системными администраторами для контроля производительности Linux и доступна для многих Linux/Unix-подобных операционных систем.
Команда top используется для отображения всех запущенных и активных процессов реального времени в виде упорядоченного списка и регулярно обновляет его. Она отображает CPU usage, Memory usage, Swap Memory, Cache Size, Buffer Size, Process PID, User, *Command*s, и многое другое.
Она также показывает высокую загрузку памяти и процессора запущенными процессами. Команда top очень полезна системным администраторам для мониторинга и принятия корректирующих мер в случае необходимости. Давайте посмотрим команду top в действии.
top
2. VmStat – Virtual Memory Statistics
Команда VmStat в Linux используется для отображения статистики виртуальной памяти, потоков ядра, дисков, системных процессов, блоков ввода-вывода, прерываний, активности процессоров и многого другого.
Установка 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
3. Lsof – список открытых файлов
Команда lsof используется во многих Linux/Unix-подобных системах для вывода списка всех открытых файлов и процессов. К открытым файлам относятся дисковые файлы, сетевые сокеты, трубы, устройства и процессы.
Одной из основных причин использования этой команды является ситуация, когда диск не может быть размонтирован и выдает ошибку, что файлы используются или открыты. С помощью этой команды можно легко определить, какие файлы используются.
Самый распространенный формат команды 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 ...
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 ...
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 устарел в пользу команды ss, вы все еще можете обнаружить netstat в своем наборе сетевых инструментов.
6. Htop – мониторинг процессов Linux
htop – это усовершенствованный интерактивный инструмент мониторинга процессов Linux в реальном времени, который во многом похож на команду Linux top, но имеет ряд богатых возможностей, таких как удобный интерфейс для управления процессами*, клавиши быстрого доступа*, вертикальный и горизонтальный вид процессов и многое другое.
htop
htop – это инструмент сторонних разработчиков, который не поставляется с Linux-системами, его необходимо установить с помощью системного менеджера пакетов.
7. Iotop – мониторинг дискового ввода/вывода в Linux
iotop также очень похож на команду top и программу htop, но имеет учетную функцию для мониторинга и отображения в реальном времени дискового ввода/вывода и процессов.
Инструмент Iotop очень полезен для поиска точного процесса и высокоиспользуемого диска для чтения/записи процессов.
Установка 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
8. Iostat – статистика ввода/вывода
iostat – это простая программа для сбора и отображения статистики работы устройств хранения данных. Этот инструмент часто используется для отслеживания проблем производительности дисковой подсистемы, включая устройства, локальные диски и удаленные диски, такие как NFS.
Установка Iostat в Linux
Чтобы получить команду 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
9. IPTraf – мониторинг IP LAN в реальном времени
IPTraf – консольная утилита мониторинга сети в реальном времени для Linux с открытым исходным кодом. Она собирает разнообразную информацию, такую как мониторинг IP-трафика, проходящего по сети, включая информацию о флагах TCP, детали ICMP, разбивку TCP/UDP-трафика, пакеты TCP-соединений и подсчет байтов.
Она также собирает информацию об общей и детальной статистике интерфейсов TCP, UDP, IP, ICMP, non-IP, ошибках контрольной суммы IP, активности интерфейса и т.д.
10. Psacct или Acct – мониторинг активности пользователей
psacct или acct – очень полезные инструменты для мониторинга активности каждого пользователя в системе. Оба демона работают в фоновом режиме и внимательно следят за общей активностью каждого пользователя в системе, а также за тем, какие ресурсы он потребляет.
Эти инструменты очень полезны для системных администраторов, чтобы отслеживать активность каждого пользователя: что он делает, какие команды выдает, сколько ресурсов использует, как долго находится в системе и т.д.
11. Monit – мониторинг процессов и сервисов Linux
Monit – это бесплатная утилита наблюдения за процессами с открытым исходным кодом и веб-интерфейсом, которая автоматически отслеживает и управляет системными процессами, программами, файлами, каталогами, разрешениями, контрольными суммами и файловыми системами.
Она осуществляет мониторинг таких сервисов, как Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH и т.д. Состояние системы можно просматривать из командной строки или с помощью собственного веб-интерфейса.
12. NetHogs – мониторинг пропускной способности сети каждого процесса
NetHogs – это небольшая программа с открытым исходным кодом (аналогичная команде Linux top), которая отслеживает сетевую активность каждого процесса в вашей системе. Она также отслеживает в реальном времени пропускную способность сетевого трафика, используемую каждой программой или приложением.
nethogs
13. iftop – Мониторинг пропускной способности сети
iftop – еще одна терминальная бесплатная утилита мониторинга системы с открытым исходным кодом, которая отображает часто обновляемый список использования пропускной способности сети (хосты-источники и хосты-получатели), проходящей через сетевой интерфейс вашей системы.
iftop является аналогом «top» в контексте использования сети, подобно тому, как «top» дает представление о загрузке процессора.
iftop принадлежит ксемейству «top» инструментов сетевого мониторинга. Специально разработанный для наблюдения за выбранным пользователем сетевым интерфейсом, он выдает в реальном времени данные о текущем использовании полосы пропускания между двумя указанными хостами.
iftop
14. Monitorix – Мониторинг системы и сети
Monitorix – бесплатная легкая утилита, предназначенная для запуска и мониторинга системных и сетевых ресурсов.
В ней имеется встроенный HTTP веб-сервер, который регулярно собирает системную и сетевую информацию и отображает ее в виде графиков. Он отслеживает среднюю загрузку и использование системы, распределение памяти, состояние драйверов дисков, системные службы, сетевые порты, почтовую статистику (Sendmail, Postfix, Dovecot и т.д.), статистику MySQL и многое другое.
Он предназначен для мониторинга общей производительности системы и помогает обнаружить сбои, узкие места, аномальные действия и т.д.
15. Arpwatch – монитор активности Ethernet
Arpwatch – программа, предназначенная для мониторинга разрешения адресов (изменения MAC и IP адресов) сетевого трафика Ethernet в сети Linux.
Программа постоянно следит за трафиком Ethernet и выдает журнал изменений пар IP и MAC адресов вместе с временной меткой в сети. Также имеется функция отправки администраторам уведомлений по электронной почте при добавлении или изменении пары. Это очень полезно для обнаружения *ARP*-спуфинга в сети.
16. Suricata – мониторинг сетевой безопасности
Suricata – это высокопроизводительная система мониторинга сетевой безопасности и обнаружения и предотвращения вторжений для Linux, FreeBSD и Windows.
Она была разработана и принадлежит некоммерческому фонду OISF (Open Information Security Foundation).
17. VnStat PHP – мониторинг пропускной способности сети
VnStat PHP – это веб-приложение для наиболее популярного сетевого инструмента под названием «vnstat». VnStat PHP отслеживает использование сетевого трафика в красивом графическом режиме.
Отображает общее использование IN и OUT сетевого трафика в часовых, ежедневных, месячных и полных сводных отчетах.
18. Nagios – мониторинг сети/серверов
Nagios – это ведущая мощная система мониторинга с открытым исходным кодом, позволяющая сетевым/системным администраторам выявлять и устранять проблемы, связанные с сервером, до того, как они повлияют на основные бизнес-процессы.
С помощью системы Nagios администраторы могут отслеживать удаленные Linux, Windows, коммутаторы, маршрутизаторы и принтеры в одном окне. Она показывает критические предупреждения и указывает, если в сети/сервере что-то пошло не так, что косвенно помогает начать процесс устранения неполадок до их возникновения.
19. Nmon: Мониторинг производительности Linux
Nmon (расшифровывается как Nigel’s Performance Monitor) – инструмент, который используется для мониторинга всех ресурсов Linux, таких как процессор, память, использование диска, сеть, основные процессы, NFS, ядро и многое другое. Этот инструмент работает в двух режимах: Online Mode и Capture Mode.
Режим Online используется для мониторинга в реальном времени, а режим Capture – для сохранения результатов в формате CSV для последующей обработки.
20. Collectl
Collectl – это еще одна мощная и многофункциональная утилита командной строки, которая может использоваться для сбора информации о системных ресурсах Linux, таких как использование процессора, памяти, сети, инодов, процессов, nfs, TCP, сокетов и многого другого.
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Вдохновлен www.tecmint.com
Комментарии (0)