毕业设计之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脚本实现起来,总是有格式问题,所以 ...
随机推荐
- Java:异常小记
Java:异常小记 对 Java 中的 异常 ,做一个微不足道的小小小小记 Error 和 Exception 相同点: Exception 和Error 都是继承了 Throwable 类,在 Ja ...
- BUAAOO第四单元总结
---恢复内容开始--- 一.本单元两次作业的架构设计 第十三次作业:本次作业我创建了四个类,除去官方提供的Main和MyUmlInteraction类之外,还有Uclass和Ulinterface分 ...
- springBoot服务整合线程池ThreadPoolTaskExecutor与@Async详解使用
ThreadPoolExecutor:=======这个是java自己实现的线程池执行类,基本上创建线程池都是通过这个类进行的创建.ThreadPoolTaskExecutor:========这个是 ...
- activiti流程图上获取各节点的信息获取
背景: 由于项目的需要,当用户在查看流程图时,当点击某个流程图片上的节点时,需要提示一些信息,这就需要获取各个节点的信息,此处获取id和name的值. 注意:这个并 ...
- 栈的压入、弹出顺序 牛客网 剑指Offer
栈的压入.弹出顺序 牛客网 剑指Offer 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是 ...
- shell 脚本二进制安装mysql
以下脚本的手动安装连接:https://www.cnblogs.com/leihongnu/p/12581793.html [ #/bin/bash#脚本安装 mysql,上传安装包至 /rootcd ...
- AppScan 10安装使用
一.简介 AppScan是IBM的一款web安全扫描工具,具有利用爬虫技术进行网站安全渗透测试的能力,能够根据网站入口自动摸取网页链接进行安全扫描,提供了扫描.报告和修复建议等功能. appscan有 ...
- dart系列之:dart语言中的内置类型
目录 简介 Null 数字 字符串 布尔值 列表 set和map 简介 和所有的编程语言一样,dart有他内置的语言类型,这些内置类型都继承自Object,当然这些内置类型是dart语言的基础,只有掌 ...
- c++学习笔记(十)
返回应用类型 返回引用 1.不要返回局部变量的引用 为了验证为什么不能返回局部变量的引用,我按照所学的例题自己做了一点小测试. #include<iostream> using names ...
- Python科普系列——类与方法(上篇)
欢迎来到新的系列,up又开新坑了~~ 实际上,Python作为一门易用性见长的语言,看上去简单,却仍然有很多值得一说的内容,因此这个系列会把Python中比较有意思的地方也给科普一遍.而另一方面,关于 ...
