一、微信机器人

1、在企业微信中新建微信群,群内创建自定义机器人,并复制webhook地址;

2、如果常用企业微信即可不必进行后续:

浏览器进入企业微信管理后台,选择我的企业---微信插件,可用个人微信扫描该二维码,关注后个人微信即可收取该企业微信群内机器人发的消息。

图片

实现效果:个人微信中会有一块单独的位置类似订阅号一样,在个人微信中收看企业微信消息:

图片

综上,此时我们应该有一个企业微信群,群内创建了自定义机器人,并复制了机器人webhook地址。

二、zabbix服务器配置:


#!/usr/bin/python3
# -*- coding
: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type'
: 'application/json;charset=utf-8'}
def msg(text):
    json_text = {
        "msgtype"
: "text",
        "text": {
            "content": text,
            "mentioned mobile list": ["XXXX"]    #在群内告警时@的对象
        }
    }
    print(requests.post(api_url, json.dumps(json_text), headers=headers).content)


if __name__ == '__main__':
    headers = {'Content-Type': 'application/json;charset=utf-8'}
    api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXX"    #webhook地址
    text = sys.argv[1]
    msg(text)

将上面脚本放在zabbix服务器/usr/lib/zabbix/alertscripts/ 目录下,新建py文件,自行命名,如wechat.py,并使用chmod 赋予脚本执行权限;

三、zabbix web端配置

新增报警媒介:名称自定义,类型选脚本,脚本名称需和上一步/usr/lib/zabbix/alertscripts/ 目录下的文件名一致,参数填如下消息内容参数即可:

{ALERT.MESSAGE} #消息内容

图片

添加后可测试新建的微信媒介运行是否正常,脚本是否报错等,一般会有没有requests库的提示,在服务端安装下即可。

定义告警内容:即新建动作:

添加触发器动作:选择需要通知告警内容的组和用户后,定义告警内容:

故障告警:{EVENT.NAME}

服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}

图片

定义故障恢复后群内同步消息内容:


服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!

服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障已恢复!
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}

图片

最后配置用户报警媒介:

类型选择刚才创建的企业微信告警媒介,收件人填写机器人所在群成员的任何可以作为关键信息的内容,例如群名称、成员名称、成员手机号等,启用时段和告警程度按照需求选择,然后启用添加即可

图片

---------------配置完成-----------------

Copyright © https://yan-jian.com 2023 all right reserved更新时间: 2024-02-06 10:02:11

results matching ""

    No results matching ""