欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何在Zabbix 6中设置企业微信告警?

最编程 2024-08-02 15:43:26
...

1.申请企业微信机器人

建企业微信群-添加机器人-新创建一个机器人-机器人名称-复制webhook信息

 2.编写脚本

zabbix_server.conf添加配置:AlertScriptsPath=/usr/lib/zabbix/alertscripts

注意:执行权限

#!/usr/bin/python3
# _*_coding:utf-8 _*_
"""
企业微信机器人
"""

import sys
import requests


def send_message(web_hook_url, subject, content):
    data = {
        "msgtype": "markdown",
        "markdown": {
            "content": "{0}\n{1}".format(subject, content)
        }
    }
    try:
        r = requests.post(web_hook_url, json=data)
        response = r.json()
        errcode = response["errcode"]
        if errcode != 0:
            print("errcode: {0}, errmsg: {1}".format(errcode, response["errmsg"]))
            sys.exit(errcode)
    except Exception as e:
        print(e)
        sys.exit(1)


def main():
    if len(sys.argv) < 3:
        print("3 parameters are required: web_hook_url, subject, content")
        sys.exit(1)       
    web_hook_url = sys.argv[1]
    subject = sys.argv[2]
    content = sys.argv[3]

    # user = "name.tong"
    # user = "18512345678"
    # content = "测试通知4"
    web_hook_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=***'
    send_message(web_hook_url, subject, content)


if __name__ == '__main__':
    main()
View Code

3.管理-报警媒介类型-创建媒体类型

名称:*** 类型:脚本 脚本名称:实际名称 

脚本参数:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

 4.管理-用户-admin用户(可以创建个用户)-报警媒介-添加

5.配置-动作-Trigger actions-创建动作

 操作:

主题:`【告警通知】:`发生告警

消息:

>**{TRIGGER.NAME}**
>告警时间: {EVENT.DATE} {EVENT.TIME}
告警主机:{HOST.NAME}
告警主机IP:[{HOST.IP}]({HOST.IP})
当前值:{ITEM.LASTVALUE}
**{EVENT.STATUS}**

操作细节:

主题:<font color="info">【恢复通知】:</font>告警已恢复

>**{TRIGGER.NAME}**
>告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
告警主机:{HOST.NAME}
告警主机IP:[{HOST.IP}]({HOST.IP})
告警时长:{EVENT.AGE}
当前值:{ITEM.LASTVALUE}
**{EVENT.STATUS}**

更新操作:

主题:Updated problem: {EVENT.NAME}

消息:

{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
{EVENT.UPDATE.MESSAGE}

Current problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.

参考官网:18 脚本监控项 (zabbix.com)

原文地址:https://www.cnblogs.com/aroin/p/16112692.html