Visitors have accessed this post 532 times.

30 инструментов мониторинга системы Linux, которые должен знать каждый сисадмин

0
0
532
28 мая 2020 11:29
Автор: Rebrain Me
Linux

Visitors have accessed this post 532 times.

Ищете способы, как контролировать производительность сервера Linux? В большинстве дистрибутивов Linux уже встроены разные инструменты мониторинга. Используя их, можно посмотреть метрики с информацией о системных процессах. Эти инструменты можно использовать для поиска возможных причин возникновения проблем с производительностью. Команды, которые мы будем обсуждать в этой статье, относятся к самым фундаментальным. Они нужны для системного анализа и отладки проблем сервера Linux, таких как:

  1. Выявление узких мест в системе
  2. Проблемы производительности диска (хранилища)
  3. Проблемы производительности памяти и процессора
  4. Узкие места в сети

1. top — мониторинг активности процессов

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

Часто используемые горячие клавиши с лучшими инструментами мониторинга Linux

Ниже приведен список полезных горячих клавиш:

Горячая клавиша Применение
t Отображает, включена или выключена опция представления сводных данных
m Отображает, включена или выключена опция представления информации о памяти
A Сортирует задачи по активности потребления различных системных ресурсов. Полезно для быстрой идентификации задач, требующих высокой производительности в системе.
f Вход в интерактивный экран конфигурации для команды top. Полезно для настройки top под конкретную задачу.
o Позволяет выбрать способ упорядочивания информации для команды top.
r Выполняет команду renice.
k Выполняет команду kill.
z Включает или выключает цвет/моно

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

Команда vmstat сообщает информацию о процессах, памяти, подгрузке страниц, блочном вводе-выводе, прерываниях и активности процессора.
# vmstat 3
Примеры выводов:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
0  0      0 2540988 522188 5130400    0    0     2    32    4    2  4  1 96  0  0
1  0      0 2540988 522188 5130400    0    0     0   720 1199  665  1  0 99  0  0
0  0      0 2540956 522188 5130400    0    0     0     0 1151 1569  4  1 95  0  0
0  0      0 2540956 522188 5130500    0    0     0     6 1117  439  1  0 99  0  0
0  0      0 2540940 522188 5130512    0    0     0   536 1189  932  1  0 98  0  0
0  0      0 2538444 522188 5130588    0    0     0     0 1187 1417  4  1 96  0  0
0  0      0 2490060 522188 5130640    0    0     0    18 1253 1123  5  1 94  0  0

Использование памяти дисплея Slabinfo

# vmstat -m

Получить информацию об активных/неактивных страницах памяти

# vmstat -a

3. w — узнайте, кто вошел в систему и какие действия производит

Команда who (w) отображает информацию о пользователях, находящихся в данный момент в системе, и их процессах.
# w username
# w vivek

Примеры выводов:
17:58:47 up 5 days, 20:28,  2 users,  load average: 0.36, 0.26, 0.24
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.1.3.145       14:55    5.00s  0.04s  0.02s vim /etc/resolv.conf
root     pts/1    10.1.3.145       17:43    0.00s  0.03s  0.00s w

4. uptime — узнайте, сколько уже работает система Linux

Команда uptime используется, чтобы узнать, как долго, с момента последней перезагрузки, работает после  сервер. Текущее время, сколько времени система работает, сколько пользователей в системе на данный момент и средняя загрузка системы за последние 1, 5 и 15 минут.
# uptime
Вывод:
18:02:41 up 41 days, 23:42,  1 user,  load average: 0.00, 0.00, 0.00
1 пользователь в системе считается оптимальным значением нагрузки. Нагрузка может меняться от системы к системе. Для систем с одним ЦП приемлемо значение нагрузки 1–3, для систем SMP — 6–10.

5. ps — отображает процессы Linux

