1.申请企业微信

1.1 注册企业微信的地址

https://qy.weixin.qq.com/

1.2 按照提示进行填写

1.3 完善个人信息:

1.4 创建应用

根据提示创建应用:

1.5 筛出重要信息:

(建议:把下面筛出来的信息保存在一个文本里面)

2.调用微信接口

我们配置微信脚本 首先我们需要调用微信接口

调用微信接口需要一个调用接口的凭证:access_token

通过:GropID,Secret才能获取到access_token,但是获取到的token有效期为两分钟

微信企业号接口调试工具地址:http://qydev.weixin.qq.com/debug

打开上面的url,使用上面monitops企业号的monit-manager管理组的CorpID和Secret号获得调用接口凭证access_token,如下

2.1 微信企业号接口调试工具

地址:http://qydev.weixin.qq.com/debug

3.下载依赖工具

[root@localhost ~]# wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz

[root@localhost ~]# tar zxf simplejson-3.8.2.tar.gz

[root@localhost ~]# cd simplejson-3.8.2/

[root@localhost ~]# python setup.py build

[root@localhost ~]# python setup.py install

4.编写脚本

4.1 查找脚本文件路径

[root@localhost ~]# find / -name alertscripts

4.2 修改主配置文件脚本路径

(默认的可以不更改)

4.3 编写脚本

#!/usr/bin/python

#_*_coding:utf-8 _*_

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":"WeiGuo",   #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。

"toparty":"2",        #企业号中的部门id。

"msgtype":"text",     #消息类型

"agentid":"1000003",  #企业号中的应用id。

"text":{

"content":subject + '\n' + content

},

"safe":"0"

}

#    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[1])     #zabbix传过来的第一个参数

subject = str(sys.argv[2])  #zabbix传过来的第二个参数

content = str(sys.argv[3])  #zabbix传过来的第三个参数

corpid =  'ww7f78865c2ba33afa'     #企业号的标识(上文中提到获取位置)

corpsecret = 'szAMO1lIFOEH6JuCSIqjuw35zZbKcHdVx76tBhHOon8'    #管理组凭证密钥(上文中提到获取位置)

accesstoken = gettoken(corpid,corpsecret)

senddata(accesstoken,user,subject,content)

4.4 授权

[root@localhost alertscripts]# chmod 755 wechat.py & chown -R zabbix.zabbix wechat.py

4.5 试发微信

(WeiGuo是企业微信里面的微信号 hello为标题   zabbix测试为内容)

微信可以看到已经发过来了

5.zabbix添加微信报警

5.1 添加报警媒介

参数:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

5.2 管理报警媒介

5.3 用户授权

(可创建新用户,也可使用Admin)

5.4 创建动作

操作/恢复操作:

{TRIGGER.STATUS}: {TRIGGER.NAME}

告警主机:{HOST.NAME}

主机IP: {HOST.IP}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息:{TRIGGER.NAME}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID: {EVENT.ID}

确认操作:

{TRIGGER.STATUS}: {TRIGGER.NAME}

告警主机:{HOST.NAME}

主机IP: {HOST.IP}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息:{TRIGGER.NAME}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID: {EVENT.ID}

6.验证

6.1 微信收到消息

到这里我们就配置完毕了 但是这样的问题是只能用企业微信接到消息 那么如何让我们平时使用的微信也能接到消息呢?

6.2 断开zabbix-agent测试

(断开之后看是否会有微信消息过来)

zabbix-agent上操作:

[root@localhost ~]# systemctl stop zabbix-agent.service

可以看到微信警告已经发出。

