Запрос статуса Nagios программно
Недавно я приобрел хороший светодиодный дисплей 7х11, и я хочу (помимо прочего) отобразить на нем свой статус нагиос. Для этого мне нужно запросить статус моей установки Nagios.
Как правильно получить сводку состояния (например, количество не-OK сервисов) с удаленного сервера Nagios, скажем, из сценария perl?
2 ответа
Я поддерживаю чрезвычайно большую установку nagios и могу сказать, что лучший способ сделать это - через посредник событий " livestatus ":
http://mathias-kettner.de/checkmk_livestatus.html
Livestatus обеспечивает мгновенный доступ к статусу nagios через локальный или tcp-сокет и обеспечивает почти нулевую дополнительную нагрузку на процессор на вашем сервере мониторинга (но, конечно, имеет место в памяти). Простая интеграция с xinetd/unixcat позволяет запрашивать его через сеть. Выходные данные представлены в одном из трех форматов: CSV, JSON и Python. Доступны многочисленные параметры конфигурации, и он достаточно стабилен для использования в производственной среде. Документация очень хорошая.
Кроме того, livestatus включает другие надстройки nagios, такие как " MK Multisite ", который объединяет результаты нескольких установок nagios в единый графический интерфейс без использования результатов NSCA или пассивных проверок служб, которые требуют, чтобы конфигурации nagios поддерживались на обоих рабочих и главные серверы.
Насколько я знаю, nagios.com не поддерживает API для запроса статуса nagios. Есть немало разных дополнений, которые позволят вам сделать это. Некоторые обсуждаются в этом вопросе.
Вы можете напрямую запросить cgi и "очистить экран" возвращенного html, но это не очень надежное решение. Я немного повозился с этой версией сервера API, но не поставил ее в производство.