Команда ps сообщает о текущих процессах. Чтобы выбрать все процессы, используйте опцию -A или -e:
# ps -A
Примеры выводов:
PID TTY          TIME CMD
1 ?        00:00:02 init
2 ?        00:00:02 migration/0
3 ?        00:00:01 ksoftirqd/0
4 ?        00:00:00 watchdog/0
5 ?        00:00:00 migration/1
6 ?        00:00:15 ksoftirqd/1
....
.....
4881 ?        00:53:28 java
4885 tty1     00:00:00 mingetty
4886 tty2     00:00:00 mingetty
4887 tty3     00:00:00 mingetty
4888 tty4     00:00:00 mingetty
4891 tty5     00:00:00 mingetty
4892 tty6     00:00:00 mingetty
4893 ttyS1    00:00:00 agetty
12853 ?        00:00:00 cifsoplockd
12854 ?        00:00:00 cifsdnotifyd
14231 ?        00:10:34 lighttpd
14232 ?        00:00:00 php-cgi
54981 pts/0    00:00:00 vim
55465 ?        00:00:00 php-cgi
55546 ?        00:00:00 bind9-snmp-stat
55704 pts/1    00:00:00 ps

Команда ps чем-то напоминает top, но предоставляет больше информации.

Полноформатный вывод

# ps -Al
Чтобы вывести дополнительную информацию о процессе (он показывает аргументы командной строки, которые передаются процессу):
# ps -AlF

Вывод потоков ( LWP и NLWP)

# ps -AlFH

Просмотр потоков после процессов

# ps -AlLm

Вывод всех процессов на сервере

# ps ax
# ps axu

Вывод дерева процессов

# ps -ejH
# ps axjf
# pstree

Получить информацию о безопасности процесса Linux

# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM

Давайте выведем каждый процесс, запущенный от имени пользователя Vivek

# ps -U vivek -u vivek u

Конфигурация вывода команды ps в пользовательском формате

# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
# ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
# ps -eopid,tt,user,fname,tmout,f,wchan

Попробуем отобразить только идентификаторы процессов Lighttpd

# ps -C lighttpd -o pid=
ИЛИ
# pgrep lighttpd
ИЛИ
# pgrep -u vivek php-cgi

Вывод имени PID 55977

# ps -p 55977 -o comm=

Топ 10 процессов, потребляющих память

# ps -auxf | sort -nr -k 4 | head -10

Отобразить Топ 10 процессоров с максимальным потреблением ресурсов системы

# ps -auxf | sort -nr -k 3 | head -10

6. free — отображает использование памяти Linux-сервером

Команда free показывает общий объем свободной и используемой физической памяти в системе, а также буферы, используемые ядром.
# free
Пример вывода:
total       used       free     shared    buffers     cached
Mem:      12302896    9739664    2563232          0     523124    5154740
-/+ buffers/cache:    4061800    8241096
Swap:      1052248          0    1052248

7. iostat — отслеживает среднюю загрузку процессора и активность диска на Linux

Команда iostat предоставляет отчет по статистике центрального процессора (ЦП) и статистике ввода/вывода для устройств, директорий и сетевых файловых систем (NFS).
# iostat
Примеры выводов:
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in)     06/26/2009
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
3.50    0.09    0.51    0.03    0.00   95.86
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              22.04        31.88       512.03   16193351  260102868
sda1              0.00         0.00         0.00       2166        180
sda2             22.04        31.87       512.03   16189010  260102688
sda3              0.00         0.00         0.00       1615          0

8. sar — мониторинг, сбор и отчетность о деятельности системы Linux

Команду sar используют для сбора, представления и сохранения информации о деятельности системы. Чтобы увидеть сетевой контроллер, введите:
# sar -n DEV | more
Сетевые контроллеры, начиная с 24:
# sar -n DEV -f /var/log/sa/sa24 | more
Вы также можете настроить отображение в реальном времени, используя команду sar:
# sar 4 5
Примеры выводов:
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in)         06/26/2009
06:45:12 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle
06:45:16 PM       all      2.00      0.00      0.22      0.00      0.00     97.78
06:45:20 PM       all      2.07      0.00      0.38      0.03      0.00     97.52
06:45:24 PM       all      0.94      0.00      0.28      0.00      0.00     98.78
06:45:28 PM       all      1.56      0.00      0.22      0.00      0.00     98.22
06:45:32 PM       all      3.53      0.00      0.25      0.03      0.00     96.19
Average:          all      2.02      0.00      0.27      0.01      0.00     97.70

9. mpstat — отслеживает использование мультипроцессора в Linux

