zabbix企业微信报警实现
企业微信配置
# 注册
企业微信注册地址:https://work.weixin.qq.com
笔者注册的企业微信名称为 5iik
# 配置
# 在主干5iik(企业名称)下添加子部门(监控组),并将自己加入到组中;

# 依次点击 应用管理 > 创建应用,将可见范围选择 "监控组";
# 笔者创建的应用名称为 "监控示警"

# 至此,企业微信配置完毕,需要收集的信息如下:
1)成员账号

2)组织部门ID

3)Agentld和Secret

4)企业ID

zabbix服务端配置
# 安装Python模块
# pip install simplejson
# zabbix server配置
# 默认zabbix调用的脚本目录为 /usr/lib/zabbix/alertscripts
# 配置监控监本
[root@kazihuo ~]# cat /usr/lib/zabbix/alertscripts/wechat.py
#!/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":"LuoMuRui", #企业号中的用户帐号,在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 = 'ww15a76b039cce012c' #企业号标识
corpsecret = '5aKnj_gPRp6haFmWvly7RxMXy97S8nUEzDxxxxxxxxx' #Secret是管理组凭证密钥
accesstoken = gettoken(corpid,corpsecret)
senddata(accesstoken,user,subject,content)
# 报警测试
[root@kazihuo ~]# python /usr/lib/zabbix/alertscripts/wechat.py LuoMuRui TEST "It's a test."
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ww15a76b039cce012c&corpsecret=5aKnj_gPRp6haFmWvly7RxMXy97S8nUEzDTsiQmB9e0
{u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}
# 执行脚本后将收到企业微信发来的消息,如下:

zabbix界面配置
# 报警思路
先创建微信脚本报警媒介,然后创建报警用户,并关联报警媒介,再创建动作。当监控项的监控指标异常,并达到指定的报警级别后,会触发动作进行相应的操作(给指定的报警用户发送信息),指定用户收到报警信息后,通过报警媒介发出微信告警消息!
# 页面操作
# 创建报警媒介
# 依次点击 Administration > Media types > Create media type;

方便复制:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
# 创建用户(wc)
# 依次点击 Administrator > User > Create user;

# 配置 Media;

# 创建动作
# 依次点击Configuration > Actions > Create action;


方便复制:
[[ 告警信息 ]]
{TRIGGER.NAME}
告警主机: {HOSTNAME1}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
事件ID: {EVENT.ID}

方便复制:
[[ 恢复信息 ]]
{TRIGGER.NAME}
恢复主机: {HOSTNAME1}
告警时间: {EVENT.DATE} {EVENT.TIME}
恢复项目: {TRIGGER.KEY1}
事件ID: {EVENT.ID}
告警功能验证
# 在zabbix server服务器上将zabbix_agent服务停掉,几分钟后可在zabbix面板看到故障信息;
[root@kazihuo ~]# systemctl stop zabbix-agent

# 过几分钟后启动agent服务,整个过程收到的微信告警如下:

