Я пытаюсь настроить NRPE с помощью простого примера в качестве первого шага к его развертыванию. Для простоты я запускаю локально и NRPE, и Nagios. NRPE и Nagios, похоже, работают, но использование check_nrpe из Nagios загадочным образом завершается неудачей. Редактировать: я использую версию 4.1.1 Nagios и 2.15 NRPE.
Я думаю, что NRPE работает, потому что я могу запустить check_nrpe вручную:
/s/l/n/nagios_instance ❯❯❯ libexec/check_nrpe -H 127.0.0.1 -p 5667 -c check_total_procs ⏎
PROCS CRITICAL: 536 processes | procs=536;150;200;0;
Я думаю, что Nagios работает (и предоставляет правильные аргументы), потому что я написал эту простую проверку на Python, файл с именем check_hello_world.py, который находится в каталоге libexec:
#!/usr/bin/env python
import sys
print str(sys.argv)
raise SystemExit, 2
Соответствующие строки моей конфигурации nagios выглядят так:
define host {
use linux-server
host_name yourhost
alias My first Apache server
address 127.0.0.1
}
define command {
command_name check_procs_nrpe
command_line $USER1$/check_hello_world.py –H "$HOSTADDRESS$" -p 5667 -c "check_total_procs"
#command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -p 5667 -c "check_total_procs"
}
define service {
use generic-service
host_name yourhost
service_description Check using the hello world plugin
check_command check_procs_nrpe
}
Как вы видите, я определяю команду check_procs_nrpe с помощью одной из двух команд, либо простого скрипта python, либо команды nrpe для проверки процедур, которые работали из командной строки. Когда я использую скрипт python, в течение пары минут я получаю письмо с текстом:
Additional Info:
[/spare/local/nagios/nagios_instance/libexec/check_hello_world.py, –H, 127.0.0.1, -p, 5667, -c, check_total_procs]
Кажется, это показывает, что Nagios работает правильно, выдавая оповещения, отправляя электронные письма и корректно разрешая аргументы. Когда я изменяю команду на использование check_nrpe и перезапускаю Nagios, я получаю электронное письмо с текстом:
Additional Info:
Incorrect command line arguments supplied
Я действительно не знаю, куда идти дальше. У меня нет root на этом ящике, и поэтому я не могу легко перенастроить rsyslog, чтобы попытаться получить информацию о журнале. С удовольствием предоставлю дополнительную информацию по запросу. Есть идеи?
решение1
В заключение, проблема оказалась в том, что тире в '-H' на самом деле не было тире. Это было короткое тире. Вы можете довольно ясно увидеть его в тексте выше, если посмотрите. К сожалению, Source Code Pro (шрифт, который я использую в своем терминале, а следовательно, и в vim) на самом деле не различает тире и короткое тире. Я снова открыл вопрос по этому поводу, в то же время я ищу новый шрифт (и добавляю дифференциацию тире в свой список критериев).