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