我已经将一台服务器从 Debian 8 升级到了 Debian 9。该服务器正在运行 Nagios 3 进行一些检查,但该软件已停用。自然的替代品是 Icinga(版本 1)。
我已经安装了它,并复制和调整了配置文件。大部分都直接起作用了,但 NRPE 远程检查不起作用。
首先,我正在使用该check_nrpe_1arg
命令,但它似乎已被更改为check_nrpe
明确它不接受参数(唯一的参数是远程命令名称)。
这修复了 icinga 的启动配置。但所有 NRPE 检查都在未知用此消息声明:
CHECK_NRPE: Receive header underflow - only -1 bytes received (4 expected).
我已经从 bash 提示符运行了命令来检查它是否正常工作,看起来确实如此。
$ /usr/lib/nagios/plugins/check_nrpe -H 192.168.4.1 -c check_users
USERS OK - 0 users currently logged in |users=0;5;10;0
但不知何故,Icinga 的命令不起作用。
答案1
嗯,我找到问题了。
我是从命令行使用 SSL,而不是从 Icinga 配置使用。我将可执行文件check_nrpe
与同名的命令定义混淆了。
这是版本 3(Debian 9 附带的版本)的 NRPE 配置:
# this command runs a program $ARG1$ with no arguments and disables SSL support
define command {
command_name check_nrpe
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -n
}
# this command runs a program $ARG1$ with no arguments and enables SSL support
define command {
command_name check_nrpe_ssl
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
注意-n
第一个参数。我翻译了 Nagios 3 中所有check_nrpe_1arg
with的用法check_nrpe
,但应该是check_nrpe_ssl
。
我已经这样做了并且现在有效。