Команда mpstat отображает действия для каждого доступного процессора. Процессор 0 является первым. mpstat -P ALL отображает среднюю загрузку ЦП/процессора:
# mpstat -P ALL
Пример вывода:
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in)        06/26/2009
06:48:11 PM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
06:48:11 PM  all    3.50    0.09    0.34    0.03    0.01    0.17    0.00   95.86   1218.04
06:48:11 PM    0    3.44    0.08    0.31    0.02    0.00    0.12    0.00   96.04   1000.31
06:48:11 PM    1    3.10    0.08    0.32    0.09    0.02    0.11    0.00   96.28     34.93
06:48:11 PM    2    4.16    0.11    0.36    0.02    0.00    0.11    0.00   95.25      0.00
06:48:11 PM    3    3.77    0.11    0.38    0.03    0.01    0.24    0.00   95.46     44.80
06:48:11 PM    4    2.96    0.07    0.29    0.04    0.02    0.10    0.00   96.52     25.91
06:48:11 PM    5    3.26    0.08    0.28    0.03    0.01    0.10    0.00   96.23     14.98
06:48:11 PM    6    4.00    0.10    0.34    0.01    0.00    0.13    0.00   95.42      3.75
06:48:11 PM    7    3.30    0.11    0.39    0.03    0.01    0.46    0.00   95.69     76.89

10. pmap — отслеживает использование памяти процессом в Linux

Команда pmap показывает использование памяти процессом. Используйте эту команду, чтобы выяснить проблемы с потреблением памяти.
# pmap -d PID
Чтобы отобразить информацию о памяти процесса для pid # 47394, введите:
# pmap -d 47394
Примеры выводов:
47394:   /usr/bin/php-cgi
Address           Kbytes Mode  Offset           Device    Mapping
0000000000400000    2584 r-x-- 0000000000000000 008:00002 php-cgi
0000000000886000     140 rw--- 0000000000286000 008:00002 php-cgi
00000000008a9000      52 rw--- 00000000008a9000 000:00000   [ anon ]
0000000000aa8000      76 rw--- 00000000002a8000 008:00002 php-cgi
000000000f678000    1980 rw--- 000000000f678000 000:00000   [ anon ]
000000314a600000     112 r-x-- 0000000000000000 008:00002 ld-2.5.so
000000314a81b000       4 r---- 000000000001b000 008:00002 ld-2.5.so
000000314a81c000       4 rw--- 000000000001c000 008:00002 ld-2.5.so
000000314aa00000    1328 r-x-- 0000000000000000 008:00002 libc-2.5.so
000000314ab4c000    2048 ----- 000000000014c000 008:00002 libc-2.5.so
.....
..
00002af8d48fd000       4 rw--- 0000000000006000 008:00002 xsl.so
00002af8d490c000      40 r-x-- 0000000000000000 008:00002 libnss_files-2.5.so
00002af8d4916000    2044 ----- 000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b15000       4 r---- 0000000000009000 008:00002 libnss_files-2.5.so
00002af8d4b16000       4 rw--- 000000000000a000 008:00002 libnss_files-2.5.so
00002af8d4b17000  768000 rw-s- 0000000000000000 000:00009 zero (deleted)
00007fffc95fe000      84 rw--- 00007ffffffea000 000:00000   [ stack ]
ffffffffff600000    8192 ----- 0000000000000000 000:00000   [ anon ]
mapped: 933712K    writeable/private: 4304K    shared: 768000K

Последняя строка очень важна:

  • mapped: 933712K общий объем памяти, сопоставленный с файлами;
  • writeable/private: 4304K объем недоступного адресного пространства;
  • shared: 768000K объем адресного пространства, который этот процесс делит с другими.

11. Команда netstat — инструмент для мониторинга сети и статистики Linux

Команда netstat отображает состояние TCP-соединений (как входящих, так и исходящих), таблицы маршрутизации, число сетевых интерфейсов и сетевую статистику по протоколам.
# netstat -tulpn
# netstat -nat

12. ss — статистика сети

Команда ss используется для вывода статистики сокетов. Позволяет отображать информацию, аналогичную netstat. Обратите внимание, что команда netstat считается устаревшей. Лучше использовать команду ss. Чтобы посмотреть все сокеты TCP и UDP в Linux:
# ss -t -a
ИЛИ
# ss -u -a

13. iptraf — получение сетевой статистики в реальном времени в Linux

