虽然不早了但还是想记录一下,毕竟这个问题让我浪费了一个小时啊made
最然不怎么地 先把这个小脚本贴上来 这样说的更清楚。。
[root@mail ~]# cat /usr/local/nagios/libexec/check_mysql_log
#!/bin/bash
#This shell need improve
check_rete=600
time_now_sec=`date +"%s"`
error_log=`tail -100 /var/log/mysqld.log | grep -i "ERROR" | tail -1`
if [ ! -z ${error_log:0:1} ];then
error_log_time=`echo $error_log | awk '{print $1" "$2}'`
error_time_sec=`date -d"$error_log_time" +"%s"`
if [ $((time_now_sec-error_time_sec)) -lt $((check_rete)) ];then
echo "CRITICAL - Found ERROR in mysql.log"
exit 2
else
echo "OK1 - mysql.log not found error"
exit 0
fi
else
echo "OK2 - mysql.log not found error"
exit 0
fi
其实这个小脚本最开始是为了检查mysql中有没有坏表。在检查时先读取了mysql的日志文件,在本地测试都正常,(root身份执行的。。已经没这个意识了)
然后加入服务,nrpe调用的时候 死活打印"OK2 - mysql.log not found error",我还寻思见了鬼 ,大晚上的。
然后改脚本把变量打印出来,同样的,通过nrpe调用时什么都打不出来,。。。。。。。。。。。。。。。哦,没读的权限吧?
[root@mail ~]# ll /var/log/mysqld.log
-rw-r----- 1 mysql mysql 41472 Jul 5 00:12 /var/log/mysqld.log
默认640
改成644 或者把nagios加入mysql组,重启客户端nrpe,监控端测试,得到了预期结果。
按说selinux关了呢关了怎么跟这还有关系,我一直纳闷着。。。谁能解释下
总之注意nrpe读的文件的权限。
晚安,这一晚上。。