zabbix监控-第三章-第二节 实现微信报警

现在人们都离不开微信,用微信来进行报警的话,时效性会更高一些,不会出现发邮件报警但是没看到的尴尬情况。故而本节说一下如何实现微信报警:

zabbix监控-第三章-第二节 实现微信报警

需要注意的是我们要实现在微信报警的功能,需要我们先注册一个企业微信,企业微信是可以个人免费注册的,然后在企业微信添加相关人员,而后关注你的企业微信,之后就可以在微信中看到报警提示了。

以上即实现该功能的大致思路,此报警和上一小节中的邮件报警操作类似,不同的是使用的报警工具不同,那么就意味着我们的脚本配置信息也有不同,具体来看实现过程吧:

PS:在企业微信中一共需要获取三个值:

企业ID、agentid、Secret、成员账号

我们接下来看看这些信息如何获取


https://work.weixin.qq.com

在这里进行申请即可,这里就不操作了,挺简单的,注册完毕之后的界面如下:

zabbix监控-第三章-第二节 实现微信报警

2、创建应用,获取Secret参数

应用管理 --> 创建应用

zabbix监控-第三章-第二节 实现微信报警

next:

zabbix监控-第三章-第二节 实现微信报警

上图中的红色框内的信息都属于必填项,需要将信息设置好;

将信息设置好之后,点击“创建应用”,如下图:

zabbix监控-第三章-第二节 实现微信报警

而后跳转到如下界面,我们需要在如下界面获取agentid和secret的值:

zabbix监控-第三章-第二节 实现微信报警

我们将获取到的参数信息,记录下来;

3、获取企业ID

我的企业 --> 企业信息

zabbix监控-第三章-第二节 实现微信报警

在最下面可以看到我们的企业ID,将此信息记录下来;

zabbix监控-第三章-第二节 实现微信报警

4、获取欲接受报警提醒成员的账号名称

通信录

zabbix监控-第三章-第二节 实现微信报警

zabbix监控-第三章-第二节 实现微信报警

可以在这里添加成员,以及查看某一个成员的账号,点击对应的名字,进入如下界面:

zabbix监控-第三章-第二节 实现微信报警

zabbix监控-第三章-第二节 实现微信报警

往下面划,可以看到一个二维码,用微信扫描这个二维码即可关注你的企业微信:

zabbix监控-第三章-第二节 实现微信报警

这个时候你的微信账号就可以接受企业微信的信息了;

6、zabbix_server端新增python脚本

在以下脚本中需要更改三个参数的值:

agentid:你新建应用完毕之后弹出框中显示的agentid

corpid:你的企业ID

corpsecret:你新建应用完毕之后弹出框中显示的Secret

<code>[root@bogon ~]# cd /home/zabbix/share/zabbix/alertscripts
[root@bogon alertscripts]# touch weixin.py
[root@bogon alertscripts]# vim weixin.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
import sys
import urllib,urllib2

agentid = 'XXXXXXXX'
corpid = 'XXXXXXXXXXXXXXXXXX'
corpsecret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

#get tocken
gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
token_file = urllib2.urlopen(gettoken_url)
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
my_token = token_json['access_token']

#send wechart
touser=sys.argv[1] #many user: 'zhangsan|wangwu'
content=sys.argv[2] #content
post_content = {
"touser":touser,
"agentid":agentid,
"msgtype": "text",
"text":{
"content":content,
}
}
json_content = json.dumps(post_content)
url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + my_token
response = urllib2.urlopen(url,json_content)
print(response.read().decode('utf-8'))/<code>

保存退出

7、测试一下

需要配置上最上面说的获取到的企业微信成员的账号名

<code>[root@bogon alertscripts]# python weixin.py '成员账户名' '微信报警测试'/<code>

结果如下:

zabbix监控-第三章-第二节 实现微信报警

zabbix监控-第三章-第二节 实现微信报警

微信报警实现了,接下来就是在zabbix进行注册了,这些就简单了,总体流程和上一小节中的邮件报警一样;

当然了,别忘记最后给这个脚本添加可执行权限:

<code>[root@bogon alertscripts]# chmod +x weixin.py 
[root@bogon alertscripts]# ll
总用量 8
-rwxr-xr-x. 1 root root 656 2月 23 02:01 email_qq.py
-rwxr-xr-x. 1 root root 944 2月 23 03:33 weixin.py
[root@bogon alertscripts]# /<code>

8、zabbix仪表板界面

PS:以下界面我会省略解释的过程,因为和上一小节的内容类似,没看明白的同学可以返回看一下上一小节;

点击 “管理” --> “报警媒介类型”

将我们上一节配置的 “python_send_email_qq” 这个禁用,之后界面如下:

zabbix监控-第三章-第二节 实现微信报警

7、添加报警媒介

zabbix监控-第三章-第二节 实现微信报警

记忆好的同学可以发现,我们在实现邮件报警的过程中添加了三个脚本参数,为什么这里只添加了两个呢?

那是因为发送邮件的时候我们需要配置:收件人,邮件主题,邮件内容;

而我们的微信报警只需要配置两个参数:收件人,报警内容;

8、给用户配置报警媒介

管理 --> 用户

PS:要记得将上一小节中配置的报警媒介类型,也就是发送邮件进行删除;之后再进行新的报警媒介类型添加

zabbix监控-第三章-第二节 实现微信报警

而后点击更新按钮,最后界面如下:

zabbix监控-第三章-第二节 实现微信报警

9、设置触发器的动作

配置 --> 动作

PS:将上小节中的 “send_email_qq” 进行禁用,而后再次添加:

zabbix监控-第三章-第二节 实现微信报警

next:

zabbix监控-第三章-第二节 实现微信报警

next:

zabbix监控-第三章-第二节 实现微信报警

next:

zabbix监控-第三章-第二节 实现微信报警

next:

zabbix监控-第三章-第二节 实现微信报警

而后点击 “添加” 按钮,最后界面如下:

zabbix监控-第三章-第二节 实现微信报警

10、验证一下准确性

停止我们的测试机 192.168.20.129 的8080端口

而后看一下仪表板:

zabbix监控-第三章-第二节 实现微信报警

由上图可见,已经监测到了端口被关闭,这个时候我们看下个人微信,是否收到了提示:

zabbix监控-第三章-第二节 实现微信报警

微信已经收到了报警,之后我们将 192.168.20.129 的8080端口再次运行起来:

zabbix监控-第三章-第二节 实现微信报警

由上图可见,我们微信也进行了恢复提示,如下图:

zabbix监控-第三章-第二节 实现微信报警

好的,本节内容到此为止,关于报警的内容还有两小节:

1、报警内容自定义和报警抑制

2、使用钉钉进行报警

继续加油~~~


分享到:


相關文章: