1.注册微信

注册过程参考地址:https://www.cnblogs.com/hanyifeng/p/5368102.html

主要需要以下一些信息

CorpID :     wwxxxxxxxxxxxx99d
AgentId:   1000004
Secret:      EQxxxxxxxxxxxxxxxxxxxxxxxxxxxMVkuUm3U
部门ID:  2
 

2.编写服务端发送微信的脚本

  1. [root@zabbix-server alertscripts]# cat weixin.py
  2. #!/usr/bin/env python
  3. # -*- coding: utf-8 -*-
  4.  
  5. import urllib,urllib2,json
  6. import sys
  7. reload(sys)
  8. sys.setdefaultencoding( "utf-8" )
  9.  
  10. class WeChat(object):
  11. __token_id = ''
  12. # init attribute
  13. def __init__(self,url):
  14. self.__url = url.rstrip('/')
  15. self.__corpid = 'wwxxxxxxxxxxxx9d' #需要改
  16. self.__secret = 'EQxxxxxxxxxxxxxxxxxxxxxMVkuUm3U' #需要改
  17.  
  18. # Get TokenID
  19. def authID(self):
  20. params = {'corpid':self.__corpid, 'corpsecret':self.__secret}
  21. data = urllib.urlencode(params)
  22.  
  23. content = self.getToken(data)
  24.  
  25. try:
  26. self.__token_id = content['access_token']
  27. # print content['access_token']
  28. except KeyError:
  29. raise KeyError
  30.  
  31. # Establish a connection
  32. def getToken(self,data,url_prefix='/'):
  33. url = self.__url + url_prefix + 'gettoken?'
  34. try:
  35. response = urllib2.Request(url + data)
  36. except KeyError:
  37. raise KeyError
  38. result = urllib2.urlopen(response)
  39. content = json.loads(result.read())
  40. return content
  41.  
  42. # Get sendmessage url
  43. def postData(self,data,url_prefix='/'):
  44. url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_id
  45. request = urllib2.Request(url,data)
  46. try:
  47. result = urllib2.urlopen(request)
  48. except urllib2.HTTPError as e:
  49. if hasattr(e,'reason'):
  50. print 'reason',e.reason
  51. elif hasattr(e,'code'):
  52. print 'code',e.code
  53. return 0
  54. else:
  55. content = json.loads(result.read())
  56. result.close()
  57. return content
  58.  
  59. # send message
  60. def sendMessage(self,touser,message):
  61.  
  62. self.authID()
  63.  
  64. data = json.dumps({
  65. 'touser':touser,
  66. 'toparty':"", #需要改(部门id)
  67. 'msgtype':"text",
  68. 'agentid':"", #需要改
  69. 'text':{
  70. 'content':message
  71. },
  72. 'safe':""
  73. },ensure_ascii=False)
  74.  
  75. response = self.postData(data)
  76. print response
  77.  
  78. if __name__ == '__main__':
  79. a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
  80. a.sendMessage(sys.argv[1],sys.argv[3])

