现在人们都离不开微信,用微信来进行报警的话,时效性会更高一些,不会出现发邮件报警但是没看到的尴尬情况。故而本节说一下如何实现微信报警:
需要注意的是我们要实现在微信报警的功能,需要我们先注册一个企业微信,企业微信是可以个人免费注册的,然后在企业微信添加相关人员,而后关注你的企业微信,之后就可以在微信中看到报警提示了。
以上即实现该功能的大致思路,此报警和上一小节中的邮件报警操作类似,不同的是使用的报警工具不同,那么就意味着我们的脚本配置信息也有不同,具体来看实现过程吧:
PS:在企业微信中一共需要获取三个值:
企业ID、agentid、Secret、成员账号
我们接下来看看这些信息如何获取
https://work.weixin.qq.com
在这里进行申请即可,这里就不操作了,挺简单的,注册完毕之后的界面如下:
2、创建应用,获取Secret参数
应用管理 --> 创建应用
next:
上图中的红色框内的信息都属于必填项,需要将信息设置好;
将信息设置好之后,点击“创建应用”,如下图:
而后跳转到如下界面,我们需要在如下界面获取agentid和secret的值:
我们将获取到的参数信息,记录下来;
3、获取企业ID
我的企业 --> 企业信息
在最下面可以看到我们的企业ID,将此信息记录下来;
4、获取欲接受报警提醒成员的账号名称
通信录
可以在这里添加成员,以及查看某一个成员的账号,点击对应的名字,进入如下界面:
往下面划,可以看到一个二维码,用微信扫描这个二维码即可关注你的企业微信:
这个时候你的微信账号就可以接受企业微信的信息了;
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进行注册了,这些就简单了,总体流程和上一小节中的邮件报警一样;
当然了,别忘记最后给这个脚本添加可执行权限:
<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” 这个禁用,之后界面如下:
7、添加报警媒介
记忆好的同学可以发现,我们在实现邮件报警的过程中添加了三个脚本参数,为什么这里只添加了两个呢?
那是因为发送邮件的时候我们需要配置:收件人,邮件主题,邮件内容;
而我们的微信报警只需要配置两个参数:收件人,报警内容;
8、给用户配置报警媒介
管理 --> 用户
PS:要记得将上一小节中配置的报警媒介类型,也就是发送邮件进行删除;之后再进行新的报警媒介类型添加
而后点击更新按钮,最后界面如下:
9、设置触发器的动作
配置 --> 动作
PS:将上小节中的 “send_email_qq” 进行禁用,而后再次添加:
next:
next:
next:
next:
而后点击 “添加” 按钮,最后界面如下:
10、验证一下准确性
停止我们的测试机 192.168.20.129 的8080端口
而后看一下仪表板:
由上图可见,已经监测到了端口被关闭,这个时候我们看下个人微信,是否收到了提示:
微信已经收到了报警,之后我们将 192.168.20.129 的8080端口再次运行起来:
由上图可见,我们微信也进行了恢复提示,如下图:
好的,本节内容到此为止,关于报警的内容还有两小节:
1、报警内容自定义和报警抑制
2、使用钉钉进行报警
继续加油~~~
閱讀更多 花芯 的文章