毕业设计之zabbix+微信企业号报警
需要自己申请一个微信企业号
创建应用


AgentId
1000003
Secret
SOI8b20G96yUVM29K02-bP5N5o6dovwSF2RrDaXHJNg 企业ID(自己再企业信息里面看)
ww2cfb5ed7f795b600
这里使用python3所以,先升级:
安装依赖包yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel 现在源码包:
wget http://mirrors.sohu.com/python/3.6.6/Python-3.6.6.tgz
解压安装即可 需要进行下面的步骤:
备份原来的额版本
mv /usr/bin/python /usr/bin/python2.6 软连接
ln /usr/local/python3/bin/* /usr/bin/
可能之后使用yum的时候回出现错误
所以:
修改yum命令文件
vim /usr/bin/yum
[root@ansz.quan.bbs ~]$vim /usr/bin/yum #!/usr/bin/python2.6
改成python2.6所在的路径
编写报警脚本:
[root@ansz.quan.bbs alertscripts]$cat weixin.call.py
#!/usr/bin/python3
# -*- coding: utf-8 -*- import requests
import json
import sys
import os
import time # 企业号及应用相关信息
CORP_ID = 'ww2cfb5ed7f795b600'
CORP_SECRET = 'SOI8b20G96yUVM29K02-bP5N5o6dovwSF2RrDaXHJNg'
AGENT_ID = 1000003
# access_token 请求地址
ACCESS_TOKEN_REQUEST_URL = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
# 发送应用消息请求地址
SEND_MESSAGES_REQUEST_URL = 'https://qyapi.weixin.qq.com/cgi-bin/message/send' # 获取 access_token
def get_access_token():
get_token_url = '{}?corpid={}&corpsecret={}'.format(ACCESS_TOKEN_REQUEST_URL,
CORP_ID,
CORP_SECRET)
r = requests.get(get_token_url).json()
access_token = r['access_token']
return access_token
# 发送应用消息
def main():
access_token = get_access_token()
i = 0
while i < 3:
try:
user = sys.argv[1]
#subject = sys.argv[2],微信报警中没作用,因为微信没有所谓的主题
message = sys.argv[3] send_message_url = '{}?access_token={}'.format(SEND_MESSAGES_REQUEST_URL,
access_token)
message_params = {#"touser": "QQQ",这个是发给特定的人,
"toparty": "2", #发给特定的组,这里是组id,发给全部人。一般与上一个不同时使用
"msgtype": "text",
"agentid": AGENT_ID,
"text": {"content": message},
"safe": 0
}
r = requests.post(send_message_url, json=message_params, timeout=5)
r = r.json()
if r['errmsg'] == 'ok':
break
else:
access_token = get_access_token()
except Exception as e:
print(e)
i += 1
time.sleep(2) if __name__ == '__main__':
main()
解析:
ACCESS_TOKEN_REQUEST_URL = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
在下图可以知道




get_token_url = '{}?corpid={}&corpsecret={}'.format(ACCESS_TOKEN_REQUEST_URL,
CORP_ID,
CORP_SECRET)
格式很明显就知道是怎么样子了
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ww2cfb5ed7f795b600&corpsecret=SOI8b20G96yUVM29K02-bP5N5o6dovwSF2RrDaXHJNg

脚本中使用get去得到的是
{'errcode': 0, 'errmsg': 'ok', 'access_token': 'PJO2LhBqZu_FLCZSmmj-Us-XlHWADTaj3h5wmw5zjNlLaT3tU74OPRAVQy9YNCSfrvZhvC_fILbnQdBQ_AZ3faykLRdixkO7P35ihW4ct1OQix7R1Tp6DRoZdSo69d3u50X3WI1y_CnatAmPMspruEEsi6lsVlwpZa3KeXBohclEWRcvtRutAc9US2cCMeaJCkRTBveuKIvtczFoIBZLMg', 'expires_in': 7200}
# 发送应用消息请求地址
SEND_MESSAGES_REQUEST_URL =


web端添加报警媒介和动作就行,媒介选执行脚本的方式,并确定自己要发给企业微信里面的谁
或者直接发送给到哪个组
最终结果:

毕业设计之zabbix+微信企业号报警的更多相关文章
- Zabbix 微信监控报警
Zabbix-Server 设置 # 使脚本目录生效 [root@zabbix ~]# grep 'script' /etc/zabbix/zabbix_server.conf # AlertScri ...
- 通过微信企业号发送zabbix报警
采用微信报警时,管理员账户中必须要设置"示警媒体"一项,"收件人"一项可随便填写一下.其它成员则可以不用添加设置. ---------------------- ...
- zabbix之微信告警(python版):微信个人报警,微信企业号告警脚本
微信个人告警脚本 微信个人告警:使用个人微信,发送到微信群组,微信好友 两个脚本执行: 1)能连接网络2)先执行server.py,扫描登录微信,登录之后没有报错,打开新终端查看端口是否起来了3)在z ...
- zabbix 微信报警
http://blog.csdn.net/wh211212/article/details/52735236 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越 ...
- Zabbix 微信报警Python版(带监控项波动图片)
#!/usr/bin/python # -*- coding: UTF- -*- #Function: 微信报警python版(带波动图) #Environment: python import ur ...
- Zabbix微信报警触发
(1) 企业应用-创建应用 1.除了对个人添加微信报警之外,还可以添加不同管理组,接受同一个应用推送的消息, 成员账号,组织部门ID,应用Agent ID,CorpID和Secret, ...
- 通过脚本发送zabbix微信报警
实现zabbix通过微信报警的方式也是通过脚本来实现,与邮件报警不同的是,脚本调用的微信的相关接口的获取相对复杂一点 1.申请一个微信公众号(企业号) 申请方法不多说,如果已申请请忽略 2.在微信企业 ...
- (五)zabbix微信报警
1.注册微信企业号 1)注册微信企业号 https://work.weixin.qq.com 2)通讯录添加用户 3)记住部门id 4)创建应用 5)点击刚创建的应用,记住Agentld和secret ...
- zabbix 定义触发器,并使用邮件,微信消息报警。
触发器可根据监控项获取到的值来进行一些操作,如监控项获取到的values为0,触发器可判断为正常,如果获取到了1,就触发报警. 定义报警方式比较简单,但是用shell脚本实现起来,总是有格式问题,所以 ...
随机推荐
- 深度解析HashMap集合底层原理
目录 前置知识 ==和equals的区别 为什么要重写equals和HashCode 时间复杂度 (不带符号右移) >>> ^异或运算 &(与运算) 位移操作:1<&l ...
- spring-cloud-square开发实战(三种类型全覆盖)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 前文<五分钟搞懂spring-clou ...
- nodejs 连接 mysql 查询事务处理
自己用 mysql 很多次的,然后又是主玩nodejs的.专门写一篇文章来说说nodejs连接mysql数据库.在使用之前,请检查计算机是否具有一下环境! nodejs 执行环境. mysql数据库环 ...
- 斐波那契数列 牛客网 剑指Offer
斐波那契数列 牛客网 剑指Offer 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 class Solution: ...
- JAVA笔记2__类/封闭性/构造方法/方法的重载/匿名对象
public class Main { public static void main(String[] args) { Chicken c1 = new Chicken(); Chicken c2 ...
- mysql查询表名和列名字
-- 登录yellowcong 数据库 mysql -uroot -proot yellowcong -- 查看当前数据库 select database() -- 查看数据库里面的表 --table ...
- pl/sql 远程连接oracle数据库问题(TNS:丢失连接)
前几天还可以连接的,突然就连接失效,别的电脑也连接不上 1.ping 远程数据库的IP,可以ping通. 2.检查服务端的tnsnames.ora文件和本机客户端比较,没问题. 3.查看监听是否启动 ...
- 交换机 & 路由基础
以太网帧结构 Ethernet II帧结构 Ethernet_II帧类型值大于等于1536(0×0600) 以太网帧结构的长度在64-1518字节之间 帧各字段说明 目的MAC地址(DMAC):接收方 ...
- centos如何上网
问题 centos如何上网 解决方法 第一步: 打开VMware,选择菜单栏的Edit->Virtual Network Editor(虚拟网络编辑器).点击Restore Defaults(即 ...
- Python基础(list与tuple)
#list 类似于数组的概念 classmates = ['傻狗1','傻狗2','傻狗3'] # print(classmates) # print(len(classmates)) # print ...
