最近添加的几台主机的nagios监控中出现了NRPE: Unable to read output这个告警,一个是check_mysql,一个是check_uptime

check_mysql

我现在被监控机上执行了一下check_mysql是有信息返回的,于是用check_nrpe去检测check_mysql也是有数据返回的,但是在监控机上执行脚本就报错了,由于运行nrpe是用sudo运行的,所以我就加了sudo去运行check_mysql,于是提示了libmysqlclient.so.15: No such file or directory。很明显少了libmysqlclient.so.15,于是whereis mysql找到mysql的lib目录,然后在lib或lib64(64位系统)ln一个软连接到mysql的lib目录下的libmysqlclient.so.15文件,再执行check_mysql.已经有信息返回了,再到监控机上执行check_nrpe -H hostname -c check_mysql,正常了。

check_uptime

也有报NRPE: Unable to read output的错误,同样在被监控机上执行check_uptime,正常,sudo check_uptime也正常,使用check_nrpe -H hostname -c check_uptime,报错。好奇怪,于是想那么多机子都没有报错,为什么就单单这几台机子报错了,所以产生了更换check_uptime脚本的想法,从其他正常的被监控主机上取的check_uptime,上传到有问题的主机上,chmod +x check_uptime,执行check_nrpe -H hostname -c check_uptime,正常了。真的是脚本的问题