今天NRPE一个插件取数取不到了,感觉以前测试的时候取得到数啊,然后找了一台机器使用后报错如下:

CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.

到网上查,是说没有开户参数命令,然后找到nsc.ini,然后把

allow_arguments=1,这样就可以允许带参数了。

然后继续运行,出现接收头错误,倒。。。

一问才知道,同事把nsclient和NRPE的参数都改了,因为我们要返回进程列表,字节比较长,而它们默认是只传输1024字节,所以我用常规的NRPE去与nsclient通信就出现接收错误了,

然后修改NRPE源文件中include下面的common.h文件中宏定义

#define MAX_PACKETBUFFER_LENGTH    16386   默认是1024,

然后在编译./configure;make;make all;make install-plugin,编译完成,

最后在用插件通信,又出现

CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.错误,倒,只能看错误日志,一看才知道我电脑没有权限访问这台nsclient主机,

然后修改配置文件中SET下面的allowed_hosts=,

但还是一样,后来问别人,看到NRPE下面还有个allowed_hosts,他说在这上面也加上访问主机的地址试试,一重启就可以访问了,汗。。。。

搞半天原来不是插件的问题,是同事自己配置没做好,怪不得我的插件没输出结果,算了,记录记录,免得忘记。。。。。

 

ps -ef| grep nrpe

看不到nrpe进程.
1.原因很大是因为服务器上开启了xinetd. 关闭xinetd进程即可
2.因为一般都使用的是-d模式启动的nrpe进程,那么它是独立起的demon进程,所以如果xinetd进程也在的话,nrpe就起不来.
3.如果使用-i模式启动,那么就必须要启动xinetd守护进程.

service xinetd stop

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

  

现在再看, 进程已经启动.