T&T0x04. Сбор статистики в Linux/Unix
Существует ряд программ для мониторинга состояния системы в среде Linux. Рассмотрим одну из наиболее простых, но, тем не менее, весьма «продвинутую» утилиту, а вернее, набор утилит, реализованных в виде скриптов.
Далее рассматриваем все на примере debian-based дистрибутива.
Для установки программы мониторинга atsar выполним от имени суперпользователя
aptitude –y update && aptitude –y upgrade
aptitude install atsar
Программа atsar считывает статистические счетчики (из файлов в директории /proc) и выводит их в форматированном виде на стандартный вывод.
Примечание. Поддерживает перенаправление вывода стандартным способом через ">".
1. atsar [ -flags ] t [ n ]
В первом варианте получаем статистику каждые t секунд [n] раз, например:
1.1 atsar -u 1 10
отображает статистику загрузки процессора с интервалом в 1 секунду на протяжении 10 секунд.
root@debian:/home/vl# atsar -u 1 10
Linux debian 2.6.39-bpo.2-amd64 #1 SMP Tue Jul 26 10:35:23 UTC 2011 x86_64 11/22/2011
23:55:00 cpu %usr %nice %sys %irq %softirq %wait %idle _cpu_
23:55:00 all 41 0 18 0 0 0 41
23:55:01 all 45 0 19 0 0 0 36
23:55:02 all 47 0 22 0 0 0 31
23:55:03 all 19 0 17 0 1 0 63
23:55:05 all 33 1 23 0 0 0 43
23:55:05 all 23 0 20 0 0 1 56
23:55:06 all 16 0 20 0 0 0 64
23:55:07 all 27 4 19 0 0 4 46
23:55:08 all 16 56 24 0 0 0 4
23:55:09 all 8 63 20 0 0 0 9
1.2. atsar -u 1 10 > proc.stat
сделает тоже самое, но перенаправит вывод в файл proc.stat.
root@debian:/home/vl# atsar -u 1 10 > proc.stat
root@debian:/home/vl# cat proc.stat
Linux debian 2.6.39-bpo.2-amd64 #1 SMP Tue Jul 26 10:35:23 UTC 2011 x86_64 11/22/2011
23:55:57 cpu %usr %nice %sys %irq %softirq %wait %idle _cpu_
23:55:57 all 3 0 4 0 0 0 94
23:55:58 all 4 0 6 0 0 0 90
23:55:59 all 4 1 4 0 0 3 88
23:56:00 all 6 0 7 0 0 0 87
23:56:01 all 7 0 5 0 1 0 87
23:56:02 all 8 0 11 0 0 0 81
23:56:03 all 6 0 12 0 0 5 77
23:56:04 all 8 0 13 0 1 0 78
23:56:05 all 4 0 4 0 0 0 92
23:56:06 all 3 0 8 0 0 0 89
2. atsar [ -flags ] [ -s time ] [ -e time ] [ -i sec ] [ -f file | -n day# ]
Во втором варианте извлекаются данные из предварительно сохраненного файла, по умолчанию данные за один день сохраняются в файле /var/log/atsar/atsadd (dd - день текущего месяца). -n позволяет определить смещение в днях от дня месяца, -s и -e определяют начало и конец временного интервала, а -i выбирает записи с интервалов sec секунд.
root@debian:/home/vl# atsar -u -f /var/log/atsar/atsa18
Linux debian 2.6.39-bpo.2-amd64 #1 SMP Tue Jul 26 10:35:23 UTC 2011 x86_64 11/18/2011
23:00:01 cpu %usr %nice %sys %irq %softirq %wait %idle _cpu_
23:10:01 all 4 0 9 0 1 4 82
23:20:01 all 3 1 8 0 0 3 84
23:30:01 all 2 1 7 0 0 0 88
23:40:02 all 5 1 10 0 0 2 82
Флаги:
-S разрешает отображение времени в начале каждой строки.
-A Отображает все возможные значения датчиков (включает все абсолютно флаги).
-u Загрузка CPU (средняя и для каждого процессора).
-P Процессы и средняя загрузка (load-averages).
-d Ограниченная статистика использования дисков (только для ядра 2.4).
-D Использование дисков и дисковых разделов.
-r Состояние памяти и swap.
-p Активность страниц виртуальной памяти и swap.
-I Количество прерываний в секунду.
-v Использование таблиц ядра.
-y Использование tty (последовательный интерфейс).
-l Состояние сетевого интерфейса.
-L Ошибки сетевых интерфейсов.
-w Трафик IP v.4.
-W Ошибки IP v.4 (трафика).
-m Общая статистика активности ICMP v.4.
-M Статистика активности ICMP v.4 по типам.
-t Сетевой траффик TCP .
-T Ошибки в траффике TCP.
-U Трафик UDP v.4.
-g Трафик IP v.6.
-G Ошибке в трафике IP v.6.
-k Общая статистика активности ICMP v.6.
-K статистика активности ICMP v.6 по типам.
-j Использование сокетов TCP v.6.
-h Траффик UDP v. 6.
-N Состояние запросов NFS-сервера и клиентов.
-E Статистика ошибок запросов NFS-сервера и клиентов.
-V Статистика поведения NFS-сервера.
-R Статистика вызовов RPC для NFS-запросов.
-F Опциональная статистика ftp-траффика. Использует скрипт atsaftp (через скрипт atsa1 ). Требуется задать имя лог-файла в файле /etc/atsar.conf
-H Опциональная статистика the http-трпффика. Регулярно вызывается скрипт atsahttp (через скрипт atsa1). Требуется задать имя лог-файла в файле /etc/atsar.conf
Недостатки.
1. Статистика отображается постфактум, т.е., данные утилиты нельзя рассматривать как утилиты мониторинга реального времени. Тем не менее, результаты можно использовать для анализа нагрузки на сервер.
2. Минимальный интервал времени – 1 секунда.
Сбор статистики в Linux/Unix is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Рубрика: Tips&Tricks
Авторы: Савченко В.Н.
Опубликовано: 20.12.11 16:25