zabbix4添加配置微信报警通知

孤人 提交于 2020-01-01 02:29:32

微信告警首先注册一个企业微信,才能实现微信告警。注册地址:https://work.weixin.qq.com/

  • 申请企业微信号
    1). 申请好后需记录几项重要信息,后面zabbix server端监控脚本需使用到。
    登录网页 - 我的企业 - 企业ID:
    2). 创建应用
    登录网页 - 应用管理 - 应用 - 创建应用
    zabbix4添加配置微信报警通知
    记录并获取到AgentId、Secret
    AgentId:xxxxx
    Secret:xxxxx
    3). 添加通讯录
    登录网页 - 通讯录 - 添加成员
    添加后才可收取到信息。
  • zabbix server端配置
    1). 安装依赖
    这里使用python作为监控脚本,zabbix sever服务器上需安装python依赖。
    yum install -y python-requests

    2). 配置python脚本
    zabbix sever服务器上默认监控脚本目录上创建wechat.py。
    cd /usr/lib/zabbix/alertscripts
    vim wechat.py

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    #author: Yu
    import requests
    import sys
    import os
    import json
    import logging
    # config for log
    logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
                datefmt = '%a, %d %b %Y %H:%M:%S',
                filename = os.path.join('/usr/lib/zabbix/alertscripts','weixin.log'),
                filemode = 'a')
    # Company ID
    corpid='xxxxxxx'
    # secret
    appsecret='xxxxxxxx'
    # AgentId
    agentid=xxxxxxx
    #Accesstoken
    token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
    req=requests.get(token_url)
    accesstoken=req.json()['access_token']
    # Message send
    msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
    touser=sys.argv[1]
    subject=sys.argv[2]
    #toparty='3|4|5|6'
    message=sys.argv[3]
    params={
        "touser": touser,
    #       "toparty": toparty,
        "msgtype": "text",
        "agentid": agentid,
        "text": {
                "content": message
        },
        "safe":0
    }
    req=requests.post(msgsend_url, data=json.dumps(params))
    logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

    记得给文件赋权
    chown zabbix.zabbix weixin
    chmod 755 weixin
    3). 测试
    运行weixin.py脚本

    /usr/lib/zabbix/alertscripts/weixin.py name "title test" "hello"

    name:收件人账号(登录企业微信网站 - 通讯录 - 打开某个收件人 - 账号)
    title test:标题
    hello:具体需要发送的内容
    如果没有错误的话,收件人将可在手机APP企业微信上收到此消息,如下图:
    zabbix4添加配置微信报警通知

  • Zabbix Server Web端开启微信告警
    1). 添加告警媒介
    管理 ----> 报警媒介类型 -----> 创建媒介类型
    zabbix4添加配置微信报警通知
    添加三个脚本参数:
    {ALERT.SENDTO}
    {ALERT.SUBJECT}
    {ALERT.MESSAGE}

    脚本名称必须跟zabbix server上配置/usr/lib/zabbix/alertscripts的脚本名称一样。
    2). 创建用户,添加报警媒介
    管理 ----> 用户
    zabbix4添加配置微信报警通知
    注:收件人填写企业微信中通讯录成员帐号,这里打算使用微信关联公众号收取报警通知信息。
    3). 创建触发器动作
    配置 ----> 动作 ----> 动作
    zabbix4添加配置微信报警通知
    创建邮件发送动作,配置触发条件:触发器示警度 大于等于 警告
    配置 ----> 动作 ----> 操作
    zabbix4添加配置微信报警通知
    默认标题:

    故障{TRIGGER.STATUS},服务器名:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

    消息内容:

    告警主机:{HOSTNAME}
    告警主机IP地址:{HOST.IP}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}

    配置 ----> 动作 ----> 恢复
    zabbix4添加配置微信报警通知
    默认标题:

    恢复{TRIGGER.STATUS}, 服务器名:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

    消息内容:

    告警主机:{HOSTNAME}
    告警主机IP地址:{HOST.IP}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}

    4). 模拟测试微信收取告警通知
    将新某台被监控主机zabbix agent服务关闭,稍等5分钟查收能收到微信告警。
    zabbix4添加配置微信报警通知
    5). 使用普通微信接受消息设置
    直接用微信扫码关注微工作台,即可在微信中接收企业通知和使用企业应用。
    方法:登录企业微信管理页面 - 我的企业 - 微工作台 - 邀请关注的二维码
    关注后即可收取。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!