У меня есть оповещения 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 и, возможно, что-то там разместили?