Nagios-plugins
Плагины 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, что не может найти информацию о бекапе, если:
- Бекап в процессе выполнения и уже совершилась хотя бы одна ошибка доступа к какому-либо бекапируемому файлу (например, он изменился в процессе чтения)
- Произошла критическая ошибка, в результате чего, бекапирование аварийно завершено - в backup.log выпадет trace или сообщение об ошибке (например, закончилось место на целевом диске)
- П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 ...