Я определил следующую команду для одной из проверок службы:
define command{
command_name mycommand
command_line $USER1$/check_by_ssh -p $ARG1$ -l nagios -i /etc/nagios2/keys/key1 -H $HOSTADDRESS$ -v -C 'source $USER10$ ; command.py -a get --alert-name $ARG2$ -q'
}
Проблема в том, что кажется, что nagios разбирает команду с точкой с запятой и производит мусор, который невозможно выполнить. Я пробовал также поставить обратную косую черту \;
, но безрезультатно.
Если я запускаю команду прямо в оболочке, она работает. Это означает, что это не проблема check_by_ssh
, но проблема при разборе файла конфигурации nagios.
Как я могу это отладить? Есть ли способ получить список всех команд, которые nagios проанализировал при чтении файлов конфигурации?
Из обсуждения комментариев:
Нагиос очевидно съедает все, что стоит после точки с запятой в определении "команды". Самый простой способ справиться с этим - заключить сложную команду в сценарий оболочки, который будет вызываться Nagios.
В рамках отладки текущую конфигурацию Nagios можно просмотреть с помощью CGI из веб-интерфейса, в частности config.cgi (например, https://nagios.example.com/cgi-bin/nagios3/config.cgi). Это покажет текущий набор команд, хостов и т. Д.
Возможно, вам не понравится мой ответ на основе вашего комментария
У меня более 100 сервисов, и создать скрипт для каждого будет непрактично.
Но я думаю, вам следует изучить возможность использования NRPE, исполнитель подключаемого модуля Nagios Remote.
Со своего сайта:
NRPE позволяет удаленно запускать плагины Nagios на других машинах Linux / Unix. Это позволяет отслеживать показатели удаленного компьютера (использование диска, загрузка ЦП и т. Д.). NRPE также может взаимодействовать с некоторыми надстройками агента Windows, поэтому вы также можете выполнять сценарии и проверять метрики на удаленных машинах Windows.
Некоторое время назад я переключился на NRPE с настройки, подобной вашей, и да, было немного сложно установить и настроить новое программное обеспечение на многих серверах, которые я хотел отслеживать. Однако выгода того стоила; это была гораздо более надежная установка, и после ее настройки легко управлять проверками Nagios на каждом сервере.