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

一、准备工作

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

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

个人微信一个

个人邮箱一个

手机短信能收到

个人微信绑定了银行卡

二、申请公众号:

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

9bc4a688f928bd8e4ae7de1c9ea8a8ac.png

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

b1f5650e8e709d5a2f8f788af6f67a4c.png

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

ad788e11f7c9a632a991fb1aa30c50cf.png

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

9efd5a69f23d39edbf6e82243755479c.png

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

e7c011d59d99aaf40c3c98c5cca98c9e.png

6.选择部门

ace7f8942e721bee80559dfa3c31576c.png

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

e277592d37170c7b7a63e0797df61fb4.png

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

093fae2b95a0ef2029be0457221e5773.png

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,增加如下参数,添加媒介:

7b9003e757aa0d095dc3aa47d3afc022.png

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

b12a165505cf7904c6bd7f88a08228ba.png

b409d9c40eaf6b22b96feff9b7897b15.png

27f1130b9cc8d0bb9c83b20f0df76476.png

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

eab76f1cdff13049edff9c3f014fd590.png

a3f43fa48006b63e7cf7161c9cb90150.png

d21731e6a9672ae010ad3e69e02e2cbc.png

2ac437c8cbb81946fe48e46f196e6398.png

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

ae2c3e54af6992e2c0aba84ae03c6246.png

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

23836ca8969a59377e77680ade6b65c9.png0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值