Zabbix 可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用 zabbix 结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理。
准备工作
- 企业微信 (拥有管理员后台)
- 有创建的部门,部门内有人员
需要的参数
CorpID
和Secret
、AgentId
- 部门的 ID
企业微信参数获取步骤
企业微信后台,点击企业应用 --> 添加应用
创建应用
创建完成后记录下 AgentID
及 Secret
在我的企业
→企业信息
里获取 CorpID
在通讯录--> 部门那里获取部门的 ID
脚本获取
- 一般安装好 zabbix 之后的脚本都存放在
/usr/lib/zabbix/alertscripts
里面,具体的路径可以使用下面的命令查看
- $ grep -i alertscripts /etc/zabbix/zabbix_server.conf
- 切换到脚本的目录里面,运行如下的命令:
- $ cd /usr/lib/zabbix/alertscripts
- $ sudo wget https://raw.githubusercontent.com/OneOaaS/weixin-alert/master/weixin_linux_amd64_toparty
- $ sudo mv weixin_linux_amd64_toparty weixin
- $ sudo chmod 755 weixin
- $ sudo chown zabbix:zabbix weixin
- 脚本使用方式:
- $ /usr/lib/zabbix/alertscripts/weixin --help
- Usage of ./weixin:
- -agentid string
- agentid
- -author string
- http://www.oneoaas.com
- -corpid string
- corpid
- -corpsecret string
- corpsecret
- -msg string
- Send Message
- -toparty string
- which toparty to send msg
- -totag string
- which totag to send msg
- -user string
- which user to send msg
toparty 后面跟的就是部门的 id
- 脚本测试
- $ /usr/lib/zabbix/alertscripts/weixin --corpid=xxxx --corpsecret=xxxxx --msg="您好</br> 告警测试" --toparty=2 --agentid=xxx
返回结果
- {"errcode":0,"errmsg":"ok","invaliduser":""}
企业微信端收到消息
zabbix 配置步骤
- 创建报警媒介
Administration --> Media types --> Create media type
创建一个名为 weixin 的 Media,参数如下填充完整
说明:
--corpid=我们企业里面的 id
--corpsecret=我们 Secret 里面的 id
--agentid=Agentld ID
--toparty={ALERT.SENDTO},发送给谁,创建动作时提供
--msg={ALERT.MESSAGE},发送的信息,由触发器提供
- 添加动作
Configuration --> Actions -->Create action
- 配置内容如下
为 zabbix 中的用户关联这个 Media
Administration --> Users --> 选择 admin 吧就 --> Media --> add
sendto 填写的是部门的 id
验证
修改 Trigger,制造一个报警,便获得了消息:
大功告成!
本文作者为 olei,转载请注明。