重点说明
1、当监控告警收件人需要增加时,只需将其微信加入企业微信中对应的 "监控组" 即可;
2、当微信用户登录了企业微信后,企业微信发送的报警信息就只能在企业微信中接收,若需要在微信中也能收到告警信息,需要找企业微信管理员索要"微工作台"的二维码并关注。然后在企业微信app中依次点击 "我" > "设置" > "新消息通知",然后关闭 "仅在企业微信中接收消息"即可!
zabbix企业微信报警实现的更多相关文章
- zabbix设置微信报警的配置过程
zabbix设置微信报警的配置过程 转发:https://blog.csdn.net/qq_31613055/article/details/78831607 微信企业号的申请 注册的地址https: ...
- zabbix企业微信告警配置教程
前言: zabbix企业微信告警只需要配置一次就可以使用很久了,但是发现再次配置时,总会有遗忘,很麻烦又要去重新熟悉,所以,现在记录一份详细的配置过程,方便日后再次配置. 1.zabbix_serve ...
- Zabbbix之十二------Zabbix实现微信报警通知及创建聚合图形
实战一:实现zabbix监控微信报警 1.在企业微信上注册账号 1.注册企业微信,管理员需要写上自己的真实姓名,扫描以下的二维码,与微信关联真实姓名. 2.登陆企业微信,然后创建一个微信故障通知应用 ...
- Prometheus(五):Prometheus+Alertmanager 配置企业微信报警
此处默认已安装Prometheus服务,服务地址:192.168.56.200 一.设置企业微信 1.1.企业微信注册(已有企业微信账号请跳过) 企业微信注册地址:https://work.weix ...
- 配置zabbix通过微信报警企业微信报警
如今势态: 报警的方式可谓是八仙过海各显神通,如电话报警,短信报警,邮件报警,QQ报警,微信报警等等. 电话报警:一般都是使用别的平台的工具,平台给你提供一个接口供你使用,大多数为限量收费款 短信报警 ...
- zabbix配置企业微信报警
+++++++++++++++++++++++++++++++++++++++++ 1. 工作中最长使用的就是微信,普及,开源,而且免费!!! 2. 在企业微信中要记录的值: · 部门id · 企业i ...
- Zabbix 3.0 配置企业微信报警(注册---测试)
一.申请企业微信 1.登录企业微信官网,点击企业注册 二.配置企业微信 1.邀请管理员使用企业微信,如果有多个人直接添加新成员 2.管理员收到邀请,下载手机版企业微信,使用微信号登陆即可 3.创建应用 ...
- zabbix配置微信报警
首先我们先目睹下微信报警的效果 接下来我们正式开始操作. 一:注册企业微信. 打开企业微信注册:http://work.weixin.qq.com 根据以上提示填入相应的内容,然后注册即可. 二:登录 ...
- CentOS 7 zabbix实现微信报警
环境 : LAMP CentOS7 192.168.94.11 首先搭建LAMP环境 , 安装zabbix [root@zabbix-server ~]# wget http://repo.zab ...
随机推荐
- Python中使用字典的几个小技巧
1 解包 所谓解包,就是将字典通过 ** 操作符转为 Key=Value 的形式,这种形式可以直接传给函数作为关键字参数. 说说适用的几种情况. 1.1 搜索拼接条件 当应用中使用类似 SQLAlch ...
- C++学习笔记10_输入输出流.文件读写
//从键盘输入到程序,叫标准input:从程序输出到显示器,叫标准output:一并叫标准I/O //文件的输入和输出,叫文件I/O cout<<"hellow word&quo ...
- Java多线程中join、yield、sleep方法详解
在Java多线程编程中,Thread类是其中一个核心和关键的角色.因此,对该类中一些基础常用方法的理解和熟练使用是开发多线程代码的基础.本篇主要总结一下Thread中常用的一些静态方法的含义及代码中的 ...
- 常用git命令教程
一.新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码 ...
- MongoDB自学------(1)MongoDB4.0安装
一.环境 操作系统 安装包 安装方式 Ubuntu18.04 mongodb4.0 apt安装 Ubuntu18.04 mongodb4.0 docker安装 二.apt安装 sudo apt-key ...
- Apache服务及个人用户主页功能和密码验证
Apache服务程序中有个默认未开启的个人用户主页功能,能够为所有系统内的用户生成个人网站,确实很实用哦 第1步:开启个人用户主页功能: 1.vim /etc/httpd/conf.d/userdir ...
- 易初大数据 2019年11月13日 Linux 王庆超
★安装Red Hat Enterprise Linux7.41 ◆1通过键盘的方向键选择“lnstall Red Hat Enterprise Linux7.4”选项来直接安装Linux 系统. ◆2 ...
- php imagick 文字居中的方法
php imagick 文字居中的方法<pre> public function getwenzinfo($nickName) { $nickNamelen = mb_strlen($ni ...
- 访问控制列表ACL
1.ACL Access list ,访问控制列表. 2.作用 限制网络中的地址访问. 3.主要内容 Eg: Router(config)#access-list ? <一>. <1 ...
- Java设计模式之模板方法模式(Template)
前言: 我们在开发中有很多固定的流程,这些流程有很多步凑是固定的,比如JDBC中获取连接,关闭连接这些流程是固定不变的,变动的只有设置参数,解析结果集这些是根据不同的实体对象“来做调整”,针对这种拥有 ...