3.给脚本授权更改属性,并测试

  1. [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的信息
  1. [root@zabbix-server alertscripts]# ./weixin.py YangHaiLong test test
  2. {u'invaliduser': u'', u'errcode': , u'errmsg': u'ok'}

4.在zabbix网页设置报警媒介和动作

我这个动作只设了一个触发器的动作,监控80端口是否存在,不存在触发报警,执行动作,动作就是执行这个weixin.py脚本发送报警信息。

我关掉nginx服务 80端口消失,触发报警

  1. [root@zabbix-agent ~]# netstat -lntup|grep
  2. tcp 0.0.0.0: 0.0.0.0:* LISTEN /nginx: master
  3. tcp6 ::: :::* LISTEN /nginx: master

[root@zabbix-agent ~]# systemctl stop nginx
[root@zabbix-agent ~]# netstat -lntup|grep 80
[root@zabbix-agent ~]#

网页上的日志成功的。

我同时设置了恢复后的报警。

  1. [root@zabbix-agent ~]# systemctl start nginx
  2. [root@zabbix-agent ~]# netstat -lntup|grep
  3. tcp 0.0.0.0: 0.0.0.0:* LISTEN /nginx: master
  4. tcp6 ::: :::* LISTEN /nginx: master

ok 啦。

Centos7下zabbix部署(五)定义报警媒介-微信的更多相关文章

  1. Centos7下zabbix部署(四)定义报警媒介-邮件

    1.安装发送邮件工具mailx [root@zabbix-server ~]# yum install mailx -y 2.自定义使用163邮箱为默认发件人(避免被当作垃圾邮件) set from= ...

  2. Centos7下zabbix部署(三)自定义监控项

    引言 在前面的博客中我们介绍了zabbix自带的模板,并且完成了我们的一些比较常用的监控,现在我们如果想要监控我们磁盘的IO,这时候zabbix并没有给我们提供这么一个模板,所以我们需要自己来创建一个 ...

  3. zabbix报警媒介------>微信报警

    zabbix报警媒介------>微信报警 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入高级运维工程师之路:598432640 微信在我们的生活中使用的比较频繁,有 ...

  4. centos7 下zookeeper 部署 单机多实例模式

    centos7 下zookeeper 部署 本文参考https://www.linuxidc.com/Linux/2016-09/135052.htm 1.创建/usr/local/zookeeper ...

  5. centos7 下 安装部署nginx

    centos7 下 安装部署nginx 1.nginx安装依赖于三个包,注意安装顺序 a.SSL功能需要openssl库,直接通过yum安装: #yum install openssl b.gzip模 ...

  6. 记录centos7下tomcat部署war包过程

    记录centos7下tomcat部署war包过程 1.官网下载tomcat安装包.gz结尾的 2.上传到/usr/local/ ,并解压到tomcat目录下 3.进入tomcat/bin目录,运行./ ...

  7. CentOS7下单机部署RabbltMQ环境的操作记录

    一.RabbitMQ简单介绍在日常工作环境中,你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务 ...

  8. centos7安装ZABBIX 3.0+ 邮件报警【OK】

    设置主机名: vi /etc/hosts 10.0.0.252 zabbix-server hostnamectl set-hostname   关闭防火墙: systemctl stop firew ...

  9. Centos7下单机部署Solr7.3

    本章重点介绍CentOS7 下部署Solr7 ,添加核心Core配置,Dataimport导入,中文分词的相关操作. 一.准备工作     演示环境是在虚拟机下安装的CentOS7.java JDK8 ...

随机推荐

  1. Android 布局开发之百分比布局、弹性布局

    1.百分比布局 很简单,超级简单.引用之后就可以使用了. compile 'com.android.support:percent:23+' git地址: https://github.com/Jul ...

  2. Asp.net Core发布到CentOS7

    第一步.安装CentOS 官网https://www.centos.org/下载CentOS,下载地址https://www.centos.org/download/,我选的“DVD ISO”,然后虚 ...

  3. 发送广播重新挂载SD卡,使图库可以及时显示自己保存的图片(无需手机重启)

    我们或许经常会遇到这种情况,明明保存了图片,但是当你打开图片时,却没有找到这张图片,手机重启之后才能看到.这是因为SD卡并没有重新挂载,图库也无法把这张图片加载进去,解决这个问题非常简单,只需要我们模 ...

  4. 1004 Counting Leaves (30 分)(树的遍历)

    给出一棵树,问每一层各有多少叶子节点 dfs遍历树 #include<bits/stdc++.h> using namespace std; vector<]; int n,m; i ...

  5. 课时5:闲聊之Python的数据类型

    目录: 一.引言 二.数据类型 >整型 >浮点型 >布尔类型 三.类型转换 四.获得关于类型的信息 五.课时05课后习题及答案 *********** 一.引言 ********** ...

  6. Day2 Activity生命周期/启动模式/最佳实践

    Android是使用任务(Task)来管理活动的,这个栈被称作返回栈(Back Stack). Activity类中定义了7个回调方法: onCreate().在活动第一次被创建时调用,应该在这个方法 ...

  7. 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,在自动机中的状态 ...

  8. UVALive 4764 简单dp水题(也可以暴力求解)

    B - Bing it Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status ...

  9. 哈希URAL 1941 - Scary Martian Word

    A - Scary Martian Word Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I ...

  10. chrome浏览器console拓展用法

    chrome 浏览器console打印 使用CSS美化输出信息 console.log("%cThis will be formatted with large, blue text&quo ...