需要自己申请一个微信企业号

创建应用

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+微信企业号报警的更多相关文章

  1. Zabbix 微信监控报警

    Zabbix-Server 设置 # 使脚本目录生效 [root@zabbix ~]# grep 'script' /etc/zabbix/zabbix_server.conf # AlertScri ...

  2. 通过微信企业号发送zabbix报警

    采用微信报警时,管理员账户中必须要设置"示警媒体"一项,"收件人"一项可随便填写一下.其它成员则可以不用添加设置. ---------------------- ...

  3. zabbix之微信告警(python版):微信个人报警,微信企业号告警脚本

    微信个人告警脚本 微信个人告警:使用个人微信,发送到微信群组,微信好友 两个脚本执行: 1)能连接网络2)先执行server.py,扫描登录微信,登录之后没有报错,打开新终端查看端口是否起来了3)在z ...

  4. zabbix 微信报警

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

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

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

  6. Zabbix微信报警触发

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

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

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

  8. (五)zabbix微信报警

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

  9. zabbix 定义触发器,并使用邮件,微信消息报警。

    触发器可根据监控项获取到的值来进行一些操作,如监控项获取到的values为0,触发器可判断为正常,如果获取到了1,就触发报警. 定义报警方式比较简单,但是用shell脚本实现起来,总是有格式问题,所以 ...

随机推荐

  1. oo第一单元学习总结

    写在开头: 第一次接触面向对象思想和java语言,在学习以及完成作业的过程经历了一个比较痛苦的过程, 虽然在每次写作业时总是会有一些小小的抱怨,虽然写出的代码还是很差, 但是看到自己有所进步,还是感觉 ...

  2. git常用的一些简单命令

    1.如果一个文件被修改了,但是还没有使用 git add 命令,此时想取消这次修改,需要执行的命令如下: git checkout -- 文件名 2.如果一个文件执行了 git add ,此时想取消这 ...

  3. 认真讲说static关键字

    static 关键字主要有以下四种使用场景 修饰成员变量和成员方法 静态代码块 修饰类(只能修饰内部类) 静态导包(用来导入类中的静态资源,1.5之后的新特性) 修饰成员变量和成员方法(常用) 被 s ...

  4. 算法:Z字型(Zigzag)编排

    问题:给定 n 行和 m 列的二维数组矩阵.如图所示,以 ZIG-ZAG 方式打印此矩阵. 从对称的角度来看,通过反复施加滑行反射可以从简单的图案如线段产生规则的之字形. 主要思想:算法从(0, 0) ...

  5. MyBatis源码分析(七):动态代理(Mybatis核心机制)

    一.动态代理 动态代理是一种比较高级的代理模式,它的典型应用就是Spring AOP. 在传统的动态代理模式中,客户端通过ProxySubject调用RealSubject类的request( )方法 ...

  6. Codeforces Round #738 (Div. 2) D2题解

    D2. Mocha and Diana (Hard Version) 至于D1,由于范围是1000,我们直接枚举所有的边,看看能不能加上去就行,复杂度是\(O(n^2logn)\).至于\(n\)到了 ...

  7. Openeuler安装完整man手册

    Openeuler安装完整man手册 ​ 在 Debian 和 Ubuntu 中安装了Shell 前端软件包管理器apt(Advanced Packaging Tool),可以通过如下方式安装. ​ ...

  8. 在Delphi中高效执行JS代码

    因为一些原因,需要进行encodeURIComponent和decodeURIComponent编码,在Delphi中找了一个,首先是发现不能正确编码+号,后面强制处理替换了,勉强可用. 后面发现多次 ...

  9. glibc memcpy() 源码浅谈

    其实我本来只是想搞懂为什么memcpy()函数的参数类型是void *的: 我以为会在memcpy()源码中能找到答案,其实并没有,void *只是在传递参数的时候起了作用,可以让memcpy()接受 ...

  10. robot_framewok自动化测试--(4)常用关键字介绍

    常用关键字介绍 在学习一门编程语言的时候,大多教材都是从打印"hello world"开始.我们可以像编程语言一样来学习 Robot Framework.虽然通过 RIDE 提供& ...