Назад | Перейти на главную страницу

Программный запрос статуса Nagios

Недавно я приобрел красивый светодиодный дисплей 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. Есть несколько различных дополнений, которые позволят вам это сделать. Некоторые обсуждаются в этом вопросе.

https://stackoverflow.com/questions/7768215/is-there-a-way-to-extract-data-from-nagios-as-if-it-was-a-web-service

Вы можете запросить cgi напрямую и «очистить экран» от возвращенного html, но это не очень надежное решение. Я немного поработал с этой версией сервера api, но не поставил ее в производство.

https://github.com/xb95/nagios-api