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

Могу ли я вызвать Nagios программно вместо того, чтобы ждать, пока он проверит ваш статус?

Я понимаю, как работает Nagios, он периодически опрашивает состояние системы. Например, он может каждую минуту проверять наличие некоторых файлов или доступность какой-либо веб-страницы.

Но как насчет того, чтобы создавать предупреждения прямо из кода моего приложения? Допустим, пользователь пытается выполнить некоторую незаконную операцию, и я хочу получить от нее предупреждение.

Я мог бы, например, записать это событие в файл и настроить Nagios на периодический опрос этого файла. Это просто кажется косвенным способом сделать это. Зачем писать, опрашивать и анализировать файл в файловой системе, если я могу просто вызвать какой-либо интерфейс (REST, SOAP) с деталями предупреждения?

Есть ли что-нибудь, что позволяет мое приложение вызывает Nagios напрямую (или по какой-то причине это будет плохой дизайн)?

То, что вы ищете, - это концепция NAGIOS пассивные услуги, в сочетании с использованием NSCA для статусных инъекций.

Сервис пассивный, то есть NAGIOS никогда не будет его опрашивать. Вы запускаете демон NSCA на сервере NAGIOS и вводите информацию о статусе от клиента, вызывая ваше приложение send_nsca. Когда NAGIOS получит эту информацию о состоянии, он выдаст предупреждение в соответствии с определениями службы.

Если вы настраиваете такую ​​службу, рекомендуется включить для нее проверку актуальности, чтобы она запускалась примерно с удвоенной максимальной задержкой, которую вы когда-либо ожидали между последовательными инъекциями статуса, и чтобы средство проверки свежести сразу переходило к CRITICAL при вызове. Это будет означать, что если когда-либо внедрение статуса прервется, NAGIOS сообщит вам, что обновления перестали поступать.

Вы можете реализовать свой гипотетический пример с помощью комбинации пассивные проверки и нестабильные услуги.

Кроме того, как сказал Мэд Хэттер, обсуждение нестабильных сервисов не будет полным без проверка свежести.

Если вы настаиваете на использовании веб-API, возможно, в Категория API Nagios Exchange.