通过bash脚本分析zabbix数据库,实现服务器每日故障统计
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来实现
转载于:https://blog.51cto.com/utrace/1529501
通过bash脚本分析zabbix数据库,实现服务器每日故障统计相关推荐
- windows服务器系统巡检脚本,sql server 数据库巡检脚本
我司数据库一季度巡检一次,所以经常用到下面脚本 --1.查看数据库版本信息 select @@version --2.查看所有数据库名称及大小 exec sp_helpdb --3.查看数据库所在机器 ...
- vb 修改sql数据库服务器时间格式,博途使用小结:用VB脚本向SQL数据库中写数据的方法...
刚刚学会在博途中利用VB脚本向SQL数据库写数据,将经验总结为一篇短文供大家讨论,文中包括如何建立SQL数据库及表格,如何写脚本以及如何触发脚本. 1.安装TIA时,SQL Server Manage ...
- lftp压缩对方服务器文件,lftp 贴心好友 备份服务器bash脚本
lftp 贴心好友 备份服务器bash脚本 利用了 bash 和 lftp 的自动登录功能 lftp 支持 ftp ssh 等多种登录协议 复制代码 代码如下: #!/bin/bash echo &q ...
- busybox rootfs 启动脚本分析(一)
imx6文件系统启动脚本分析.开机运行/sbin/init,读取/etc/inittab文件,进行初始化. 参考链接 http://blog.163.com/wghbeyond@126/blog/st ...
- 从Zabbix数据库中提取内存采集的数据,做内存使用率计算
背景需求很简单,分析所有的设备的内存使用率,看那些设备的内存不够用是否需要加内存... 下面的脚本逻辑,就是通过提取zabbix数据库中的hostid,在提取itemid.. 然后通过item nam ...
- linux服务器监控zabbix,Linux监控之--使用ZABBIX监控web服务器
使用ZABBIX监控web 服务器 实验拓扑图: 实验思路: nginx添加状态统计模块,编写nginx对应的状态统计脚本. zabbix-server 导入nginx模板,并对主机实现监控. 实验环 ...
- 线上zabbix数据库重建表分区
线上zabbix数据库重建表分区 发表于:2015-03-5 0 条评论 当前线上zabbix数据按月分区单个分区文件过大,现重新按天分区. 注意事项: 1,"truncate table ...
- mysql修改服务器ip,mysql数据库修改服务器ip
mysql数据库修改服务器ip 内容精选 换一换 云数据库RDS服务上的MySQL在使用上有一些固定限制,用来提高实例的稳定性和安全性,具体详见表1. 云数据库RDS服务支持开启公网访问功能,通过弹性 ...
- 正则表达式及bash脚本(一)
目录 1 基本正则表达式元字符 1.1 字符匹配 1.2 匹配次数 1.3 位置锚定 1.4 分组其它 1.4.1 分组 1.4.2 或者 2 扩展正则表达式元字符 2.1 字符匹配 2.2 次数匹配 ...
最新文章
- 机器学习笔记六:K-Means聚类,层次聚类,谱聚类
- SharePoint 2013 配置HTTPS(SSL)
- Fast Matrix Factorization for Online Recommendation with Implicit Feedback论文代码分析
- 【AI视野·今日CV 计算机视觉论文速览 第208期】Fri, 28 May 2021
- 汽车在转型!福特中国的架构实践
- 十步教你如何接手别人的代码!
- 蓝桥杯 字母组串(递归)
- 网络安全等级保护通用解决方案参考模板
- 推荐支持 azw3 、epub 和 mobi 格式的阅读器:FBReader
- 谈谈超平面(hyperplane)
- 为什么要分析网络流量?
- LabView---信号发生器
- Python3,2行代码添加水印,发朋友圈,图片再也不怕被盗了!!!
- 【Nginx】关于二级域名配置https
- php增加sqlserver扩展
- python学习每日一题【20200226】python实现“分解质因数”的计算
- OmniPlan工具使用手册
- 这届世界杯真是谁预测谁尴尬,他却要来一次现场直播预测……
- 手把手搭织梦模板网站教程
- 360掐架搜狗浏览器