Nagios插件脚本大致可以分为两类,一类是判断某个对象是否存在(如进程),另一类是判断某个对象是否处于一定范围(处于某个范围,状态正常“OK”;处于某个大一些的范围,状态警告“Warning;处于某个更大一些的范围,严重警告“Critical”)。Nagios通过脚本退出状态码(0,1,2,3)来确定返回正常或者警告或者严重警告。其中“0”代表正常,“1”代表警告,“2”代表严重警告,“3”代表未知。下边分别举例说明,供大家参考。
◎检查日志文件是否生成(check_logfile)。仅需退出状态码“0”和“2”,没有中间状态,脚本内容如下:
#!/bin/bash
source /etc/profile
cd /data/logs
logfile=$1
if [[ -f $logfile ]]
then
echo “$logfile is OK!”
exit 0
else
echo “$logfile is not exist!”
exit 2
fi
手动执行脚本,检查其有效性。 [root@haproxy168 ~]# ./is_logfile haproxy.log “haproxy.log is OK!” [root@haproxy168 ~]# ./is_logfile haproxy.lo “haproxy.lo is not exist!”
◎检查日志文件大小(check_logsize)。小于等于4G正常“OK”,大于4G且小于8G警告“Warning”,大于8G严重警告“Critical”。
#!/bin/bash
source /etc/profile
cd /data/logs
logfile=$1
is_logsize_GB=`du -hs $logfile |awk '{print $1}'|grep G|wc -l`
if [[ $is_logsize_GB -eq 1 ]]
then
logsize=`du -hs $logfile |awk '{print $1}'|sed s/G//|awk -F . '{print $1}'`
if [[ $logsize -le 4 ]]
then
echo “$logsize is OK!”
exit 0
elif [[ $logsize -gt 4 ]] && [[ $logsize -le 8 ]]
then
echo “$logsize\G is Warning!”
exit 1
else
echo “$logsize is Critical!”
exit 2
fi
else
logsize=`du -hs $logfile |awk '{print $1}'`
echo “$logsize is OK!”
exit 0
fi
手动自行脚本check_logsize,验证该脚本的有效性。 [root@haproxy168 ~]# ./check_logsize /data/logs/haproxy.log “8G is Warning!” [root@haproxy168 ~]# >/data/logs/haproxy.log [root@haproxy168 ~]# ./check_logsize /data/logs/haproxy.log “64M is OK!”
|