今天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
现在再看, 进程已经启动.
转载于:https://blog.51cto.com/thgenius/877940