一、微信企业号申请
地址: http://work.weixin.qq.com/
第一步注册
因为我们没有企业,所以我们选择组织。
提示:这里简单的说一下,微信企业号和微信公众号是不一样的!
继续下一步
提示一下: 因为这步需要添加管理员的身份证号以及手机号,我这里就不截图了
二、配置微信企业号
当设置完微信号的信息之后,请继续跟我操作。中间可能步骤不是特别全,就是设置企业的信息
我们需要记录CorpID
我们点击通讯录,添加一个组,或者添加一个成员。成员可以使用微信邀请或者短信邀请,我扫码添加自己的时候微信这个坑比给我下载一个企业微信。很尴尬,微信变了。不单纯了
添加完管理员需要记录管理员账号
我们添加成员需要记录成员ID
点进去
记录用户账号
点击企业应用,新增应用 新版本应用位置有所更新,也是添加应用
设置应用
同样也可以在微信插件里面二维码邀请关注加入通讯录
创建完成后
需要记录Agentld、Secret
以前的应用ID和组ID已经被取消
准备事项:
微信企业号
企业号已经被部门成员关注
企业号有一个可以发送消息的应用,一个授权管理员,可以使用应用给成员发送消息
准备事项:
微信企业号
企业号已经被部门成员关注
企业号有一个可以发送消息的应用,一个授权管理员,可以使用应用给成员发送消息
需要得到的信息
- 成员账号
- 组织部门ID
- 应用ID
- CorpID和Secret
三、修改Zabbix.conf
- [root@abcdocker ~]# grep alertscripts /usr/local/zabbix/etc/zabbix_agentd.conf
- AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
- 我们设置zabbix默认脚本路径,这样在web端就可以获取到脚本
四、设置python脚本
#安装simplejson
- wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz
- tar zxvf simplejson-3.8.2.tar.gz && cd simplejson-3.8.2
- python setup.py build
- python setup.py install
下载wechat.py脚本
- git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git
- cp Zabbix-Alert-WeChat/wechat.py/usr/local/zabbix/share/zabbix/alertscripts
- cd /usr/local/zabbix/share/zabbix/alertscripts
- chmod +x wechat.py && chown zabbix:zabbix wechat.py
提示:这里需要修改py脚本
看注释,这就不解释了
[root@abcdocker ~]# cat/usr/local/zabbix/share/zabbix/alertscripts/wechat.py
#!/usr/bin/python2.7
#_*_coding:utf-8 _*_
import requests,sys,json
import urllib3
urllib3.disable_warnings()
reload(sys)
sys.setdefaultencoding('utf-8')
def GetToken(Corpid,Secret):
Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
Data = {
"corpid":Corpid,
"corpsecret":Secret
}
r = requests.get(url=Url,params=Data,verify=False)
Token = r.json()['access_token']
return Token
def SendMessage(Token,User,Agentid,Subject,Content):
Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
Data = {
"touser": User, # 企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
#"totag": Tagid, # 企业号中的标签id,群发使用(推荐)
#"toparty": Partyid # 企业号中的部门id,群发时使用。
"msgtype": "text", # 消息类型。
"agentid": Agentid, # 企业号中的应用id。
"text": {
"content": Subject + '\n' + Content
},
"safe": "0"
}
r = requests.post(url=Url,data=json.dumps(Data),verify=False)
return r.text
if __name__ == '__main__':
User = sys.argv[1] # zabbix传过来的第一个参数
Subject = sys.argv[2] # zabbix传过来的第二个参数
Content = sys.argv[3] # zabbix传过来的第三个参数
Corpid = "wx0f0c" # CorpID是企业号的标识
Secret = "cecnGXBY" # Secret是管理组凭证密钥
#Tagid = "1" # 通讯录标签ID
Agentid = "1" # 应用ID
#Partyid = "1" # 部门ID
Token = GetToken(Corpid, Secret)
Status = SendMessage(Token,User,Agentid,Subject,Content)
print Status
执行py脚本,进行测试
- [root@abcdocker alertscripts]# ./wechat.py www www 123
- https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wx6dadb9cc293b793e&corpsecret=JjesoeixbFt6dDur7_eXtamVBx2SjPBuXMQ0Jte3YLkz8l-VBnr0JvU12P0kvpGJ
- {u'invaliduser': u'all user invalid', u'errcode': 0, u'errmsg': u'ok'}
五、zabbix web 界面配置
创建报警媒介
创建报警用户
这里填写运维组ID
设置报警动作
报警消息设置如下:
1.hostname: ({HOST.NAME}
2.Time:{EVENT.DATE} {EVENT.TIME}
3.level:{TRIGGER.SEVERITY}
4.message:{TRIGGER.NAME}
5.event:{ITEM.NAME}:{ITEM.VALUE}
6.
url:www.abcdocker.com
恢复报警如下:
1.hostname: ({HOST.NAME}
2.Time:{EVENT.DATE} {EVENT.TIME}
3.level:{TRIGGER.SEVERITY}
4.message:{TRIGGER.NAME}
5.event:{ITEM.NAME}:{ITEM.VALUE}
6.
7.url:www.abcdocker.com
报警配置如下
恢复配置如下
提示: 不要忘记先点小的add-->小的update-->Update