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 получить информацию о значениях доступной оперативной памяти. Если этот ответ выше заданных значений (расчет производится в процентах) - генерируется соответствующее предупреждение. Для получения информации использует сервер snmpd: фактически, запрашиваются конкретные OID, поэтому требуется настроенный snmpd с разрешением на чтение. Параметр COMMUNITY как раз и задает "группу" доступа, поэтому зависит от настройки сервера. В свете последних проблем с безопасностью, snmpd не рекомендуется "открывать наружу", поэтому плагин следует использовать совместно с NRPE.

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

 /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

Запрашивает статистику таблицы базы postgresql. У плагина много параметров, что позволяет создавать гибкие команды в оснастку nagios. Полное описание доступно тут: https://github.com/OPMDG/check_pgactivity/ . Здесь же ограничимся простым примером. Плагин может подключаться к удаленному ресурсу (с помощью опции -h можно указать адрес удаленного сервера) или локально, что позволяет настраивать его как через NRPE, так и напрямую. В случае использования NRPE не должно возникнуть проблем с доступом к базе.

Внимание: при работе плагин пишет временные файлы, поэтому крайне желательно, указывать временные файлы и директории, доступные для чтения и записи ЯВНО, так как через NRPE он работает не от root'а, а привилегии root'a ему и ни к чему. Тогда запись в /etc/nagios/nrpe.cfg:

 command[check_pgactivity]=/usr/lib/nagios/plugins/check_pgactivity --status-file /tmp/check_pgactivity.$ARG1$.data -s $ARG1$ -h /tmp

Пример записи objects:

define service {
        ...
        check_command check_nrpe_arg!check_pgactivity!base253
        ...
}

nagios-plugins-check_raid

Этот плагин просто проверяет вывод /proc/mdstat на наличие сообщений о проблемах (диск зеркала отпал, идет проверка и т.п.) с каждым raid-массивом (проверяет сразу все). Каких-то специальных аргументов не требует. Используется в связке с NRPE, sudo не требует (так как информация о raid обычно доступна для чтения всем).

Запись в /etc/nagios/nrpe.cfg:

 command[check_raid]=/usr/lib/nagios/plugins/check_raid

Запись в objects:

define service {

       ...
       service_description raid status
       check_command check_nrpe!check_raid
       ...

}

nagios-plugins-nginx

!!! Плагин в настоящее время не используется, описание приведено согласно выводу --help !!!

Плагин считывает страницу статистики, если количество текущих соединений превышает заданные значения - генерируются WARNING и CRITICAL сообщения. Сам плагин делает запрос URL, поэтому может применяться как непосредственно, так и через NRPE.

check_nginx [-h|--help][-U|--url][-P|--path][-u|--user][-p|--passwd][-w|--warning][-c|--critical]

   Опции:
          --help|-h)
            выводит эту справку.
          --url|-U)
            адрес проверяемого сервера.
          --path|-P)
            относительный путь к странице статуса.
          --user|-u)
            поддерживается базовая авторизация: пользователь
          --passwd|-p)
            поддерживается базовая авторизация: пароль
          --warning|-w)
            значение для числа соединений, выше которого выдается WARNING
          --critical|-c)
            значение для числа соединений, выше которого выдается CRITICAL

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, так как проверка только локальна. Кроме того требует настроенный sudoers. Идет без записи в /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 ...