十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如何分析zabbix告警系统,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
故城ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
在zabbix里面,告警通道配置太繁琐,我们分别来分析下:
邮件报警: 如需配置邮件报警,就得在Zabbix里配置邮件调用接口。并且Zabbix邮件报警经常发生延迟(Zabbix自身延迟+邮件服务商延迟),更悲催的是,报警邮件往往没人看.既然看邮件不方便,我们就考虑短信报警
短信报警: 如果配置短信报警,就需要向服务商购买短信服务.确实有很多短信服务都很便宜.而且如果我们用的是阿里云这样的云服务,短信服务可以随时开通(13年时候).
需要设定短信末班,在zabbix配置短信调用接口,而且还要避免某个短信服务商延迟和漏发
电话报警: 这个是最坑的,在半夜三更把运维人员从睡梦中弄醒,及时解决紧急故障,比起短信来,电话的提醒效果会更好.但是电话报警用不好真是一种骚扰,爱爱到一半电话来了,接还是不接是个问题.我们之前公司,使用电话报警,都需要做二次开发.这时候python就有用了,当然以前脑袋短路,用的java.
微信报警,是不是又升级了,跟的商形式嘛,配置微信报警,需要申请开通微信的相关服务,然后排期进行针对性开发
首先,微信的订阅号、服务号、企业号,其消息推送限制、消息内容限制、认证前后的人数限制都是不同的 ,真的能分的那么清楚?
其次,如果发生报警风暴,确定你的小心脏接受得了微信里突然多出来的成百上千条报警提示,反正我是已经习惯了.
不过我也是被虐千遍后才想起来可以搞一个只要有运维人员介入维护,就不再发信息,不然老大会疯掉的
上面就是我们经常会用到的报警方案,但是对于zabbix来讲,无论哪种方案的配置都特别复杂,而且没有中文参考资料.我增加新到一家公司,他们的运维就是配置一个User组,配置一个Trigger就了事.
无论是邮件报警、短信报警或微信报警,都会存在告警风暴的问题:如果发现类似断网等大面积故障,而且没有告警保护和收敛机制的话,那电话响一个小时的事情是常有的,更不用说说不清的报警邮件,以及让人疯掉的短信.
后来对于监控系统管理上,我们做了调整,解决了一旦发生报警,立即全员通知的弊端,报警级别严格划分.严重级别轮询升级通知处理,使用java做二次开发,后来做自动化运维平台的时候用zabbix做了重构.
这期间,我们也换过监控宝,New Relic,等收费工具,收费工具虽然好用,但是基于企业信息安全的保障性比较差,当然这些可能作为监控服务提供商不会承认,但我们对自己的企业成本,人力成本,信息安全做综合考虑.
说到安全还有一件很低级可笑的事情,之前服务的一家公司测试服务用的是腾讯云,我介入的时候,腾讯云还处在公测阶段,服务器快要到期的时候我一再强调腾讯云是到期立即回收资源,不像阿里云有一周的缓冲起,不过最终很不幸,还是到期了,而且没有立即充值,所有的努力都化为乌有.好在是测试机,也可能是测试机所以引不起公司的重视吧. 当然这是腾讯云公测时候的事情了,现在貌似也不会到期立即释放资源这一说法了.
在这里共享一个微信报警---企业号(shell)版本:
#!/bin/bash
###SCRIPT_NAME:TFedu###
###send message from weixin for zabbix monitor###
###develop###
###V7-2014-05-12###
CropID='wx4a5706c1941562f0'
Secret='wWddGauAGusDEkETib9PEwnDacTQ9Ie-w-Fh7HhSUD3rmsQ_ro980vun4jbOAVrS'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F" '{print $4}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body(){
local int AppID=1 # 企业号中的应用id
local UserID=$1 # 部门成员id,zabbix中定义的微信接收者
local PartyID=2 # 部门id,定义了范围,组内成员都可接收到消息
local Msg=$(echo "$@" | cut -d" " -f3-)
# 过滤出zabbix中传递的第三个参数
printf '{'
printf ' "touser": "'"$User""","
printf ' "toparty": "'"$PartyID""","
printf ' "msgtype": "text",'
printf ' "agentid": "'" $AppID ""","
printf ' "text": {'
printf ' "content":"'"$Msg""""
printf ' },'
printf ' "safe":"0"'
printf '}'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
当然这个脚本并不是唯一的答案,你可以改写成python脚本.
看完上述内容,你们掌握如何分析zabbix告警系统的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!