您的位置:首页 > 移动开发 > 微信开发

[置顶] zabbix系列(一)zabbix3.0.7微信告警配置详解

2017-09-07 12:57 561 查看
大家好,写下这篇文章是为了记录自己学习zabbix的路程!也能帮助各位同学们少走一点冤枉路!接下面我会在空闲时间把这一段时间的经验一点一点写出来,中间上下系列章节没有直接关联。

一、准备工作
申请微信公众号,并且是可以有发送消息的接口。添加有个脚本去调用微信的api。之后可以参考下zabbix的搭建,然后了解下脚本报警,之后再考虑报警方式的多样化。

 

二、申请企业微信:

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



选择企业微信
 


选择组织,并点击没有组织机构代码证,继续注册

 


填写组织名称



后续下一步下一步注册成功后进入企业微信管理后台



首先创建部门



再添加人员



完成人员添加后



 
创建应用
 


应用创建完成后



 
就可以看到agentid和secret
在我的企业中查看企业ID,CorpID

 




agentid、secret、CorpID下面在python脚本中会用到,这是接口的参数
 
 
9.下面是微信的脚本
将weixin.py放到/usr/lib/zabbix/alertscripts目录下,zabbix
server服务器的python3.5.1安装请查看 http://blog.csdn.net/wu2700222/article/details/77879935
 
cd /usr/lib/zabbix/alertscripts/weixin.py
cat weixin.py
 
#!/usr/local/bin/python3.5

# -*- coding:utf-8 -*-
import urllib.request
import json
import sys
import logging

touser = '@all'
agentid = 1000002
corpid = 'ww9964dcc49bb6a91a'
corpsecret = 'c2hhtBvOqSAS9FZE4UDbXGgJKevnJrH1fdz6O_IS09c'
url = 'https://qyapi.weixin.qq.com'
subject = sys.argv[1]

message = sys.argv[2]

'''logging.basicConfig(level=logging.DEBUG,filename='d:\Python_project\Scripts\my.log',

                    format='%(asctime)s -%(levelname)s: %(message)s')

                    '''

class
Weixin:

    def __init__(self, url, corpid,corpsecret):

        token_url = '%s/cgi-bin/gettoken?corpid=%s&corpsecret=%s'% (url, corpid, corpsecret)

        self.token= json.loads(urllib.request.urlopen(token_url).read().decode())['access_token']

    def send_message(self, url, data):

        send_url = '%s/cgi-bin/message/send?access_token=%s'% (url,self.token)

        self.respone= urllib.request.urlopen(urllib.request.Request(url=send_url,data=data)).read()

        x = json.loads(self.respone.decode())['errcode']

        if x ==
0:

            logging.debug('Successfully %s    %s'% (subject, message))

            return 'Succesfully'

        else
:

            logging.debug('Failed %s    %s'
% (subject, message))

            return 'Failed'

    def
messages(self, subject, message):

        values = {

            "touser": touser,

            "msgtype": 'text',

            "agentid": agentid,

            "text": {'content': subject +'\n\n'+message},

            "safe":
0

        }

        return self.send_message(url,bytes(json.dumps(values),'utf-8'))

if __name__ == '__main__':

    obj = Weixin(url, corpid, corpsecret)

    ret = obj.messages(subject, message)

    print(ret)
 
说明下,agentid 是应用ID、secret是应用密钥、CorpID是企业ID。。。。记得修改脚本权限,属主,放到和/usr/local/zabbix/scripts/目录下。
记得增加脚本执行权限,并修改所属组
chmod +x /usr/lib/zabbix/alertscripts/weixin.py

chown zabbix.zabbix/usr/lib/zabbix/alertscripts/weixin.py
 
测试,如果正常微信会收到微信的提醒消息



./weixin.py 12 12

 


 
接下面配置zabbix
创建报警类型
{ALERT.SUBJECT}
{ALERT.MESSAGE}



 
再创建动作

 


然后就能收到zabbix的消息提醒了,可以测试一下,比如重启某个被监控

测试的oracle数据库服务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: