Nagios-plugins

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску

Плагины Nagios в системе ALT Linux, поддержка которых осуществляется в ООО "Этерсофт"

nagios-plugins-check_glusterfs

!!! На данный момент плагин работает неудовлетворительно: может забить очередь команд glusterd и генерирует warning'и на пустом месте Частично вина лежит на самом glusterd !!!

Плагин фактически вызывает команду gluster volume status <volume_name> detail и анализирует результат. Если в силу каких-то проблем команда корректно не отображается - получим unknown сообщение. Плагин может проинформировать о некоторых проблемах: например, на конкретном брике заканчивается место, хотя это как раз не должно меня волновать, - а только общее место на томе. Также выводит количество split-brain'ов, зафиксированных glusterd.

Команда для NRPE требует только два существенных параметра: имя тома и штатное количество бриков в томе (обнаружит меньше - подаст сигнал тревоги):

 command[check_glusterfs]=/usr/lib/nagios/plugins/check_glusterfs -v $ARG1$ -n $ARG2$ -w 40 -c 10

40 и 10 - это числа в ГБ, когда сообщать что осталось мало места. При желании их можно превратить в $ARG3$ и $ARG4$ соответственно. Отметим, что sudo спрятан внутри плагина (написан на bash), что не отменяет необходимость иметь соответствующую sudoers настройку для беспарольного sudo для этой команды.

Запись в objects:

define service {
        ...
        check_command check_nrpe_arg!check_glusterfs!megavolume 6
        ...
}

nagios-plugins-check-mem

Этот плагин использует возможности сервера snmpd получить информацию о значениях доступной оперативной памяти. Если этот ответ выше заданных значений (расчет производится в процентах) - генерируется соответствующее предупреждение.

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

 /usr/lib/nagios/plugins/check_mem  [HOST] [COMMUNITY] [WARN] [CRIT]
    HOST -  localhost, IP или адрес удаленного хоста
    COMMUNITY - параметр уровня доступа (см. настройки сервера snmpd)
    WARN - выше этого значения (в %) генерируется WARNING
    CRIT - выше этого значения (в %) генерируется CRITICAL

Пример:

 /usr/lib/nagios/plugins/check_mem public example.com 80 90

nagios-plugins-check_monit

Оригинал: http://code.google.com/p/nagios-monit-plugin/

Простой плагин, запрашивающий статус сервера monit, генерирует предупреждение, если имеется хотя бы один проблемный статус (в том числе timeout) среди проверок monit'a. В поздних релизах monit (5.8+) - выдает список таких служб, а в ранних еще и краткую формулировку проблемы по каждой проверке. Для корректной работы плагина требуется внести настройки в конфигурацию monit'а, чтобы разрешить делать запросы к нему. В качестве параметров к плагину задаются адрес, порт. Кроме того логин и пароль могут быть указаны. Список всех опций доступен по команде check_monit.py --help

В команды nagios'а плагин добавляется с такой записью:

 define command{
       command_name    check_monit
       command_line    $USER1$/check_monit.py -H $HOSTADDRESS$ -p 2812 -u $ARG1$ -P $ARG2$
 }

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

 define service{
 ...
 host_name server
 check_command check_monit!login!password
 ...
 }

nagios-plugins-check_pgactivity

nagios-plugins-check_raid

nagios-plugins-nginx

nagios-plugins-rdiff-backup

Этот плагин запрашивает файл backup.log в директории служебной информации rdiff-backup-data на наличие в конце блока статистики по проведенному бэкапу, поэтому рабочим параметром является только путь к означенному каталогу (сам каталог вписывать не нужно), который, вероятно, лежит среди прочих на одном выделенном диске. Запись в /etc/nagios/nrpe.cfg сервера бекапов:

 command[check_backup]=sudo /usr/lib/nagios/plugins/check_rdiff-backup /path/to/disk/of/backups $ARG1$

А пример записи в objects:

define service {
        ...
        service_description backup mysql-dumps
        check_command check_nrpe_arg!check_backup!mysql-dumps
        ...
}

Внимание ! Плагин несколько "капризен", а именно выдает сообщение UNKNOWN, что не может найти информацию о бекапе, если:

  1. Бекап в процессе выполнения и уже совершилась хотя бы одна ошибка доступа к какому-либо бекапируемому файлу (например, он изменился в процессе чтения)
  2. Произошла критическая ошибка, в результате чего, бекапирование аварийно завершено - в backup.log выпадет trace или сообщение об ошибке (например, закончилось место на целевом диске)
  3. Пo окончании записи файла metadata.gz падение rdiff-backup с trace'ом в beckup.log. Причем, бекап полностью выполнен (такое наблюдалось при возобновлении бекапирования после предыдущих провалов, причем следующий бекап выполнялся уже без ошибки: это какая-то странность самого rdiff-backup).

Во всех этих случаях в конце backup.log присутствуют посторонние записи, отличные от блока статистики, поэтому и выдается UNKNOWN предупреждение. Для системного администратора - это сигнал проверить, что же именно случилось.

nagios-plugins-smartmon

Простой плагин, написан на python'е. Запрашивает у локальной службы smartd информацию о температуре диска и по указанным допустимым пределам генерирует OK, Warning или Critical. Требует предустановленной службы smartd. Рекомендуется использовать совместно с NRPE, так как проверка только локальна. Идет без записи в /etc/nagios/commands/, а в /etc/nagios/nrpe.cfg следует внести, например, так:

 command[check_smartmon_sda]=sudo /usr/lib/nagios/plugins/check_smartmon -d /dev/sda -w 44 -c 48

Соответствующая запись в /etc/nagios/objects/ будет выглядеть так:

define service {
        ...
        service_description sda health
        check_command check_nrpe!check_smartmon_sda
        ...
}

Можно написать мультикоманду для NRPE, если дисков несколько:

 command[check_smartmon]=sudo /usr/lib/nagios/plugins/check_smartmon -d $ARG1$ -w 44 -c 48

Тогда запись в objects:

define service {
        ...
        service_description sda health
        check_command check_nrpe_arg!check_smartmon!/dev/sda
        ...
}

Настройка sudo

Внимание, во многих случаях в командах присутствует sudo, и неспроста: например, smartd позволяет получать информацию только root'у, a NRPE выполняет команды от выделенного пользователя (nagios). Это означает, что нужно прописать беспарольный sudo для команд-плагинов в /etc/sudoers:

 Defaults !requiretty
 nagios ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/

Файл /etc/sudoers.d/nagios-nrpe уже содержит такую информацию в пакете ALT Linux: nagios-nrpe

В случае проблем работы плагинов следует вручную отработать запуск тех или иных команд, например:

 sudo -u nagios /usr/lib/nagios/plugins/check_smartmon ...