Nagios check_udp_ports возвращает критическое значение: результат запланированной проверки, отлично работает вручную

Мы используем решение Nagios core 4.3.2 в Ubuntu 14.04 для выполнения простого мониторинга проверки хоста на удаленном клиентском оборудовании. Один из типов устройств, которые мы используем, недоступен для ping, но как часть его проприетарной системы управления, UDP-порт 5246 открыт в ответ на «capwap-control». Я пытаюсь использовать плагин check_udp_port, доступный по адресу

https: //exchange.nagios. Никакой дополнительной информации не дается, или какие-либо записи в журналах, кроме проверки хоста, не выполнялись.

Он использует утилиту nmap для проверки, которая требует sudo, я добавил запись в последнюю строку / etc / sudoers, чтобы пропустить пароль согласно инструкциям в приведенной выше ссылке.

nagios ALL = NOPASSWD: / usr / local / nagios / libexec / check_udp_port *

Вот как это выглядит в команде define {

    command_line    sudo $USER1$/check_udp_port -H $HOSTADDRESS$ -p $ARG1$ -s $ARG2$

Я включил отладку и посмотрел журнал Когда я запускал проверку несколько раз в веб-админке nagios, последняя команда вывода каждый раз выглядела совершенно правильной.

[1497380591.600863] [2048.1] [pid=1259] **** BEGIN MACRO PROCESSING ***********
[1497380591.600880] [2048.1] [pid=1259] Processing: 'sudo $USER1$/check_udp_port -H $HOSTADDRESS$ -p $ARG1$ -s $ARG2$'                
[1497380591.600893] [2048.1] [pid=1259]   Done.  Final output: 'sudo /usr/local/nagios/libexec/check_udp_port -H 172.15.192.211 -p 5246 -s capwap-control'                     
[1497380591.600901] [2048.1] [pid=1259] **** END MACRO PROCESSING *************

Сначала я проверил, что pid работает под пользователем nagios

 1259 nagios    20   0   37404  17036   2800 S   0.3  0.2  12:21.88 nagios

Затем я вошел в систему как пользователь nagios и запустил команду из журнала отладки напрямую, и она работает без проблем.

nagios@Monitoring:/usr/local/nagios/libexec$ sudo /usr/local/nagios/libexec/check_udp_port -H 172.15.192.211 -p 5246 -s capwap-control
UDP OK - capwap-control listening on port 5246: 5246/udp open capwap-control

Я тестировал без строки в sudoers, и системная информация в nagios изменилась на ошибку о необходимости sudo, как ожидалось. Несмотря на то, что из командной строки он работает безупречно, и журналы показывают, что он выполняет команду правильно, он все равно терпит неудачу и просто показывает "CRITICAL:" для информации.

2
задан 14 June 2017 в 03:37
1 ответ

Это может быть настройка sudo's requiretty. Попробуйте добавить Defaults:nagios !requiretty в sudoers (или где-нибудь в /etc/sudoers.d).

Более безопасным вариантом будет модификация плагина для вызова nmap через sudo, вместо того, чтобы запускать весь плагин через sudo.

Или, что еще лучше, просто используйте базовый плагин check_udp, который не требует root/sudo.

Дополнительно, при тестировании вручную в командной строке, может быть полезно запустить плагин через env -i для симуляции того, что он будет делать, если не определено $ENV.

.
0
ответ дан 3 December 2019 в 14:11

Теги

Похожие вопросы