今天添加了一个监控mysql数据库总目录大小的脚本,结果发现nagios报错NRPE: Unable to read output

此类问题一般就是nrpe.cfg里面的命令没有写对或者脚本的权限问题导致。
可是这几项我这都不存在啊,纳闷了。
干脆打开nagios用户的bash,su nagios,执行监控脚本发现原来是mysql下的var权限导致的,var这个目录只有mysql用户rwx,其余都没有权限。nagios是看不了这个var的大小的,找到了原因就好办了。
思路
干脆加个死循环吧,把文件大小读到文件里,然后nagios去读这个文件。
[root@mysql ~]# cat /usr/local/sh/check_mysql_var_size.sh
#!/bin/bash

dir=/usr/local/mysql/var dest_file=/usr/local/nagios/libexec/mysql_var_size.txt
while :
do
 du  -s $dir|awk '{print $1}' >${dest_file}
 sleep 50s
done

 
nohup /usr/local/sh/check_mysql_var_size.sh &
 
nagios监控脚本:
再次查看nagios监控页面NRPE: Unable to read output消失了。