当前位置:首页 期刊杂志

基于Zabbix的告警推送技术

时间:2024-05-04

文/杨澎涛 范永合 孙友凯 董涛

1 引言

随着云计算服务的不断普及,资源中心的IT资源高度集中,导致资源中心设备多,种类复杂。各类故障频发,而运维管理人员却在不断精简,管理运维压力越来越大。同时随着服务架构越来越复杂,服务间的关联性日趋紧密。对基础服务监控高要求的同时,告警推送的及时性,准确性也有了更高的要求。经常是发生故障导致应用中断后,由用户进行故障反馈,运维人员无法第一时间发现故障。如何在发生故障时能第一时间通知给相关运维人员就变得越来越重要。目前主要的告警推送还是采用传统的邮件,短信进行。但是随着微信、QQ、钉钉等社交工具的不断发展应用,越来越多的人不太关注邮件和短信了,传统的告警推送方式已经无法满足业务需求,导致错过了解决问题最佳时机,对项目运维造成了很大困扰。这就需要把新兴、主流的社交工具纳入到告警推送流程中,让运维管理人员能通过不同渠道及时获取故障信息。目前,一些商业化运维软件提供了各种接口可以接入不同的社交工具进行告警推送,但是这些商业化软件价格高且定制灵活性较低。经过对当前主流的开源软件的对比分析,发现Zabbix开源监控系统从监控,触发到告警具有完善的一体化流程,提供各种告警推送的接口,而且该开源系统具有良好的社区支持和插件较多,有良好的开发文档及中文支持,因此采用Zabbix开源系统来进行资源的监控及告警推送的研究。

2 Zabbix体系自带的告警推送方式

在Zabbix4.0版本中,主要提供了3种常用的告警推送模式。

2.1 电子邮件告警推送

如图1所示,通过界面配置好邮件发送的SMTP服务器、邮箱名等信息,当故障产生时,通过该邮箱把故障信息发送给相关运维人员。

图1:邮件告警配置

图2:短信告警配置

2.2 短信告警推送

这种方式需要有GSM调制解调器硬件支持,通过图2所示的界面配置好短信发送参数,等故障发生时,通过该GSM给相关的运维人员手机发送短信。

2.3 Jabber告警推送

Jabber是著名的Linux即时通讯服务服务器,它是一个自由开源软件,能让用户自己架即时通讯服务器,可以在Internet上应用,也可以在局域网中应用。Jabber最有优势的就是其通信协议,可以和多种即时通讯对接。

3 通过Zabbix集成其他告警推送方式

3.1 Zabbix集成微信告警推送

微信是目前主流的社交工具,用户面广,通过网络还免费,因此可以通过相关接口把Zabbix的告警信息推送到微信上,主要步骤如下:

(1)首先注册一个微信企业号,在企业微信号中创建一个应用为“Zabbix监控报警”,记录下AgentId、Secret及企业ID的内容

图4:微信告警媒介配置

图5:微信告警用户配置

图6:动作创建

图7:操作配置

图8:群机器配置

图9:钉钉告警媒介配置

图10:钉钉告警用户配置

AgentId:1000005

Secret:CCM41VX2y82udZK80CJt1ucxxNGF2a8hY85xdLcb

企业ID:rrraf97801cfcwwwc6

(2)在Zabbix服务器上,进入到报警目录/usr/lib/Zabbix/alertscripts/中,编写一个和微信沟通的脚本,自定义名字为alertweixin.py,把之前记录的AgentId、Secret、企业ID信息写入到脚本中。

(3)在Zabbix界面上进行配置。

第一步:创建微信报警媒介,如图4所示。

第二步:在Zabbix中添加告警用户,如图5所示。

第三步:创建报警动作及操作,如图6、图7所示。

通过以上配置流程,完成了Zabbix告警信息发送到微信的功能,这样为运维管理人员提供了一个更广的获取信息的渠道。

3.2 Zabbix集成钉钉告警推送

目前,很多企业内部禁止在电脑上使用QQ、微信等社交工具,开始转向使用钉钉交流工具,为此还研究了把Zabbix的告警信息发送到钉钉的方式,主要步骤如下:

(1)在钉钉上创建一个运维管理群,把运维管理人员都加入该群中,并在该群创建一个群机器人,如图8所示。

(2)在Zabbix服务器上,进入到报警目录/usr/lib/Zabbix/alertscripts/中,编写一个和钉钉沟通的脚本,自定义名字为alertdingding.py。

(3)在Zabbix界面上进行配置。

第一步:创建报警媒介,如图9所示。

第二步:给Zabbix里的运维用户添加报警媒介,如图10所示。

这个界面中收件人需要填写钉钉运维群组中某一个人的手机号即可。

第三步:在Zabbix界面上添加动作及操作,如图11、图12所示。

通过以上流程配置好后,就可以正式对Zabbix中的各类监控项进行监控,当发现故障后触发告警操作,把故障信息发送到钉钉群组里供运维人员及时查看接收。

4 结束语

随着资源中心资源的高度整合及应用复杂度的增加,各种类型的故障及应用瓶颈会越来越多,对故障或瓶颈的实时告警通知的需求会越来越大,通过合理有效的告警推送技术可以让运维管理人员第一时间发现故障,及时修复,提升了整个系统的运维管理能力。同时,现在的社交工具越来越多,把这些主流的社交工具纳入到告警体系中也成为了一种趋势。本文基于Zabbix架构集成多种社交工具进行的告警推送能满足运维人员的多样化需求,稳定可靠,但是面对更加复杂的应用环境及海量告警信息,需要在此基础上增加告警智能过滤功能,把真正的故障信息推送给运维人员,避免信息轰炸,实现故障信息的精准定位。

图11:动作创建界面

图12:操作创建界面

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!