IT-Service - 20 средств мониторинга системы Linux
Среда, 19 Декабрь 2012 03:07

20 средств мониторинга системы Linux

Автор 
Оцените материал
(1 Голосовать)

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

 

Узкие места общего характера

Узкие места, связанные с диском (дисковой памятью)

Узкие места, связанные с процессором и оперативной памятью

Узкие места, связанные с сетью

№ 1: top – команда выдачи данных об активности процессов

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

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

При работе команды top можно воспользоваться следующими полезными горячими клавишами:

Горячая клавишаИспользование

tВключение и выключение выдачи на экран суммарных данных.

mВключение и выключение выдачи на экран информации об использовании памяти.

AСортировка строк по максимальному потреблению различных системных ресурсов. Полезна для быстрой идентификации задач, для которых в системе не хватает ресурсов.

fВход в меню интерактивного конфигурирования данных, выдаваемых на экран командой top. Полезна для настройки команды top для выполнения специфической задачи.

oПозволяет вам интерактивно задавать порядок строк, выдаваемой командой top.

rИзменение приоритета процессов с помощью команды renice.

kУдаление процесса с помощью команды kill.

zПереключение между цветным / монохромным вариантом выдачи изображения.

 

№ 2: 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

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

Выдача статистики использования памяти

# vmstat -m

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

# vmstat -a

 

№ 3: w – определяем, кто зарегистрирован и что они делают

Команда 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 – сообщает, как долго работает система

Команду 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, для мультипроцессорных систем – от 6 до 10.

 

№ 5: ps – список процессов

Команда 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

Выдать информацию о параметрах безопасности

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

# ps axZ

# ps -eM

Показать каждый процесс для пользователя Vivek

# ps -U vivek -u vivek u

Настроить выдачу данных в формате, определенном пользователем

# 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

Показывать ID процессов, запущенных под 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 – использование памяти

Команда 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 – средняя загрузка процессора, активность дисков

Команда 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 – сбор и выдача данных о системной активности

Команда 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 – использование мультипроцессора

Команда 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 – использование процессами оперативной памяти

Команда 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 и № 12: netstat и ss – сетевая статистика

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

ss: Выдача информации о сокетах и сетевых соединениях TCP / UDP

Получение подробной информации о подключениях к конкретным IP адресам с помощью команды netstat

 

№13: iptraf – сетевая статистика в режиме реального времени

Команда iptraf запускает цветной интерактивный монитор, следящий за сетевыми IP. Этот монитор сетевых IP базируется на команде ncurses, которая выдает различную сетевую статистику, в том числе информацию о TCP, ведет подсчет UDP, выдает сведения о ICMP и OSPF, информацию о нагрузке на Ethernet, статистику по узлам сети, данные об ошибках контрольных сумм пакетов IP и многое другое. Монитор предоставляет в удобном для чтения виде следующие данные:

Статистику сетевого трафика по TCP подключениям

Статистику IP трафика по сетевым интерфейсам

Статистику сетевого трафика по протоколам

Статистику сетевого трафика по портам TCP/UDP и по размерам пакетов

Статистику сетевого трафика по адресам протоколов второго уровня

 

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

Команда tcpdump – простая команда, выдающая дамп сетевого трафика. Однако, вам нужно хорошо понимать протоколы TCP/IP для того, чтобы использовать это средство. Например, для того, чтобы показать информацию о трафике DNS, введите следующее:

# tcpdump -i eth1 'udp port 53'

Для того, чтобы показать все IPv4 HTTP пакеты, идущие на порт и с порта 80, т.е. выдать только те пакеты, которые содержат данные, и, например, не учитывать пакеты SYN и FIN и пакеты ACK-only, введите следующее:

# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<2))>>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: strace – системные вызовы

Трассировка системных вызовов и сигналов. Это средство полезно для отладки веб сервера и решения других серверных проблем. О том, как использовать это средство и для чего нужна трассировка процессов, смотрите по ссылке strace.

 

