Журнал LinuxFormat - перейти на главную

LXF120:DrBrown2

Материал из Linuxformat
Перейти к: навигация, поиск

Летите, голуби

Munin Отслеживает тенденции в загрузке сервера, предотвращая нехватку ресурсов до того, как она случится.

Недавно мне попалась программа для мониторинга Munin. Она наблюдает за сервером или несколькими серверами и строит графики изменений в их поведении в долгосрочной перспективе. В Munin используется архитектура «мастер–узел».

На главном узле Munin активизируется раз в пять минут (заботой Cron) и соединяется с утилитой munin-node, работающей на каждом из отслеживаемых узлов. По каждому узлу набор плагинов Munin собирает коллекцию характеристик загрузки сервера – среднюю загрузку, использование памяти, сетевой трафик, использование файловой системы, использование файла подкачки, почтовая активность и многое другое. Данные собираются и представляются в графическом виде в формате, подходящем для их доставки web-сервером системному администратору.

На серверной стороне у Munin есть довольно простой файл конфигурации munin.conf. Вот его минимальная версия:

# Здесь munin держит свою базу данных:
dbdir /var/lib/munin
# Сюда munin будет писать свой HTML-вывод:
htmldir /var/www/munin
# Здесь будут находиться файлы журналов munin:
logdir /var/log/munin
# Далее определяются узлы, подлежащие мониторингу:
[server1.example.com]
address 192.168.1.71
[server2.example.com]
address 192.168.1.73

Для переименования графиков или объединения графиков с разных клиентов есть и более причудливые конструкции.


На клиентских компьютерах программа munin-node слушает соединения на порту 4949 и собирает данные с помощью набора плагинов – скриптов в каталоге /usr/share/munin/plugins. Большинство из них написаны на Perl, есть и сценарии оболочки; вообще они могут быть написаны на любом языке, позволяющем отправлять данные в стандартный вывод. Munin поставляется с большим набором модулей (почти 90 в моем Ubuntu, хотя только около двадцати активированы по умолчанию), а на «бирже плагинов» Munin по адресу http://muninexchange.projects.llnpro.no доступно еще больше.

Розыск в сети

На «бирже» есть поиск по категории, от Amavis (почтовый антивирус) до Yum (менеджер пакетов). Статистику можно собирать на самых различных данных, включающих (навскидку) свободное место на диске, уровень заряда батареи ноутбука, частоту ошибочных HTTP-ответов, температуру процессора, число активных подключений к серверу LDAP, число запросов к серверу DNS в секунду и многое другое.

Графики строятся за период в день, неделю, месяц, год, и главная сила Munin – в долгосрочных графиках, позволяющих легко оценить тенденции. Некоторые модули получают информацию из /proc, другие манипулируют данными от утилит мониторинга ресурсов типа df, NetStat и vmstat.

Рассмотрим плагины более подробно. Этот (сценарий оболочки) отслеживает размер очереди Sendmail:


 MSP_QUEUE=/var/spool/mqueue-client
 MTA_QUEUE=/var/spool/mqueue
 if [$mspqueue]; then MSP_QUEUE=$mspqueue ; fi
 if [$mtaqueue]; then MTA_QUEUE=$mspqueue ; fi
 if [ “$1” = “autoconf]; then
 if [ -d ${MSP_QUEUE} -a -d ${MTA_QUEUE} ] ; then
 echo yes
 exit 0
 else
 echo no
 exit 1
 fi
 fi
 if [ “$1” = “config” ]; then
 echo ‘graph_title Sendmail queued mails’
 echo ‘graph_order mails’
 echo ‘graph_vlabel mails in queue’
 echo ‘graph_category sendmailecho ‘mails.label mails’
 exit 0
 fi
 mspmails=`find ${MSP_QUEUE} -type f -name[qQ]*’ 2>/
 dev/null | wc -l`
 mtamails=`find ${MTA_QUEUE} -type f -name[qQ]*’ 2>/dev/
 null | wc -l`
 echo “mails.value `expr ${mspmails} + ${mtamails}`

Главное, что нужно отметить – модуль, вызванный с аргументом config, выводит текстовое описание графика, с помощью которого внутренняя утилита rrdtool построит его. Если он вызывается без аргумента, то выводит строку вида

mails.value 47

Взглянув на три последние строки скрипта, вы увидите, что он вычисляет результат, просто подсчитывая количество файлов в очередях в каталогах /var/spool/mqueue-client и /var/spool/mqueue. Руководство по написанию и установке модулей можно найти по адресу http://muninprojects.llnpro.no/wiki/HowToWritePlugins.

Персональные инструменты
купить
подписаться
Яндекс.Метрика