Команда iptraf — это интерактивный цветной IP-дисплей. Генерирует различную сетевую статистику, включая информацию TCP, UDP-счетчики, информацию о ICMP и OSPF, о нагрузке Ethernet, статистику узлов, ошибки контрольной суммы IP и другое. Она может предоставить следующую информацию в удобочитаемом формате:

  • Статистика сетевого трафика по TCP-соединению
  • Статистика IP-трафика по сетевому интерфейсу
  • Статистика сетевого трафика по протоколу
  • Статистика сетевого трафика по TCP/UDP-порту и размеру пакета
  • Статистика сетевого трафика по адресу Layer2

14. tcpdump — детальный анализ сетевого трафика

Команда tcpdump — это простая команда, которая создает дамп трафика в сети. Тем не менее, вам нужно хорошо понимать принцип работы протокола TCP/IP, чтобы использовать этот инструмент. Например, для отображения информации о трафике DNS введите:
# tcpdump -i eth1 'udp port 53'
Для просмотра всех HTTP-пакетов IPv4 через порт 80 введите:
# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Показать все сеансы FTP до 202.54.1.5:
# tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20'
Вывести всю сессию HTTP на 192.168.1.5:
# tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'
Чтобы использовать wireshark для просмотра подробной информации о файлах, введите:
# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80

15. iotop — монитор ввода-вывода Linux

Команда iotop показывает таблицу текущего использования ввода-вывода, отсортированную по процессам или потокам на сервере.
$ sudo iotop
Пример выводов:

16. htop — интерактивный просмотрщик процессов

htop — это бесплатная программа с открытым исходным кодом на базе ncurses для просмотра процессов для Linux. Она очень проста в использовании. Вы можете выбрать процессы для команд kill или renice, не используя их PID и не выходя из интерфейса htop.
$ htop
Пример выводов:

17. atop — мониторинг процессов

atop — очень мощный и интерактивный монитор для просмотра нагрузки в системе Linux. Он отображает наиболее важные аппаратные ресурсы с точки зрения производительности. Вы можете посмотреть производительность процессора, памяти, диска и сети. Команда показывает, какие процессы ответственны за указанную нагрузку относительно загрузки процессора и памяти.
$ atop

18. Команды ac и lastcomm

Вы можете отслеживать процессы и вход в систему на вашем сервере Linux. Пакет psacct или acct содержит несколько утилит для мониторинга процессов, в том числе:

  • Команда AC: статистика о времени подключения пользователей
  • Команда lastcomm: информация о ранее выполненных командах
  • Команда accton: включает или выключает учет процессов
  • Команда sa: обобщает учетную информацию

19. monit — контроль процессов

Monit — это бесплатное программное обеспечение с открытым исходным кодом, которое выполняет функции контроля за процессом. В нем встроена возможность перезапуска служб. Вы можете использовать Systemd, daemontools или любой другой подобный инструмент для той же цели.

20. nethogs — узнайте PID, которые используют наибольшую пропускную способность в Linux

NetHogs — это небольшой, но удобный инструмент для работы с сетью. Он группирует пропускную способность по имени процесса, например, Firefox, wget и так далее. В случае внезапного всплеска сетевого трафика, запустите NetHogs. Вы увидите, какой PID вызывает скачок пропускной способности.
$ sudo nethogs

21. iftop — показывает использование полосы пропускания на интерфейсе хоста

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

22. vnstat — консольный монитор сетевого трафика

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

23. nmon — мониторинг серверов

nmon — это утилита, которая может показывать процессор, память, сеть, диски, файловые системы, NFS, основные ресурсы процесса и информацию о разделах из Cli.
$ nmon

24. glances — отслеживание системы Linux

glances — это кроссплатформенный инструмент мониторинга с открытым исходным кодом. Он предоставляет тонны информации на маленьком экране. Он также может работать в режиме клиент/сервер.
$ glances


25. strace — отслеживает системные запросы в Linux

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

26. /proc /file system — статистика ядра Linux

Файловая система /proc предоставляет подробную информацию о различных аппаратных устройствах и другие данные об ядре Linux. Типичные примеры /proc:
# cat /proc/cpuinfo
# cat /proc/meminfo
# cat /proc/zoneinfo
# cat /proc/mounts

27. Nagios — мониторинг серверов Linux и сетей

Nagios — это популярная программа с открытым исходным кодом для мониторинга сети. С ней вы можете контролировать все хосты, сетевое оборудование и сервисы. Она может отправлять оповещения, когда что-то идет не так и когда все стабилизируется.

28. Cacti — веб-инструмент для мониторинга Linux

