zabbix3.0 微信报警
来源:互联网 发布:四知文言文答案 编辑:程序博客网 时间:2024/05/27 20:17
先有一个微信企业号 微信号怎么注册就不多说了。
https://qy.weixin.qq.com/
要收微信的帐号必须关注该企业号成功
为了更好方便 我们要收集几个条件
一个部门ID:
一个应用ID:
一个CorpID:
一个Secret:
最后是一个SHELL脚本。虽然没有测试成功。但是用用还是可以的
第一获取部门ID:
第二获取应用ID:
第三获取CorpID,Secret:
第四配置脚本
root@xxxxxxx:/usr/lib/zabbix/alertscripts# pwd/usr/lib/zabbix/alertscripts#vi wxpython.py#!/usr/bin/env python# -*- coding: utf-8 -*-import urllib,urllib2,jsonimport sysreload(sys)sys.setdefaultencoding( "utf-8" )class WeChat(object): __token_id = '' # init attribute def __init__(self,url): self.__url = url.rstrip('/') self.__corpid = 'xxxxx' self.__secret = 'xxxxx' # Get TokenID def authID(self): params = {'corpid':self.__corpid, 'corpsecret':self.__secret} data = urllib.urlencode(params) content = self.getToken(data) try: self.__token_id = content['access_token'] # print content['access_token'] except KeyError: raise KeyError # Establish a connection def getToken(self,data,url_prefix='/'): url = self.__url + url_prefix + 'gettoken?' try: response = urllib2.Request(url + data) except KeyError: raise KeyError result = urllib2.urlopen(response) content = json.loads(result.read()) return content # Get sendmessage url def postData(self,data,url_prefix='/'): url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_id request = urllib2.Request(url,data) try: result = urllib2.urlopen(request) except urllib2.HTTPError as e: if hasattr(e,'reason'): print 'reason',e.reason elif hasattr(e,'code'): print 'code',e.code return 0 else: content = json.loads(result.read()) result.close() return content # send message def sendMessage(self,touser,message): self.authID() data = json.dumps({ 'touser':touser, 'toparty':"2", 'msgtype':"text", 'agentid':"1", 'text':{ 'content':message }, 'safe':"0" },ensure_ascii=False) response = self.postData(data) print responseif __name__ == '__main__': a = WeChat('https://qyapi.weixin.qq.com/cgi-bin') a.sendMessage(sys.argv[1],sys.argv[3])
修改的地方有14 15 65 67 四行的值
#chmod 777 wxpython.py 加权限
第五配置WEB
下面开始在WEB界面配置。
我的是zabbix 3.0
@all 是该组所有人。 可以指定单个 也可以多个。中间用|分开
权限 自己配置就好了
最后可以测试了。
测试方法 把监控的IP端口改掉,让服务器DOWN机器 发消息
脚本是参考 http://www.cnblogs.com/hanyifeng/p/5368102.html
最后是一个SHELL脚本。虽然没有测试成功。但是用用还是可以的
#!/bin/bashCropID='xxxxx'Secret='xxxxxx'GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F '"' '{print $4}')PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"function body() { local userid=$1; local groupid=2; local agentid=1; local msg=$(echo "$2" |cut -d"" -f3-); $local msg=$2; printf ' {\n' printf ' \t"touser": "'""$userid""\"",\n" printf ' \t"toparty": "'"$groupid"\"",\n" printf ' \t"msgtype": "'"text"\"",\n" printf ' \t"agentid": "'"$agentid"\"",\n" printf ' \t"text":{\n' printf ' \t\t"content": "'"$msg"\""\n" printf ' \t},\n' printf ' \t"safe":0\n' printf ' }\n'}/usr/bin/curl --data-ascii "$(body $1 $2)" $PURL
加权限就可以了。
调用方法
./name 接收微信ID 接收内容
中间空格
0 0
- zabbix3.0 微信报警
- 【zabbix教程七】——zabbix3.0配置微信报警
- 【zabbix教程七】——zabbix3.0配置微信报警
- zabbix3.0邮件报警
- zabbix3.0 之短信报警配置
- zabbix3.2邮件报警
- zabbix3.2邮件报警
- Nagios微信报警
- zabbix微信报警
- ZABBIX3.04设置短信报警
- zabbix3.0.4邮件报警配置
- ZABBIX3.04设置短信报警
- zabbix3.2邮件报警配置
- zabbix实现微信报警
- zabbix2.4 微信报警
- zabbix微信报警脚本
- 微信服务号报警
- zabbix微信报警脚本
- 华为上机题汇总(十五)
- 【CQOI 2012】【BZOJ 2669】【JZOJ 4700】 Garden
- Android 命令行手动编译打包详解
- 学好hibernate系列之了解hibernate配置文件
- Game
- zabbix3.0 微信报警
- [leetcode]231. Power of Two/326. Power of Three -- JavaScript 代码
- 浅谈攻击Web应用常见的技术手段
- Mysql数据库的安装及管理
- ※ Leetcode - Tree - 226. Invert Binary Tree(反转二叉树 使用二级指针交换两个指针的地址)
- 李开复:人工智能可能会让一半人失业
- include指令和include动作的区别
- 如何有效的使用闭包
- onTextChanged参数解释及实现EditText字数监听