一、需求

日志服务器两台,每台有两块磁盘,分别/data1,/data2

日志文件格式如下:/data2/logserver/logs/Online-2015-10-07*

规则:
1、每小时日志与前一小时上下波动在50%~200%范围,比如2015-10-07号,7点日志为120M,如果8点日志低于60M,或者高于240M,就可能异常了
2、有可能连续几个小时的日志都骤降,比如7点为120M,8点为10M,9点为11M,如果只对比9点和8点的,看不出异常,这时有必要检查前一天的9点日志大小

 

二、部署

1、写脚本

#!/bin/bash
#####################main#########################
Data1() {
#Assignment time variable
        a=/data1/logserver/logs
        logfile="$a/UserInfo-$(date +%Y-%m-%d)"
        now_time=`date +%H`
        last_time=`date +%H -d "1 hours ago"`
        now_logfile_size=`du -lb ${logfile}-${now_time}.log | awk '{print $1}'`
        last_logfile_size=`du -lb ${logfile}-${last_time}.log| awk '{print $1}'`
        if [ $last_logfile_size -ge `echo $last_logfile_size*2|bc` ] || [ $now_logfile_size -le `echo now_logfile_size/2|bc` ]
        then
                        echo 1
        else
                        echo 0
        fi
}
Data2() {
#Assignment time variable
        a=/data2/logserver/logs
        logfile="$a/UserInfo-$(date +%Y-%m-%d)"
        now_time=`date +%H`
        last_time=`date +%H -d "1 hours ago"`
        now_logfile_size=`du -lb ${logfile}-${now_time}.log | awk '{print $1}'`
        last_logfile_size=`du -lb ${logfile}-${last_time}.log| awk '{print $1}'`
        if [ $last_logfile_size -ge `echo $last_logfile_size*2|bc` ] || [ $now_logfile_size -le `echo now_logfile_size/2|bc` ]
        then
                        echo 1
        else
                        echo 0
        fi
}
$1

 

2、定义key值

[root@logserver1 script]# vim /etc/zabbix/zabbix_agentd.conf  
########Log file monitoring
UserParameter=log_file_data1,echo "`/usr/local/zabbix/script/logfile.sh Data1`"
UserParameter=log_file_data2,echo "`/usr/local/zabbix/script/logfile.sh Data2`"

 

3、回到zabbix登录界面定义item,然后定义报警阀值

监控日志服务器日志文件异常波动_第1张图片

监控日志服务器日志文件异常波动_第2张图片