通过bash脚本分析zabbix数据库,实现服务器每日故障统计

ZABBIX优化、如配置文件优化、后台数据库优化……

版主: sfzhang

回复
头像
oulin_hl
论坛管理员
论坛管理员
帖子: 113
注册时间: 2013年 11月 22日 21:46 星期五

通过bash脚本分析zabbix数据库,实现服务器每日故障统计

帖子 oulin_hl » 2013年 11月 24日 12:13 星期天

boss要求每天晚上九点发送一条短信,至各部门总监的手机上,总结一天中所有服务器的错误统计,接到任务后,我分析了一下,通过zabbix的自带功能不太好实现,于是打算通过编写shell脚本来实现,以下是我线上的脚本,经过了二次修改后,已修复脚本误报Bug。
脚本简要说明:
通过sql语句,查询出events表中一天的所有警报,通过triggers表将警报分类,然后按分类放入相应的数组,最后通过公司的短信接口,发出统计短信。
----------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/sh
### ## 版本:V0.2 2010-10-21 22:28 David.zhu
#------------------------------
## array1 普通信息
## array2 警告信息
## array3 一般问题
## array4 严重问题
## array5 灾难
#-----------------------------
now=`date +%s`
fix=`expr $now - 86400`
myconn="mysql -h 192.168.0.10 -uzabbix -pzabbix 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"`
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="服务器监控总结---灾难问题:${#array5[@]}个|严重问题:${#array4[@]}个|一般问题:${#array3[@]}个|警告信息:${#array2[@]}个|普通信息:${#array1[@]}个"
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

-----------------------------------------------------------------------------------------------------------------------------------------------
注:本脚本在zabbix 1.8.3版本上测试通过,其它版本未做过测试,sendsms_pro.php为我司的短信接口,如没有接口,可以使用linux fetion来实现

原文链接:http://bbs.linuxtone.org/thread-9402-1-1.html IT运维专家网--"自由平等,互助分享!"

代码: 全选

ZABBIX中文论坛
欢迎热爱zabbix的网友们,在此我们可以一起探讨、交流、沟通zabbix的所有操作与问题!

si_lee
初学乍练
初学乍练
帖子: 1
注册时间: 2014年 1月 6日 13:01 星期一

Re: 通过bash脚本分析zabbix数据库,实现服务器每日故障统计

帖子 si_lee » 2014年 1月 6日 13:12 星期一

学习一下,

ld1977
初学乍练
初学乍练
帖子: 4
注册时间: 2017年 1月 9日 16:30 星期一

Re: 通过bash脚本分析zabbix数据库,实现服务器每日故障统计

帖子 ld1977 » 2017年 10月 11日 13:27 星期三

学习一下。。。。

回复