1、注册微信企业号

1)注册微信企业号

https://work.weixin.qq.com

2)通讯录添加用户

3)记住部门id

4)创建应用


5)点击刚创建的应用,记住Agentld和secret

6)微信关注这个企业号,获取更多尺寸关注


点击关注

7)测试向关注的用户发送信息


微信能够正常接收到消息

8)获取CorpID

2、python脚本

  • 获取脚本文件目录位置
#grep alertscripts /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
  • 安装simplejson
wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz
tar zxvf simplejson-3.8..tar.gz && cd simplejson-3.8.
python setup.py build
python setup.py install
  • python脚本
#!/usr/bin/python
#_*_coding:utf- _*_
import urllib,urllib2
import json
import sys
import simplejson
reload(sys)
sys.setdefaultencoding('utf-8')
def gettoken(corpid,corpsecret):
gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
print gettoken_url
try:
token_file = urllib2.urlopen(gettoken_url)
except urllib2.HTTPError as e:
print e.code
print e.read().decode("utf8")
sys.exit()
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
token_json.keys()
token = token_json['access_token']
return token
def senddata(access_token,user,subject,content):
send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
send_values = {
"touser":user, #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
"toparty":"", #企业号中的部门id。
"msgtype":"text", #消息类型。
"agentid":"", #企业号中的应用id。
"text":{
"content":subject + '\n' + content
},
"safe":""
}
# send_data = json.dumps(send_values, ensure_ascii=False)
send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
send_request = urllib2.Request(send_url, send_data)
response = json.loads(urllib2.urlopen(send_request).read())
print str(response)
if __name__ == '__main__':
user = str(sys.argv[]) #zabbix传过来的第一个参数
subject = str(sys.argv[]) #zabbix传过来的第二个参数
content = str(sys.argv[]) #zabbix传过来的第三个参数
corpid = '' #CorpID是企业号的标识
corpsecret = '' #corpsecretSecret是管理组凭证密钥
accesstoken = gettoken(corpid,corpsecret)
senddata(accesstoken,user,subject,content)
  • 测试python脚本
# python wechat.py
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wwa6962ed44a38221b&corpsecret=qpyrPT4E15FhyvUujJcuyhGU5CczWrAeZAn95lorCNU
{u'invaliduser': u'', u'errcode': , u'errmsg': u'ok'}

验证微信接收到的消息

  • 脚本放到目录和赋予x权限
cd /usr/lib/zabbix/alertscripts/
chmod +x wechat.py
chown -R zabbix.zabbix wechat.py

3、zabbix配置微信报警

1)创建报警媒介

脚本参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

2)用户添加报警媒介

4)定义动作

  • 什么条件会触发动作,这里和zabbix3.0版本不同
  • 恢复操作:定义标题,内容,发送给指定的用户,通过微信发送
默认标题:{TRIGGER.STATUS}: {TRIGGER.NAME}
消息内容
告警主机: {HOST.NAME}
告警 IP: {HOST.IP}
告警时间: {EVENT.DATE}-{EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
事件 ID: {EVENT.ID}


  • 恢复操作
默认标题:{TRIGGER.STATUS}: {TRIGGER.NAME}
消息内容
告警主机: {HOST.NAME}
告警 IP: {HOST.IP}
告警时间: {EVENT.DATE}-{EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
事件 ID: {EVENT.ID}

  • 测试报警:需要提前指定好触发器
    发生问题

    问题恢复

(五)zabbix微信报警的更多相关文章

  1. Zabbix微信报警脚本及写触发记录

    一.Zabbix微信报警 默认路径:/usr/lib/zabbix/scripts/weixin.py #!/usr/bin/python # -*- coding: utf-8 -*- import ...

  2. Zabbix 微信报警Python版(带监控项波动图片)

    #!/usr/bin/python # -*- coding: UTF- -*- #Function: 微信报警python版(带波动图) #Environment: python import ur ...

  3. Zabbix微信报警触发

    (1)         企业应用-创建应用 1.除了对个人添加微信报警之外,还可以添加不同管理组,接受同一个应用推送的消息, 成员账号,组织部门ID,应用Agent ID,CorpID和Secret, ...

  4. 通过脚本发送zabbix微信报警

    实现zabbix通过微信报警的方式也是通过脚本来实现,与邮件报警不同的是,脚本调用的微信的相关接口的获取相对复杂一点 1.申请一个微信公众号(企业号) 申请方法不多说,如果已申请请忽略 2.在微信企业 ...

  5. zabbix 微信报警

    http://blog.csdn.net/wh211212/article/details/52735236 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越 ...

  6. filebeat+logstash通过zabbix微信报警

    一.安装软件: 1.在要收集日志的机器上安装filebeat: 1).下载安装: cd /usr/local/src wget https://artifacts.elastic.co/downloa ...

  7. zabbix 微信报警脚本

    不知道是什么原因直接用Python脚本zabbix无法执行脚本,需要一个shell来启动 #! /bin/bash userid=$ content=$ python /data/zabbix/ale ...

  8. zabbix微信报警

    [root@LinuxS04 jiaoben]# ./weixin 联系人 baojing baojingok[root@LinuxS04 jiaoben]# pwd/usr/local/zabbix ...

  9. zabbix微信报警信息优化模板

    --------------------------------告警模板1-------------------------------------- 默认标题 告警项目: {TRIGGER.NAME ...

随机推荐

  1. CentOS 部署 MongoDB(新)

    step1.进入到/opt/下执行 下载 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.5.tgz ste ...

  2. kindeditor 在JSP 中上传文件的配置

    1.将kindeditor,jsp,lib目录下的jar文件放到工程的lib目录下 2.将admin-login.jsp,upload_json.jsp,复制到admin的files目录下 3.复制以 ...

  3. @KafkaListener和@KafkaListeners的使用

    2. consumer 使用了@KafkaListener注解. 2.1. pom.xml 引入以下依赖 <dependency> <groupId>org.springfra ...

  4. Redis 学习笔记(篇五):对象(RedisObject)

    Redis-对象 在以前的文章中,我们介绍了 Redis 用到的主要数据结构,比如简单动态字符串.双端链表.字典.压缩列表.整数集合. 然而 Redis 并没有直接使用这些数据结构来实现键值对的数据库 ...

  5. java微信token校验

    1.微信验证接口 package com.park.utils.wechatUtil; import org.springframework.web.bind.annotation.RequestMa ...

  6. 用JavaScript写一个简单的倒计时,可以应用在发送短信验证码的“59秒后重新发送验证短信”

    倒计时——从10倒数到0,点击按钮会还原倒计时 <body> <!-- 将textvalue值设为10,从10倒数 --> <input type="text& ...

  7. python 安装virtualenv和wxPython

    有人说 Virtualenv.Fabric 和 PIP 是 Pythoneer 的三大神器 上一节说过了怎么安装PIP,下面继续安装virtualenv 安装wxPython时比较简单 sudo pi ...

  8. Python第三方库资源

    [转载]Python第三方库资源   转自:https://weibo.com/ttarticle/p/show?id=2309404129469920071093 参考:https://github ...

  9. gitlab安装指南(gitlab-ce-9.4.3-ce.0.el7.x86_64 centos7)

    1,安装gitlab wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-9.4.3-ce.0.el7. ...

  10. MySQL 聚合函数与count()函数

    一.MySQL中的聚合函数 MySQL 5.7文档的章节:12.20.1 Aggregate (GROUP BY) Function “聚合/组合”函数(group (aggregate) funct ...