实时警报通知:微信告警通知的重要性解析
1068
2022-11-12
本文目录一览:
阿里短信提供HTTP等协议接口可供您调用。
发送告警信息并不一定只有阿里去短信可以发送。如果您发送的内容中有签名不是固定一个,也不是你们公司的字号名,或商标名,阿里就不允许您使用。
现在大公司的平台系统都集成了短信预警和异常报错短信通知模板,您的这种作法是完全可性的,有关作短信预警的短信平台,除了您所说的阿里外您也可以考虑一下巴卜短信,他们为很多CRM,MIS,ERP等系统作短信支持,他们也许不仅仅提供短信服务还能提供解决方案。希望我的回答能帮到您。
zabbix的告警通知非常灵活,支持的通知类型有Email、Jabber、sms、script 。其在设备需要修护时,同样可以提供同nagios 一样的设备维护期间,暂停告警的功能有,而且其相对于nagios 更加灵活。本篇就针对zabbix的告警和设备维护功能进行下说明。 一、media types 告警通知本篇以脚本通知为例进行说明 1、配置AlertScriptsPath# vim /etc/zabbix/zabbix_server.conf 找到# AlertScriptsPath=${datadir}/zabbix/alertscripts 行,增加如下内容 AlertScriptsPath=/etc/zabbix/alertscripts配置完成后,需要重启zabbix_server服务生效,在后面media type 写入的脚本名称就会从上面的配置目录中查找并执行。2、创建media type步骤为:登录 zabbix web 页面------Administration--------Media types--------Create Media Type(右上角) ,如下图:配置完成后,save保存即可。 3、创建Action步骤为:登录 zabbix web 页面---- Configuration ---- Actions ---- Create action , 如下图subject为发送主题,message为发送内容(通过message内容的自定义,可以例如在告警时,将其他相关信息也进行通知,可以从侧面了解整个主机的运行情况---某次面试时面试官曾提过的需求),这两者的内容都可以很方便的进行更改。勾选了Recovery message 选项,会在监控项恢复时也会给一个恢复的提示。condeitions 选项中设置的是触发通知的条件,默认情况下只有A、B两项 ,这里可以设置触发级别、主机组、主机、触发值、应用等 。举例说明下: 1、可以根据告警级别进行通知,如severity 级别大于等于average时,通知OPS运维人员,级别为Disater时通知部门经理或者BOSS (这需要配置两个action); 2、也可以根据时间进行定义,如只在工作时间进行告警通知; 3、如果你喜欢的话,也可以指定不同主机组通知到不同的人; 而且所有条件之间的关系可以是AND或者OR ,默认情况下都是AND,即所有条件都满足时,触发通知。 注:个别主机,如DB主机,晚上有备份任务导致晚上某段时间过载(同时又不是所有主机都这样,又不想增大触发条件的话),可以在configuation ---hosts 里的items 选项里配置通知的时间范围,那里也有 time period 配置选项(从另一方面也反映了zabbix的灵活,有宏观调控,也有微观调控,适用性很强) 。不过要尽可能的都在actions 里进行配置,因为这一般查看具体条件都是在这里 。下图是action的Operations部分,该项是必填项: Operation details 是一个比较强的配置项,这里主要有三个知识点---Escalations、remote command 和 event acknowledged,其中Escalations、remote command比较重要 。 operation details 的 step部分主要和escalations 相关,在监控场景中,如果你一天收到100+的短信告警,真有一天“狼”真来了估计你也不会注意到。有了escalations功能,可以实现如下配置(需配置多条operation): 1、在单位时间内(step duration)发送的总的通知次数(to - from +1 次),并通知到相应的组或人; 2、假如条件1中设置的是1800秒内发送1-5 次给OPS运维人员,结果运维人员在该时间段未能处理;我们就可以再增加一个Operations,指定from 5 to 10 (第5到10条告警)通知给 运维经理 ;我们还可以再增加,第11-15条给BOSS ,第16-20条告警时执行一个远程命令。 escalations部分,可以参看官方文档。第二个知识点就是Operation type部分,类型可以是send message进行通知,也可以是remote command : remote command 可以支持的操作有IPMI、Custom script、ssh、telnet、Global script (其中前两者只能在zabbix server 或 zabbix proxy上操作),该功能是相当牛B的。如,检测到一个tomcat 服务404,我们就可以利用该功能重启tomcat 服务 。 remote command部分可以查看官方页面。第三个功能主要是为有值班人员或上班时间准备的一个功能,当设置这个条件时,如果一个告警的状态被设置为ACK ,则本次告警的后续通知就会停止 。在一线运维人员接到告警信息时,在zabbix 的首页上,移到相应告警提示的部分,选择主机的ACK 部分 ,点选 NO ,会跳出一个message的窗口,在message里输入相关信息 ,如:误报、因什么什么原因在调试、已通知到相关责任人等 ,并点击Acknowledge 提交,此时的ACK 状态会变成YES 。本次告警也将停止不再进行。直到本次告警解决,下次再次出现同样告警时,该项又会重新变成ACK 。Acknowledge部分,可以参看官文页面。二、maintenance 维护在线场景中,经常会遇到这样的情况:在线产品需要进行升级或其他操作,此时又不想将监控系统的完整告警功能进行全部关闭,只临时关闭在线升级主机的告警。这就可以使用zabbix的maintenance功能。具体配置方式如下: 创建maintenance的步骤为:登录 zabbix web 页面---- Configuration-----Maintenance ----- create maintenance period ,如下图所示:第一选项卡配置的是任务名和一个大范围的时间值,其指定了维护所在的磊的时候段在什么范围。maintenance type 指定在维护期间是否仍进行数据搜集。 periods指定的时间段具体的维护时间段,和maintenace中的范围为包含关系。而period type指定了执行的类型,其类型有one time only 一次执行,也有按日、星期或月定期执行 ,如果是后三种方式,date项会变成具体的间隔、开始时间 。无论是何种类型,都有maintenance period length型 ,其指定了具体每次维护的持续时间,如2小时。hosts groups 项太多内容,就是选择某组主机或某个主机在维护期间不进行告警通知。
zabbix的告警通知非常灵活,支持的通知类型有Email、Jabber、sms、script 。其在设备需要修护时,同样可以提供同nagios 一样的设备维护期间,暂停告警的功能有,而且其相对于nagios 更加灵活。本篇就针对zabbix的告警和设备维护功能进行下说明。
首先,该操作是非常简单的。而且通过微信辅助邮件报警是一个非常好的选择,现在微信这么普及而且免费。短信报警也是非常好的,只不过都是双刃剑,如果晚上出现网络波动发送报警,那么这个是很头疼的,严重影响睡眠。 下边简单说下zabbix实现微信报警的步骤。
1,申请一个微信企业号。
申请的时候可以自己填写一个XXX工作室之类的名字,这个不影响。具体不做详细阐述,可以参考说明去申请和设置。我这里创建了两个账号,一个manager01和manager02
2,zabbix server端进行shell脚本设置,这里我们操作的是weixin.sh。
/usr/local/zabbix/alertscripts[root@21yunwei alertscripts]# vim weixin.sh #!/bin/bash CropID='XXXXXXXX'Secret='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'GURL=";amp;corpsecret=$Secret"Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}') PURL="" function body() { local int AppID=1 local UserID=$1 local PartyID=2 local Msg=$(echo "$@" | cut -d" " -f3-) printf '{\n' printf '\t"touser": "'"$UserID"\"",\n" printf '\t"toparty": "'"$PartyID"\"",\n" printf '\t"msgtype": "text",\n' printf '\t"agentid": "'" $AppID "\"",\n" printf '\t"text": {\n' printf '\t\t"content": "'"$Msg"\""\n" printf '\t},\n' printf '\t"safe":"0"\n' printf '}\n'}/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
chmod +x weixin.sh
脚本是否正常,我们可以先自己执行测试。比如执行:
sh weixin.sh manager01 testsub testcomtent 看下是否微信可以接收到消息,接收到说明成功,如果接受失败,那么设置有问题,需简单之前的步骤是否都操作对了。
3,创建报警媒介、action和设置报警接收
创建报警媒介,这里相信大家都不陌生。我这里创建的情况是:
创建action:报警步骤这里不详细说了,我只是写一点微信报警的内容,其他的都一样。创建action的步骤可以参考《zabbix 如何通过action进行报警配置》
\n报警问题:{TRIGGER.NAME}\n报警主机:{HOSTNAME}\n报警时间:{EVENT.TIME}\n报警状态:{TRIGGER.STATUS}\n报警级别:{TRIGGER.SEVERITY}
加行\n是为了换行。
好了,设置下微信报警接收人员:
保存后测试下效果。
比如我们useradd -M test123,添加以后就可以收到微信报警了。
发表评论
暂时没有评论,来抢沙发吧~