Nagios:如何启用 check_nrpe 命令行参数
当我执行带有一些参数的 check_nrpe 命令时,收到消息“CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.”。我该如何解决这个问题?
这个问题很直接,check_nrpe 默认不接受任何参数。您应该为 check_nrpe 启用命令行参数,如下所示。
验证 check_nrpe 错误信息
仅出于测试目的,让我们假设您正在执行以下 check_nrpe 命令,该命令显示“ CHECK_NRPE: Received 0 bytes from daemon. “ 错误信息。
$ /usr/local/nagios/libexec/check_nrpe -H 192.168.1.20 -c check_disk -a 60 80 /dev/sdb1
CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.
如果您查看远程主机上的 /var/log/messages(在上面的示例中,即 192.168.1.20),您将看到 nrpe 错误“Error: Request contained command arguments!” 如下图所示,表示未启用 check_nrpe 以获取命令参数。
$ tail -f /var/log/messages
Dec 5 11:11:52 dev-db xinetd[2536]: START: nrpe pid=24187 from=192.168.101.108
Dec 5 11:11:52 dev-db nrpe[24187]: Error: Request contained command arguments!
Dec 5 11:11:52 dev-db nrpe[24187]: Client request was invalid, bailing out...
Dec 5 11:11:52 dev-db xinetd[2536]: EXIT: nrpe status=0 pid=24187 duration=0(sec)
启用 check_nrpe 命令参数
要在 NRPE 中启用命令参数,您应该做以下两件事。
1. 使用 --enable-command-args 配置 NRPE
通常,当您在远程主机上安装 NRPE 时,您将在不带任何参数的情况下执行 ./configure。要在 NRPE 守护程序中启用对命令参数的支持,您应该使用 –enable-command-args 安装它,如下所示。
[remotehost]# tar xvfz nrpe-2.12.tar.gz
[remotehost]# cd nrpe-2.12
[remotehost]# ./configure --enable-command-args
[remotehost]# make all
[remotehost]# make install-plugin
[remotehost]# make install-daemon
[remotehost]# make install-daemon-config
[remotehost]# make install-xinetd
2.修改nrpe.cfg,设置dont_blame_nrpe
修改远程服务器上的 /usr/local/nagios/etc/nrpe.cfg 并将 dont_blame_nrpe 指令设置为 1,如下所示。
$ /usr/local/nagios/etc/nrpe.cfg
dont_blame_nrpe=1
使用命令参数执行 check_nrpe
在上述两个更改之后,如果您对这个特定的远程主机执行 check_nrpe,您将不会再看到错误消息,如下所示。
$ /usr/local/nagios/libexec/check_nrpe -H 192.168.1.20 -c check_disk -a 60 80 /dev/sdb1
DISK OK - free space: / 111199 MB (92% inode=99%);| /=9319MB;101662;114370;0;127078
安全警告
启用 NRPE 命令行参数存在安全风险。如果您不知道自己在做什么,请不要启用此功能。
可能到现在为止,您已经发现如果出现问题,您不能怪 NRPE,毕竟你确实将 dont_blame_nrpe 设置为 1。
- 点赞
- 收藏
- 关注作者
评论(0)