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

Можно ли подтверждать оповещения nagios с терминала на удаленной рабочей станции?

У меня есть оповещения nagios, настроенные для получения через jabber с http-ссылкой для подтверждения.

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

./ack имя хоста

Польза, хотя и кажется обыденной, тройная. Во-первых, снимите HTTP-нагрузку с nagios. Во-вторых, http-страницы nagios могут загружаться до 10-20 секунд, поэтому я хочу сэкономить там время. В-третьих, избегать более медленного использования мыши + веб-интерфейса + Firefox / другого раздражающе медленного браузера.

В идеале я хотел бы, чтобы сценарий был привязан к сочетанию клавиш, которое просто подтверждает последнее предупреждение. Наконец, я хочу взять входные данные с джойстика, кнопок и еще чего-то и подключить один к большой красной кнопке, привязанной к сценарию, чтобы я мог просто подтвердить последнее предупреждение nagios, нажав кнопку lol. (Было бы неплохо, если бы у кнопки был экран на корпусе, на котором отображался текст предупреждения, который принимался lol)

Смейтесь надо мной сколько угодно, но на самом деле это то, что было бы мне полезно. Если я могу сэкономить пять секунд на предупреждение и получать 200 предупреждений в день, которые мне нужно подтверждать, это экономит мне 15 минут в день. И разве весь смысл сисадмина не в том, чтобы автоматизировать то, что можно автоматизировать?

Спасибо!

Это определенно возможно, но имейте в виду, что вы погружаетесь во внутренности Nagios, у которых крутая кривая обучения. Это должно быть интересное и полезное обучение.

Вы можете использовать Nagios Внешние команды чтобы внешние программы могли вставлять команды в очередь команд Nagios. Есть много команд. Совместите это с удаленным доступом и возможностями командной строки и сценариями оболочки, и вы получите довольно большие возможности.

Вот один пример: с удаленного компьютера подключитесь по SSH к хосту Nagios. Команда ~/bin/ack вставит команду в command_file очередь. Затем Nagios прочитает command_file и выполнит вашу команду. Команда может выглядеть примерно так:

ssh nagios.example.org ~/bin/ack hostA

Другой пример: чтобы отключить все уведомления на Nagios с удаленного хоста, команда выглядит примерно так:

ssh nagios.example.org "echo \"[\"дата +% s\"] DISABLE_NOTIFICATIONS\" > /var/spool/nagios/cmd/nagios.cmd"

Теоретически вы можете сделать это и с другими демонами, использовать Netcat для прослушивания порта и передачи команд в файл или даже сделать это с помощью Jabber, IRC и т. Д. Я знаю одну группу, которая сделала это, используя xinitd, прослушивая определенные порты. Быть очень осторожно рассмотреть последствия для безопасности разрешения удаленного доступа без аутентификации к вашему хосту Nagios.

В руководстве Nagios есть дополнительная информация о внешних командах. Видеть Nagios Core: внешние команды

Вот пример для выполнение команд от Munin. Они используют NSCA

Если безопасность не является вашим приоритетом, подойдет сценарий netcat + xinetd + для каждой стороны. Если вам нужна некоторая безопасность и / или вы не хотите писать это самостоятельно, вы можете дать NRCD или nscaweb попытка. Или взгляните на этот сценарий с именем nagios_commander

С вещами, распределенными в стандартном ядре, я бы сказал нет. Но если вы расширите код cgi.c и вспомогательного модуля для веб-сайта, возможно, вы сможете это сделать. URI может выглядеть некрасиво. Возможной проблемой может быть запрос на аутентификацию для авторизации для выполнения команды.

Вы заходили на сайт обмена nagios и, возможно, что-то там разместили?