1.微信警报:
除了邮政警报和钉钉警报外,Zabbix还可以通过微信警报或只要有API就能想到的警报方法来实施zabbix。越灵活的警报机制,就越能及时有效地将警报信息推送到负责人手中,从而及时处理问题。
在看这篇文章之前,最好看我的前一篇未能报警。因为在这篇文章中,媒体的设置、动作的设置等介绍比较简单,主要是实现功能,在前面的文章中,每个参数都做了详细的介绍。
Zabbix 5系列指甲实时报警
1.1注册微信企业号:
企业号码注册地址:填写企业注册信息,个人也可以申请,无需认证即可进行预警测试。
申请企业微信后,可以在通讯录中添加部门,可以运营运营商,如果是测试的话,可以直接发给管理员。
1.2创建应用程序:
单击应用程序管理-要创建应用程序,请单击下面-上传应用程序徽标-输入应用程序名称-选择可见范围(整个部门或指定人员),创建后:
1.3微信接口调试:
1.4配置微信脚本:
创建脚本:
[root @ localhostsrc]# cat/usr/lib/zabbix/alert scripts/wechateof
#!/usr/bin
# _ * _ coding 3360 utf-8 _ * _
Import requests、sys和json
Import urllib3
Urllib3.disable_warnings()
Reload(sys)
(' UTF-8 ')
Def gettokenfromserver (corpid、secret) :
URL='
Data={
Corpid'Corpid,
Corpsecret'Secret
}
R=reque (URL=URL,params=data,verify=false)
Prin())
If r.json()['errcode']!=0:
Return False
Else:
令牌=r.json () ['access _ token']
file=open('/TM;' w ')
)。
()
Return Token
Def sendmessage (user、agentid、subject、content) :
tree :
file=open('/TM;' r ')
令牌=j(文件)['access _ token']
()
Except:
令牌=gettokenfromserver (corpid、secret)
N=0
URL='% Token
Data={
Touser' User,#指定用户通知,在web上绑定用户的帐户
#'totag' Tagid,#为企业编号指定标签id以大量使用
Toparty' Partyid,#指定企业编号的部门id。
Msgtype' 'text '#消息类型。
#34;agentid": Agentid, # 企业号中的应用id。 "text": { "content": Subject + '\n' + Content }, "safe": "0" } r = reque(url=Url,data=j(Data),verify=False) while r.json()['errcode'] != 0 and n < 4: n+=1 Token = GetTokenFromServer(Corpid, Secret) if Token: Url = "; % Token r = reque(url=Url,data=j(Data),verify=False) prin()) return r.json() if __name__ == '__main__': User = [1] Subject = str([2]) Content = str([3]) # CorpID 企业号的标识 Corpid = "ww5922d1****" # Secret 应用凭证密钥,在应用管理-点击机器人-查看secret可以得到 Secret = "PfrnUym8qOw5s64*" # 通讯录标签ID #Tagid = "1" # 应用ID Agentid = "1000008" # 部门ID Partyid = "1" Status = SendMessage(User,Agentid,Subject,Content) print Status ### 安装模块: [root@localhost src]# yum install python-pip -y [root@localhost src]# pip install requests # 测试脚本: [root@node1 alertscripts]# ./wechat lutixia test "nginx down" {u'invalidparty': u'1', u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}1.5 web端创建报警媒介:
1.6 用户绑定媒介:
1.7 配置动作:
1.8 测试告警:
### 在122服务器,关闭redis服务:
[root@localhost ~]# systemctl stop redis
### 在122服务器,开启redis服务:
[root@localhost ~]# systemctl start redis
1.9 发送部门/组告警:
上面的告警是针对某人告警,在用户绑定媒介那里send to user这个user是通讯录中用户的账号(唯一标识,不是姓名)。如果是想对某个部门告警,那么这个user写啥就无所谓了,只需要修改脚本,把touser改为toparty,然后在脚本中指定Partyid的值即可。
#!/usr/bin
#_*_coding:utf-8 _*_
。。。
# "touser": User, # 把发送用户注释掉
"toparty": Partyid, # 把发送部门打开
"msgtype": "text",
"agentid": Agentid,
。。。
# 通讯录标签ID
#Tagid = "1"
# 应用ID
Agentid = "1000008"
# 指定部门ID(在通讯录中可以看到)
Partyid = "2"
。。。
1.10 测试告警:
### 在122服务器,关闭redis服务:
[root@localhost ~]# systemctl stop redis
以上就是微信告警的配置,实验起来不难,有问题可以评论区交流。
欢迎点赞,收藏,你的喜欢就是我原创的动力,zabbix 5系列将会持续更新。