centos7--zabbix3.4微信报警的更多相关文章

  1. 分布式监控系统Zabbix-3.0.3-新版微信报警(企业微信取代企业号)

    一般来说,Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是现在越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人 ...

  2. 分布式监控系统Zabbix-3.0.3-完整安装记录(6)-微信报警部署

    Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式. 现在由于微信使用的广泛度,越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推 ...

  3. zabbix3.4搭建微信报警

    身为小白的我在历经被百度查到的资料坑了无数次之后,终于找到了一个正确的文档,下面是我自己的对于安装过程的理解与阐述. 一.申请微信企业号,获取以下数据. 企业ID:(在我们企业最下方可以看到) 应用的 ...

  4. 总zabbix配置-搭建-邮件报警-微信报警-监控mysql

    Centos7安装Zabbix4.0步骤 官方搭建zabbix4.0的环境要求: 1. 环境搭建LAMP 前提Centos系统安装完成:  确认一下: 1 2 cat /etc/redhat-rele ...

  5. CentOS 7 zabbix实现微信报警

    环境 : LAMP  CentOS7  192.168.94.11 首先搭建LAMP环境 , 安装zabbix [root@zabbix-server ~]# wget http://repo.zab ...

  6. zabbix设置微信报警的配置过程

    zabbix设置微信报警的配置过程 转发:https://blog.csdn.net/qq_31613055/article/details/78831607 微信企业号的申请 注册的地址https: ...

  7. Zabbix配置微信报警通知

    Zabbix告警可以通过邮件,微信,电话,短信等方式发送告警消息. 电话和短信需要向运营商购买相应的网关,需要付费: 邮件和微信是免费的,可以根据业务需要选择相应的告警模式 Zabbix版本:3.2 ...

  8. (五)zabbix微信报警

    1.注册微信企业号 1)注册微信企业号 https://work.weixin.qq.com 2)通讯录添加用户 3)记住部门id 4)创建应用 5)点击刚创建的应用,记住Agentld和secret ...

  9. zabbix3.0 微信告警

    首先需要申请一个企业号,其实公众号也可以,不过脚本不一样.而且公众号任何人都可以关注,有泄密的风险.企业号只有指定的人可以关注,安全性较高.申请企业号,需要一个绑定你本人开户银行卡的微信号. 申请网址 ...

  10. zabbix报警媒介------>微信报警

    zabbix报警媒介------>微信报警 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入高级运维工程师之路:598432640 微信在我们的生活中使用的比较频繁,有 ...

随机推荐

  1. Unity3d与iOS交互开发

    一.Unity3d  To  iOS: 最近要做一个商品和人体模型T台秀相关的功能,要用到Unity3D,搜集了一些资料先保存下来. 1.创建一个C#文件 SdkToIOS.cs 这是调用iOS函数的 ...

  2. weui中的picker使用js进行动态绑定数据

    解决方案; picker和Select组件是通过input标签绑定,可以先通过input的父级元素移除input标签,重新插入input标签,最后重新初始化picker或Select组件. <d ...

  3. CSSTab栏下划线跟随效果

    神奇的 ~ 选择符 对于当前 hover 的 li ,其对应伪元素的下划线的定位是 left: 100%,而对于 li:hover ~ li::before,它们的定位是 left: 0. ul li ...

  4. React Native 开发豆瓣评分(三)集成 Redux

    什么是 redux redux 是一个用于管理 js 应用状态(state)的容器.比如组件 A 发生了变化,组件 B 要同时做出响应.常见的应用场景就是用户的登录退出操作:未登录状态,个人中心显示登 ...

  5. day53-python之会话

    from django.shortcuts import render,redirect # Create your views here. import datetime def login(req ...

  6. UCOSIII时间片轮转调度

    OS_RATE_HZ const OSCfg_TickRate_Hz = (OS_RATE_HZ )OS_CFG_TICK_RATE_HZ; #define OS_CFG_TICK_RATE_HZ 2 ...

  7. LinuxKernel优秀博客

    1.vanbreaker的专栏 2.LinuxKernel Exploration 3.DroidPhone的专栏 4.Linux内核研究以及学习文档和ARM学习以及研究的开放文档   [力荐] 5. ...

  8. git/github安装与使用教程

    新学习了Git和GitHub的使用,记一下笔记,也希望可以帮助他人,这里只是初级阶段,以后还会不断的修改和完善. 1.什么是git 开源的分布式版本控制系统,与svn比独特的地方: 1.解决了svn后 ...

  9. python selenium八大定位方法

    一.定位方法 注意:元素属性必须唯一存在 #id定位 find_element_by_id() #name定位 find_element_by_name() #class_name定位 find_el ...

  10. 反射,内置方法,__str__ __repr__

    反射 反射用到的mmp模块 def wahaha():print('wahaha') class QQxing: def __init__(self,name): self.name = name d ...