Cacti — это комплексное решение для построения сетевых графиков, предназначенное для использования возможностей RRDTool по хранению и графическому отображению данных. В Cacti есть функционал для обследования сети, расширенные шаблоны графиков, несколько методов сбора данных и функции управления пользователями. Все это сведено в интуитивно понятный и простой в использовании интерфейс, который подходит даже для сложных сетей с сотнями устройств. Он может предоставлять данные о сети, процессоре, памяти, пользователях вошедших в систему, Apache, DNS-серверах и многое другое.

29. KDE System Guard — системы и отчеты Linux в режиме реального времени

KSysguard — это приложение для мониторинга системы для рабочего стола KDE. Его можно запускать через сессию ssh. Оно обеспечивает мониторинг локальных и удаленных хостов. Графический интерфейс использует так называемые датчики для извлечения отображаемой информации. Датчик может возвращать простые значения или более сложную информацию, например, таблицы. Для каждого типа информации предоставляется один или несколько дисплеев. Дисплеи организованы в виде листов, которые можно сохранять и загружать независимо друг от друга. Таким образом, KSysguard — это не только простой диспетчер задач, но и очень мощный инструмент для управления большими пулами серверов.

30. Системный монитор Gnome Linux

Приложение System Monitor позволяет отображать основную системную информацию и отслеживать системные процессы, использование системных ресурсов и файловых систем. Его также можно использовать для изменения поведения вашей системы. Хотя он и не такой мощный, как KDE System Guard, но зато он предоставляет основную информацию, которая может быть полезна для новых пользователей:

  • Отображение основной информации об аппаратном и программном обеспечении компьютера.
  • Версия ядра Linux
  • Версия GNOME
  • Аппаратные средства
  • Встроенная память
  • Процессоры и скорость работы
  • Состояние системы
  • Доступное дисковое пространство
  • Процессы
  • Память
  • Использование сети
  • Файловые системы
  • Список всех файловых систем с основной информацией о каждой.

Бонус: дополнительные инструменты

Еще немного инструментов:

  • nmap – сканирует сервер на наличие открытых портов.
  • lsof – список открытых файлов, сетевых подключений и многое другое.
  • ntop — веб-инструмент для наблюдения за использованием сети, программное обеспечение для мониторинга сетевого трафика. Вы можете видеть состояние сети, распределение трафика по протоколам для UDP, TCP, DNS, HTTP и других протоколов.
  • Conky – еще один классный инструмент мониторинга для системы X Window. Он легко настраивается и способен отслеживать многие системные переменные, включая состояние процессора, памяти, места подкачки, дискового пространства, температуры, процессов, сетевых интерфейсов, заряда батареи, системных сообщений, почтовых ящиков и т. д.
  • GKrellM – этот инструмент можно использовать для мониторинга состояния процессоров, основной памяти, жестких дисков, сетевых интерфейсов, локальных и удаленных почтовых ящиков и многого другого.
  • mtr – mtr объединяет функциональность программ traceroute и ping в одном инструменте диагностики сети.
  • vtop – графический монитор активности терминала в Linux.
  • gtop – панель мониторинга системы для терминала Linux/macOS Unix.

Оригинал статьиhttps://www.cyberciti.biz/tips/top-linux-monitoring-tools.html.

Каждую неделю мы в live режиме решаем кейсы на наших открытых онлайн-практикумах, присоединяйтесь к нашему каналу в Телеграм, вся информация там — http://rebrainme.com/channel.

Если вы хотите освоить функционал системного администратора Linux на практике, приглашаем на наш практикум Linux by Rebrain.

Комментарии (3)
Введено символов из возможных
Не отвечать

Вам также может понравится

Обзор Kali Linux

Kali Linux – достаточно узкоспециализированный дистрибутив, платформа для тестирования на проникновения, созданная для проверки безопасности ИТ-систем. Он реализуется как проект с открытым кодом при финансировании компании Offensive Security, которая занимается обучением и предоставлением услуг по информационной защите.
Как появился и развивался...

1
0
25 мая 2020
Команда chmod — Linux

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

У каждого объекта в вашей системе Linux есть режим выдачи прав, который описывает, какие действия пользователь может выполнять в системе. Существует три типа разрешений: на чтение (chmod r),...

0
0
27 мая 2020
30 инструментов мониторинга системы Linux, которые должен знать каждый сисадмин

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

0
0
28 мая 2020