№ 16: Директорий /Proc – различная статистика ядра

В директории /proc имеется подробная информация о различных устройствах и ядре Linux. Подробности смотрите в документации Linux kernel /proc. Самые общие примеры:

# cat /proc/cpuinfo

# cat /proc/meminfo

# cat /proc/zoneinfo

# cat /proc/mounts

 

№ 17: Nagios – мониторинг сервера и сети

Nagios – популярное open source приложение, предназначенное для мониторинга компьютерных систем и сетей. Вы можете легко следить за всеми своими хостами, сетевым оборудованием и сервисами. Приложение может посылать предупреждающее сообщение, когда что-то идет не так, как надо, а затем – еще одно, когда ситуация исправляется. Имеется приложение FAN - "Fully Automated Nagios" ("Полностью автоматизированный Nagios"). Назначение FAN – обеспечить установку Nagios, в том числе и инструментария, предоставляемого сообществом Nagios. FAN распространяется в виде CD образа в стандартном формате ISO, что упрощает установку сервера Nagios. Вдобавок на дистрибутиве имеется масса инструментальных средств, повышающих практическую отдачу от использования Nagios.

 

№ 18: Cacti – инструментальное веб приложение, используемое для мониторинга

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

 

№ 19: KDE System Guard – графический монитор, выдающий сведения о системе в режиме реального времени

KSysguard – сетевое приложение для KDE, осуществляющее мониторинг системы и задач. Это средство может работать в ssh сессии. В нем имеется масса возможностей, например, такие, как клиент/серверные технологии, что позволяет осуществлять мониторинг локальных и удаленных хостов. В графической оболочке используются так называемые сенсоры, которые собирают информацию, выдаваемую приложением. Сенсор может возвращать либо простое значение, либо более сложно сформированные данные, например, таблицы. Для каждого вида данных предлагается один или несколько вариантов выдачи данных. Изображаемые данные сгруппированы в виде отдельных листов, которые можно сохранять и загружать независимо друг от друга. Таким образом, KSysguard не только менеджер простых задач, но также и мощное средство для управления большим серверным хозяйством.

 

№ 20: Gnome System Monitor – графическое средство выдачи информации о системе в режиме реального времени

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

Отображается различная основная информация об аппаратном и программном обеспечении компьютера

Версия ядра Linux

Версия GNOME

Аппаратные средства

Установленная оперативная память

Процессоры и их скорость

Статус системы

Имеющееся в наличии дисковое пространство

Процессы

Память и пространство своппинга

Использование сети

Файловые системы

Список всех смонтированных файловых систем вместе с основной информацией о каждой из них

 

 

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

И еще несколько инструментальных средств:

nmap - сканирует ваш сервер на предмет открытых портов..

lsof - перечисляет открытые файлы, сетевые соединения и еще многое.

ntop - инструментальное веб средство ntop является наилучшим средством, следящим за использованием сети, причем это делается точно так, как с помощью команды top просматриваются процессы, т.е. это программное обеспечение мониторинга сетевого трафика. Вы можете следить за состоянием сети и распределением трафика по различным протоколам, таким как UDP, TCP, DNS, HTTP и другим.

Conky - Еще одно хорошее средство мониторинга, предназначенное для использования в X Window. Оно хорошо конфигурируемое и позволяет следить за многими системными переменными, в том числе состоянием процессора, памяти, пространства свопинга, дисковыми носителями, температурой, процессами, сетевыми интерфейсами, зарядом батареи, системными сообщениями, поступающими письмами и т.д.

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

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

htop - улучшенная версия интерактивного просмотрщика процессов top. htop позволяет просматривать процессы в виде дерева процессов.

mtr - mtr объединяет в одной сетевой инструментальной программе функциональность программ traceroute и ping.

Прочитано 3085 раз
Авторизуйтесь, чтобы получить возможность оставлять комментарии