码迷,mamicode.com
首页 > 微信 > 详细

zabbix4添加配置微信报警通知

时间:2020-01-01 09:17:15      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:param   weixin   scripts   安装python   主机   mode   user   注册   icc   

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

  • 申请企业微信号
    1). 申请好后需记录几项重要信息,后面zabbix server端监控脚本需使用到。
    登录网页 - 我的企业 - 企业ID:
    2). 创建应用
    登录网页 - 应用管理 - 应用 - 创建应用
    技术图片
    记录并获取到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企业微信上收到此消息,如下图:
    技术图片

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

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

    故障{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}

    配置 ----> 动作 ----> 恢复
    技术图片
    默认标题:

    恢复{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分钟查收能收到微信告警。
    技术图片
    5). 使用普通微信接受消息设置
    直接用微信扫码关注微工作台,即可在微信中接收企业通知和使用企业应用。
    方法:登录企业微信管理页面 - 我的企业 - 微工作台 - 邀请关注的二维码
    关注后即可收取。

zabbix4添加配置微信报警通知

标签:param   weixin   scripts   安装python   主机   mode   user   注册   icc   

原文地址:https://blog.51cto.com/10874766/2463464

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!