Centos7下zabbix部署(五)定义报警媒介-微信
1.注册微信
注册过程参考地址:https://www.cnblogs.com/hanyifeng/p/5368102.html
主要需要以下一些信息

2.编写服务端发送微信的脚本
- [root@zabbix-server alertscripts]# cat weixin.py
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import urllib,urllib2,json
- import sys
- reload(sys)
- sys.setdefaultencoding( "utf-8" )
- class WeChat(object):
- __token_id = ''
- # init attribute
- def __init__(self,url):
- self.__url = url.rstrip('/')
- self.__corpid = 'wwxxxxxxxxxxxx9d' #需要改
- self.__secret = 'EQxxxxxxxxxxxxxxxxxxxxxMVkuUm3U' #需要改
- # 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':"", #需要改(部门id)
- 'msgtype':"text",
- 'agentid':"", #需要改
- 'text':{
- 'content':message
- },
- 'safe':""
- },ensure_ascii=False)
- response = self.postData(data)
- print response
- if __name__ == '__main__':
- a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
- a.sendMessage(sys.argv[1],sys.argv[3])
3.给脚本授权更改属性,并测试
- [root@zabbix-server alertscripts]# chmod +x weixin.py
[root@zabbix-server alertscripts]# chown zabbix.zabbix weixin.py
[root@zabbix-server alertscripts]# ./weixin.py YangHaiLong test test
# 测试出现ok字样表示成功你的企业微信应该可以收到test的信息
- [root@zabbix-server alertscripts]# ./weixin.py YangHaiLong test test
- {u'invaliduser': u'', u'errcode': , u'errmsg': u'ok'}
4.在zabbix网页设置报警媒介和动作
我这个动作只设了一个触发器的动作,监控80端口是否存在,不存在触发报警,执行动作,动作就是执行这个weixin.py脚本发送报警信息。
我关掉nginx服务 80端口消失,触发报警
- [root@zabbix-agent ~]# netstat -lntup|grep
- tcp 0.0.0.0: 0.0.0.0:* LISTEN /nginx: master
- tcp6 ::: :::* LISTEN /nginx: master
[root@zabbix-agent ~]# systemctl stop nginx
[root@zabbix-agent ~]# netstat -lntup|grep 80
[root@zabbix-agent ~]#
网页上的日志成功的。
我同时设置了恢复后的报警。
- [root@zabbix-agent ~]# systemctl start nginx
- [root@zabbix-agent ~]# netstat -lntup|grep
- tcp 0.0.0.0: 0.0.0.0:* LISTEN /nginx: master
- tcp6 ::: :::* LISTEN /nginx: master
ok 啦。
Centos7下zabbix部署(五)定义报警媒介-微信的更多相关文章
- Centos7下zabbix部署(四)定义报警媒介-邮件
1.安装发送邮件工具mailx [root@zabbix-server ~]# yum install mailx -y 2.自定义使用163邮箱为默认发件人(避免被当作垃圾邮件) set from= ...
- Centos7下zabbix部署(三)自定义监控项
引言 在前面的博客中我们介绍了zabbix自带的模板,并且完成了我们的一些比较常用的监控,现在我们如果想要监控我们磁盘的IO,这时候zabbix并没有给我们提供这么一个模板,所以我们需要自己来创建一个 ...
- zabbix报警媒介------>微信报警
zabbix报警媒介------>微信报警 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入高级运维工程师之路:598432640 微信在我们的生活中使用的比较频繁,有 ...
- centos7 下zookeeper 部署 单机多实例模式
centos7 下zookeeper 部署 本文参考https://www.linuxidc.com/Linux/2016-09/135052.htm 1.创建/usr/local/zookeeper ...
- centos7 下 安装部署nginx
centos7 下 安装部署nginx 1.nginx安装依赖于三个包,注意安装顺序 a.SSL功能需要openssl库,直接通过yum安装: #yum install openssl b.gzip模 ...
- 记录centos7下tomcat部署war包过程
记录centos7下tomcat部署war包过程 1.官网下载tomcat安装包.gz结尾的 2.上传到/usr/local/ ,并解压到tomcat目录下 3.进入tomcat/bin目录,运行./ ...
- CentOS7下单机部署RabbltMQ环境的操作记录
一.RabbitMQ简单介绍在日常工作环境中,你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务 ...
- centos7安装ZABBIX 3.0+ 邮件报警【OK】
设置主机名: vi /etc/hosts 10.0.0.252 zabbix-server hostnamectl set-hostname 关闭防火墙: systemctl stop firew ...
- Centos7下单机部署Solr7.3
本章重点介绍CentOS7 下部署Solr7 ,添加核心Core配置,Dataimport导入,中文分词的相关操作. 一.准备工作 演示环境是在虚拟机下安装的CentOS7.java JDK8 ...
随机推荐
- Android 布局开发之百分比布局、弹性布局
1.百分比布局 很简单,超级简单.引用之后就可以使用了. compile 'com.android.support:percent:23+' git地址: https://github.com/Jul ...
- Asp.net Core发布到CentOS7
第一步.安装CentOS 官网https://www.centos.org/下载CentOS,下载地址https://www.centos.org/download/,我选的“DVD ISO”,然后虚 ...
- 发送广播重新挂载SD卡,使图库可以及时显示自己保存的图片(无需手机重启)
我们或许经常会遇到这种情况,明明保存了图片,但是当你打开图片时,却没有找到这张图片,手机重启之后才能看到.这是因为SD卡并没有重新挂载,图库也无法把这张图片加载进去,解决这个问题非常简单,只需要我们模 ...
- 1004 Counting Leaves (30 分)(树的遍历)
给出一棵树,问每一层各有多少叶子节点 dfs遍历树 #include<bits/stdc++.h> using namespace std; vector<]; int n,m; i ...
- 课时5:闲聊之Python的数据类型
目录: 一.引言 二.数据类型 >整型 >浮点型 >布尔类型 三.类型转换 四.获得关于类型的信息 五.课时05课后习题及答案 *********** 一.引言 ********** ...
- Day2 Activity生命周期/启动模式/最佳实践
Android是使用任务(Task)来管理活动的,这个栈被称作返回栈(Back Stack). Activity类中定义了7个回调方法: onCreate().在活动第一次被创建时调用,应该在这个方法 ...
- HDU 4758 Walk Through Squares( AC自动机 + 状态压缩DP )
题意:给你两个串A,B, 问一个串长为M+N且包含A和B且恰好包含M个R的字符串有多少种组合方式,所有字符串中均只含有字符L和R. dp[i][j][k][S]表示串长为i,有j个R,在自动机中的状态 ...
- UVALive 4764 简单dp水题(也可以暴力求解)
B - Bing it Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Status ...
- 哈希URAL 1941 - Scary Martian Word
A - Scary Martian Word Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I ...
- chrome浏览器console拓展用法
chrome 浏览器console打印 使用CSS美化输出信息 console.log("%cThis will be formatted with large, blue text&quo ...