zabbix微信监控

1.登陆https://work.weixin.qq.com/, 注册企业号

https://work.weixin.qq.com/wework_admin/frame#apps/modApiApp/5629499919461682

注册成功后点击我的企业查看企业号后面需要修改参数

企业ID ww93502bd6021dc3ed

2.创建应用

 

 

注意可见范围写上 如果部门没有创建 后面创建完后在修改一下

创建完记录应用信息

 

AgentId 1000002
Secret FX7M7CumF_XY-ORhS1FXwyPLKeeWw9lANXLNsozRqIc

 

添加部门 zabbix-webchat-01

 

 部门id为2后面要用到

 

 

把创建的成员加到新建的部门里面

 

mkdir /usr/lib/zabbix/alertscripts/

chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts/

chmod -R 755 /usr/lib/zabbix/alertscripts/

 vi /usr/lib/zabbix/alertscripts/wechat_alert.py #注意路径如果发送不成功可以写完放置到正确的位置

#!/usr/bin/python
# -*- coding: utf-8 -*-

#Author:loong576
#Alert for wechat
#Version:1.0

import requests
import json
import sys


def Get_Token(Corpid,Secret):
    url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
    values = {
        "corpid":Corpid,                           #企业Id,对应'CorpID'
        "corpsecret":Secret                        #新建应用对应'Secret'
    }
    req = requests.post(url, params=values)
    data = json.loads(req.text)
    Token = data["access_token"]
    return Token


def Send_Message(Token,Toparty,Agentid,Content):
    url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
    data = {
            #"touser": Touser,                    #成员ID列表,指定为@all,则向关注该企业应用的全部成员发送,对应通讯录'账号'字段
            "toparty": Toparty,                   #部门ID列表,对应部门的'部门ID'字段
            "msgtype": "text",                    #消息类型,该字段非空
            "agentid": Agentid,                   #企业应用的id,整型,非空,对应新建应用的'AgentId'
            "text": {
                    "content":Content             #消息内容,非空
                    },
            "safe":"0"                            #表示是否是保密消息,0表示否,1表示是,默认0
            }
    res = requests.post(url,json=data)
    return res.text



if __name__ == '__main__':
    #Touser = sys.argv[1]
    Toparty = sys.argv[1]                         #web前端传过来的部门id
    Content = sys.argv[2]                         #web前端传过来的告警内容
    Corpid = "ww93502bd6021dc3ed"
    Secret = "FX7M7CumF_XY-ORhS1FXwyPLKeeWw9lANXLNsozRqIc"
    Agentid = "1000002"

    Token = Get_Token(Corpid,Secret)
    print Get_Token(Corpid,Secret)
    print Send_Message(Token,Toparty,Agentid,Content)
View Code

也可以克隆到本地然后拷贝过去记得修改配置文件只修改三处就可以

 

git clone https://github.com/loong576/Wechat-Alert-for-Zabbix.git

 

requests库安装:

[root@zabbix-server ~]# yum -y install epel-release
[root@zabbix-server ~]# yum -y install python-pip
[root@zabbix-server ~]# pip install --upgrade pip
[root@zabbix-server ~]# pip install requests
 

requests模块可以直接用get(), post(),put(), delete(), head() ,options(),方法对url操作。

 web端设置创建报警媒介

{ALERT.SENDTO}
{ALERT.MESSAGE}

webchat-alert

wechat_alert.py

 

 2创建wenxin群组和给予权限

 把两个需要查看的群组添加进去

 

 

 

在微信群组中创建微信用户

 

 

创建动作

 

 

 操作中添加

确保是动作是启动状态

然后可以关闭一台被监控主机在报表和手机上等待结果

手动测试脚本 2为部门号

/usr/lib/zabbix/alertscripts/wechat_alert.py 2 哈哈测试234

也可以这样测试

 

/usr/lib/zabbix/alertscripts/wechat_alert.py ZhangShaoLong buxingma

 

参考资料

http://blog.51cto.com/3241766/2108769

自定义端口监控

http://blog.51cto.com/3241766/2117521

posted @ 2019-01-05 18:48  夜辰雪扬  阅读(1019)  评论(0)    收藏  举报