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 ...
随机推荐
- P1418 选点问题(黑白染色)
P1418 选点问题 题目描述 给出n个点,m条边,每个点能控制与其相连的所有的边,要求选出一些点,使得这些点能控制所有的边,并且点数最少.同时,任意一条边不能被两个点控制 输入输出格式 输入格式: ...
- P1395 会议(求树的重心)
P1395 会议 题目描述 有一个村庄居住着n个村民,有n-1条路径使得这n个村民的家联通,每条路径的长度都为1.现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那么 ...
- spring整合redis缓存,以注解(@Cacheable、@CachePut、@CacheEvict)形式使用
maven项目中在pom.xml中依赖2个jar包,其他的spring的jar包省略: <dependency> <groupId>redis.clients</grou ...
- css一些事儿
1. margin和padding 如果边界画一条线,则margin的属于边界外,padding属于边界内 当我们给元素背景色时,margin区域不会被着色,而padding区域会被着色. 当上下两个 ...
- Pascal小游戏 打飞机
一个经典的打飞机游戏(1)Pascal代码 十分经典,有一种街机的感觉 奇葩青年的又一控制台神作. uses crt; type list=record ty,ax:integer; ...
- Python 3基础教程11-如何利用pip命令安装包和模块
本文介绍如何利用pip命令安装Python相关的包和模块.在Python中有些方法或者模块是自带的功能,也叫(build-in),内构函数,实际使用,可能内构函数或者模块不能完成我们的任务,我们就需要 ...
- Canvas 给图形绘制阴影
/** * 图形绘制阴影 */ function initDemo6() { var canvas = document.getElementById("demo6"); if ( ...
- sqlalchemy 查询姿势总结
sqlalchemy查询使用 1.带条件查询 查询是最常用的,对于各种查询我们必须要十分清楚,首先是带条件的查询 #带条件查询 rows = session.query(User).filter_by ...
- 在python中如何比较两个float类型的数据是否相等
奇怪的现象 前几天跟同事聊起来,在计算机内部float比较是很坑爹的事情.比方说,0.1+0.2得到的结果竟然不是0.3? >>> 0.1+0.2 0.300000000000000 ...
- [转] mysql分区性能初探
本文转自:http://www.cnblogs.com/acpp/archive/2010/08/09/1795464.html 一, 分区概念 分区允许根据指定的规则,跨文件系统分配单个 ...