Я пытаюсь настроить 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, чтобы попытаться получить информацию журнала. Мы рады предоставить дополнительную информацию по запросу. Любые идеи?
В заключение, проблема оказалась в том, что тире в "-H" на самом деле не было тире. Это было тире. На самом деле вы можете довольно ясно увидеть это в тексте выше, если поищете. К сожалению, Source Code Pro (шрифт, который я использую в своем терминале и, следовательно, в vim) не различает тире и дефисы. Я снова открыл проблему по этому поводу, а пока я ищу новый шрифт (и добавляю различение тире в свой список критериев).