申请企微号
首先,如若使用微信告警,你必须需要一个企业微信号,企业微信申请地址:https://work.weixin.qq.com/
进入首页的立即注册,填写具体信息后即可完成申请,具体步骤,建议百度解决,这里不再赘述。。
创建应用
申请完成企业微信并登录后,你需要一个应用来为你推送Zabbix的告警信息,具体步骤为:
应用管理-->应用-->创建应用:
进入创建应用页后,你需要填入具体的信息:
名称 | 作用 |
---|---|
头像 | 也就是APP的头像咯~ |
名称 | 也就是APP的名字咯~ |
介绍 | 也就是APP的介绍咯~ |
可见范围 | 也就是可以接受到告警信息的成员咯,可以是组或者某个用户~ |
应用创建完成之后,我们需要得知AgentId和Secret,如下图:
编写Python代码
完成企微和APP的创建后,就需要编写脚本了,这里选择使用Python脚本:
Python [root@Monitor1921683204 ~]# vim /usr/local/zabbix/share/zabbix/alertscripts/wechat.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
# Auther: Sunday
# Date: 2019-10-6
# Mail: 2695476342@qq.com
#导入需要的模块
import requests
import sys
import os
import json
import logging
#导出日志
logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
datefmt = '%a, %d %b %Y %H:%M:%S',
filename = os.path.join('/tmp','weixin.log'),
filemode = 'a')
#配置信息
corpid='' #企业ID
appsecret='' #Secret
agentid= #Agentid
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
touser=sys.argv[1]
subject=sys.argv[2]
#toparty='3|4|5|6'
message=sys.argv[2] + "\n\n" +sys.argv[3]
params={
"touser": touser,
# "toparty": toparty,
"msgtype": "text",
"agentid": agentid,
"text": {
"content": message
},
"safe":0
}
req=requests.post(msgsend_url, data=json.dumps(params))
logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)
填写配置信息
需要注意的就是,上方在代码段里面标红的三个地方:corpid、appsecret和Secret,其中,AgentId和Secret我们在上方已经提到,在app里面可以直接看到,那么corpid(企业ID)需要我们在:我的企业-->企业信息下方的企业ID
中获得,我们依次写入,如:
测试代码
赋予执行权限
[root@Monitor1921683204 ~]# chmod +x /usr/local/zabbix/share/zabbix/alertscripts/wechat.py
测试发送信息
[root@Monitor1921683204 ~]# python /usr/local/zabbix/share/zabbix/alertscripts/wechat.py YaoDalao "我是标题丫" "我是信息正文丫"
其中,YaoDalao是企业微信的账号,如果遇到报错:
Traceback (most recent call last):
File "wechat.py", line 5, in <module>
import requests
ImportError: No module named requests
这是因为没有模块:requests导致的,需要PIP安装一下,就可以了
[root@Monitor1921683204 ~]# pip install requests
这里给出一份PIP安装教程:
PIP安装教程
1.使用脚本安装:
[root@Monitor1921683204 ~]# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
[root@Monitor1921683204 ~]# python get-pip.py #会看到Successfully.....即可
2.使用yum安装:
[root@Monitor1921683204 ~]# yum -y install epel-release
[root@Monitor1921683204 ~]# yum -y install python-pip
3.更新pip
[root@Monitor1921683204 ~]# pip install --upgrade pip
Zabbix配置
添加媒介
接下来,就是配置Zabbix Web端的配置了,步骤为:
配置-->报警媒介类型-->创建媒介类型:
类型为脚本,媒介的名字无所谓,脚本名称为所写的脚本的名称 wechat.py
脚本的三个参数都是zabbix内置变量,分别为:报警收件人:{ALERT.SENDTO}、报警标题:{ALERT.SUBJECT}、报警内容:{ALERT.MESSAGE}
Web端测试
收件人填写您的企业微信账号
用户配置
用户的报警媒介与其他报警方式一样咯~添加Wechat即可
很全,棒棒的
o(////▽////)q