Zabbix监控之每日告警统计报告

本文介绍了一个用于Zabbix监控系统的Shell脚本,该脚本自动化收集并报告过去24小时内不同级别警报的数量,包括已确认事件,并通过邮件发送报告。脚本通过查询Zabbix数据库获取事件信息,按优先级分类,最后使用邮件服务发送汇总信息。

vi zabbix_report.sh

#!/bin/sh
#sword make 160518
#------------------------------
## array1 普通信息
## array2 警告信息
## array3 一般问题
## array4 严重问题
## array5  灾难
#-----------------------------
#set -x
now=`date +%s`
fix=`expr $now - 86400`
now1=`date -d @${now} +"%F %r"`
fix1=`date -d @${fix} +"%F %r"`
echo $now $now1
echo $fix $fix1
myconn="mysql -uzabbix -pmysql,123 zabbix"
#result=`${myconn} -e "SELECT objectid FROM events WHERE value=1 AND objectid >10000 AND clock>=${fix} AND clock<=${now}  ORDER BY clock DESC LIMIT 100" | grep -v "objectid"`
result=`${myconn} -e "SELECT objectid FROM events WHERE source=0 and value=1 AND objectid >10000 AND clock>=${fix} AND clock<=${now}  ORDER BY clock DESC" | grep -v "objectid"`
resultack=`${myconn} -e "SELECT count(clock) FROM events WHERE value=1 AND objectid >10000 AND clock>=${fix} AND clock<=${now} AND acknowledged=1"| grep -v "count"`
i=0
for trid in ${result};do
PRO=`${myconn} -e "SELECT priority FROM triggers t WHERE ((t.triggerid  BETWEEN 000000000000000 AND 099999999999999)) AND  (t.triggerid IN(${trid}))"| grep -v priority`
case $PRO in
                1)  array1[$i]=${PRO};;
                2)  array2[$i]=${PRO};;
                3)  array3[$i]=${PRO};;
                4)  array4[$i]=${PRO};;
                5)  array5[$i]=${PRO};;
                *)  error[$i]=${PRO};;
        esac
i=`expr $i + 1`
done

#message="从昨日16:30到今日16:30截止:\n监控总结---灾难问题:${#array5[@]}个|严重问题:${#array4[@]}个|一般问题:${#array3[@]}个|警告信息:${#array2[@]}个|普通信息:${#array1[@]}个|已经确认事件:${resultack}"
message="监控总结从${fix1}到${now1}截止如下:\n有人已经确认事件:${resultack}个\n灾难问题:${#array5[@]}个\n严重问题:${#array4[@]}个\n一般问题:${#array3[@]}个\n警告信息:${#array2[@]}个\n普通信息:${#array1[@]}个\n"
#mobile=('138*****' '138*****' '138*****' '138*****')
#for ((j=0;j<${#mobile[@]};j++));do
#number=${mobile[${j}]}
#/usr/local/zabbix/bin/sendsms_pro.php ${number} notitle ${message} | 2>&1
#done
echo $message
#-------------
time1=`date +%F`
export zabbixemailto=xxx@xxx.xxx,xxx@xxx.xxx
export zabbixsubject=JLR监控总结${time1}
export zabbixbody=${message}
export smtpserver=zabbix@company.com
export smtplogin=zabbix@company.com
export smtppass=
/usr/bin/printf "%b" "$zabbixbody" | mailx -s "$zabbixsubject" -r $smtpserver  $zabbixemailto

crontab -e 加入计划任务

0 8 * * *  /usr/bin/sh /opt/zabbix_report.sh &>/dev/null

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值