一、准备工作

申请微信公众号,并且是可以有发送消息的接口。添加有个脚本去调用微信的api。

之后可以参考下zabbix 的搭建,然后了解下脚本报警,之后再考虑报警方式的多样化。

个人微信一个

个人邮箱一个

手机短信能收到

个人微信绑定了银行卡

二、申请公众号:

1.申请页面:https://mp.weixin.qq.com/cgi-bin/readtemplate?t=register/step1_tmpl&lang=zh_CN

2.申请时申请企业好-选择团队。

3.在组织架构中,新建二级组,并添加相关人员,注意添加人员的账号要记清楚。后期zabbix发送邮件时需要填写用户名(也可以填写@all发送给所有的人)

4.这里有个组的ID:2,这个很重要(记得用360或者IE浏览器,谷歌浏览器不兼容,看不到ID)

5.新建应用,应用类型选择消息型

6.选择部门

7.下面是我新建的应用权限。

8.现在去设置-->功能设置-->权限管理,最重要的是CorpID,Secret 两个密钥,后期脚本里会利用它俩生成一个token ,然后利用token 去发送消息,具体参见微信接口文档:http://qydev.weixin.qq.com/debug

9.下面是微信的脚本

将weixin.py放到/usr/lib/zabbix/alertscripts目录下

cd /usr/lib/zabbix/alertscripts/weixin.py

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 = 'wxd48c194d03788447'

self.__secret = 'uFwN-C6lgkA131mlQn96TF28dq5DzH2QpKvT1gEZvogTZQCmEP8VSWAyTXI3iYlT'

# 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 response

if __name__ == '__main__':

a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')

a.sendMessage(sys.argv[1],sys.argv[3])

注意:需要修改4处:

1.14行、15行

2.65行、67行

说明下,67行是你的组部门id号,agentid是你应用id号。。。。 记得修改脚本权限,属主,放到和/usr/local/zabbix/scripts/目录下。

记得增加脚本执行权限,并修改所属组

chmod +x /usr/lib/zabbix/alertscripts/weixin.py

chown zabbix.zabbix /usr/lib/zabbix/alertscripts/weixin.py

测试,如果正常微信会收到test的提醒消息

./weixin.py hanyifeng test test

{u'errcode': 0, u'errmsg': u'ok'}

四、配置微信报警

脚本编辑好后,在zabbix 登陆界面进行设置。

注意:zabbix 3.0 需要在为alert脚本定义参数,以前的版本参数都固定的,现在用户可以自己定义命令行的参数了。添加的参数也就是脚本中的$1、$2、$3等。

添加方法:Administration-->Media types,增加如下参数,添加媒介:

添加完成后,需要关联到报警用户Administration-->Users-->Media-->add

添加动作,触发条件后报警后发送微信消息。Configuration-->Actions-Event source(Triggers)-Create action-

也可以对消息适当精简,如下

下面把192.168.3.87这台主机的zabbix-agent服务关掉:servier zabbix-agent stop。看下你的微信吧

linux 微信告警消息secret,Zabbix3.0.4微信告警配置详解相关推荐

  1. vue-cli3.0使用及部分配置详解

    1.检测安装   vue-V 2.创建项目命令:(官网) 3.简单的配置信息 这里如果你是第一次用3.0版本的话,是没有前两个的,而只有最后两个,这里是 让你选的,第一个是默认配置,一般选第二个,自己 ...

  2. CCS6.2.0 工程创建以及配置详解

    当我们已经安装好CCS6.2.0后,想要进行创建项目工程并将程序下载到单片机上的时候还需要其他两个文件:程序库安装包.LaunchPad驱动程序,需要的可以直接点击下方链接进行下载: 库安装包:Tiv ...

  3. Linux安装消息队列IBM MQ 7.5开发版安装配置详解

    消息队列IBM MQ 7.5开发版安装配置详解 文章目录 消息队列IBM MQ 7.5开发版安装配置详解 前言 一.什么是IBM MQ? 二.安装前准备 1.安装前准备 2.安装MQ Server 3 ...

  4. 企业微信与个人微信实现消息互通,用企业微信连接10亿客户

    企业微信是免费使用的,是腾讯2016年推出的战略级产品,是一款对内也可以对外沟通的即时通讯和办公软件.企业微信与个人微信实现消息互通,用企业微信连接10亿客户,让工作更高效,让聊天更愉悦!企业微信继承 ...

  5. Linux Kernel 6.0 CXL Core pci.c 详解

    文章目录 前言 相关链接 Ref 正文 前言 CXL 是一个比较新的技术,所以我研究的内核源码是选了当前比较新的内核版本 linux 6.0.打算将内核关于 CXL 的驱动进行解析一遍,一步一步慢慢来 ...

  6. Linux进程最大socket数,Linux下高并发socket最大连接数所受的各种限制(详解)

    1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每 ...

  7. Android 8.0学习(32)---Android 8.0源码目录结构详解

    Android 8.0源码目录结构详解 android的移植按如下流程:     (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来.     (2)正确挂载文件系统 ...

  8. nginx1.0安装配置详解

    nginx1.0安装配置详解 本文转自:twenty_four的博文,自己稍作精简修改. http://twentyfour.blog.51cto.com/945260/568906 1.选择Ngin ...

  9. vue-cli3.0配置详解

    这次给大家带来vue-cli3.0配置详解,使用vue-cli3.0配置的注意事项有哪些,下面就是实战案例,一起来看一下. 新建项目 1 2 3 4 5 6 7 8 # 安装 npm install ...

最新文章

  1. 解读目标检测新范式:Segmentations is All You Need
  2. PHP中单引号和双引号的区别
  3. vhdl变量赋初值_5.5 C++自动变量
  4. Java Map集合
  5. 我的MySQL数据库学习笔记
  6. 6月6号=》80页-100页
  7. php igbinary_php_igbinary.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  8. java做h5小游戏服务端_神藏西游H5游戏源码服务端+客户端+搭建教程
  9. web安全day11:进一步学习windows域的gpo
  10. 哪种修复redis未授权访问漏洞的方法是相对不安全的_redis漏洞复现
  11. 制药企业常用质量管理软件TrackWise概述
  12. 仿CAD画椭圆弧步骤思路(附加代码)
  13. ModelSim 与Debussy联调
  14. 非监督特征学习与深度学习(十四)--------循环神经网络
  15. 是非人生 — 一个菜鸟程序员的5年职场路 第21节
  16. SQL查询选修了全部课程的学生姓名解析
  17. P1 | reference spur of SFB-PLL (JSSC-2013)
  18. 亚马逊新专利曝光,让机器人学会自己开锁并将包裹送入你的家中
  19. Java空白字符和空白符号的区别
  20. hiho232周 拆字游戏

热门文章

  1. java单元测试自动生成测试用例插件diffblue cover和evosuite
  2. java 10个随机数排序_java随机数排序的问题
  3. 飞行棋小游戏 C#编程记录
  4. 2021-06-03:布尔运算。给定一个布尔表达式和一个期望的布尔结果 result,布尔表达式由 0 (false)、1 (true)、 (AND)、 | (OR) 和 ^ (XOR) 符号组成。
  5. 高中信息技术知识点归纳总结
  6. 自定义 SAP 采购订单屏幕
  7. 用Eclipse开发Jsp
  8. 群晖笔记一:使用Hyper Backup在多个硬盘间备份重要资料
  9. Python分布式爬虫框架Scrapy实战
  10. 解决边缘锯齿问题的方法