一、注册企业微信及创建应用
- 企业 -> 微工作台里可以直接微信关注,无需要下载企业微信
- 通讯录里的账号在发微信脚本中要用到
- 应用与小程序可创建应用
1、先自己注册一个企业微信号,个人也可以进行注册,绑定一下微信就好了
企业微信注册
2、可以登录企业微信,在(我的企业–>微信插件)里扫码关注企业微信,这样在微信上也可以收到企业微信的消息。
3、查看账号
4、创建一个应用
设置应用名称和应用人员,然后创建
查看应用信息
二、编写发送微信的python脚本
vim /usr/local/zabbix/alertscripts/zabbix_wx.py
脚本里填自己的企业id 应用id和secret
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
import sys
import urllib,urllib2
#应用的id
agentid = 'xxx'
#应用的secret
corpsecret = 'xxx'
#企业的id
corpid = 'xxx'
#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'))
增加执行权限
chmod +x /usr/local/zabbix/alertscripts/zabbix_wx.py
获取接收人的账号,在通讯录里可以看到
然后使用脚本测试一下
/usr/local/zabbix/alertscripts/zabbix_wx.py YangZePeng "weixintest"
可以收到这个应用发送来的信息
三、zabbix配置
1、配置告警媒介
名称为 python wechat
2、为admin用户配置这个告警媒介
类型选择上面的创建的告警媒介
收件人选择企业微信中看到的收件人的账号,这个是{ALERT.SENNDTO},会传给脚本做参数
3、创建动作
可以使用之前的邮件告警的动作克隆一下再改
名称改为send wechat by python 。触发器改为检测80端口的
操作改为通过python wechat,其他的不变
4、触发一下告警
我这里检查的80端口,将nginx关闭
过一会触发动作后,能收到告警
这里是使用应用来发送给用户,以后如果需要发送给群组再写下。