Zabbix配置钉钉机器人告警方法

将Zabbix配置为使用钉钉机器人接收告警信息。

配置步骤:

1、在钉钉中创建一个自定义机器人,获取到机器人的Webhook地址,这是接收告警信息的URL。

2、在Zabbix中创建一个媒介类型,用于发送告警信息到钉钉机器人。在Zabbix中,转到“Administration” > “Media Types”并单击“Create Media Type”按钮。

3、在“Create Media Type”页面中,为媒介类型指定一个名称,例如“DingTalk Bot”。在“Type”下拉菜单中,选择“Script”。

4、在“Script parameters”下面的“Script name”字段中,输入路径为/usr/lib/zabbix/alertscripts/dingdingduoren.py,这是一个将告警信息发送到钉钉机器人的脚本。

#!/usr/bin/env python3
#
# dingtalk.py: Script for sending Zabbix alerts to DingTalk.
#
# Usage: ./dingtalk.py  
#
# Required environment variables:
#   DINGTALK_ROBOT_URL: the webhook URL of your DingTalk robot
#   DINGTALK_ACCESS_TOKEN: the access token of your DingTalk group
#
# The script expects two arguments:
#   - : the message to send
#   - : the severity level (OK, WARNING, or PROBLEM)
#

import os
import sys
import json
import requests

if len(sys.argv) < 3:
    print(f"Usage: {sys.argv[0]}  ")
    sys.exit(1)

message = sys.argv[1]
severity = sys.argv[2]

# Map Zabbix severity to DingTalk message type
if severity == "OK":
    msgtype = "text"
else:
    msgtype = "markdown"

# Build the DingTalk message payload
payload = {
    msgtype: {
        "title": f"Zabbix Alert - {severity}",
        "text": message,
    },
}

# Send the message using requests library
robot_url = os.environ.get("DINGTALK_ROBOT_URL")
access_token = os.environ.get("DINGTALK_ACCESS_TOKEN")
url = f"{robot_url}&access_token={access_token}"
headers = {"Content-Type": "application/json"}
response = requests.post(url, headers=headers, data=json.dumps(payload))

if response.status_code != 200:
    print(f"Failed to send message: {response.status_code} {response.text}")
    sys.exit(1)

这个 Python 脚本使用 requests 库发送 HTTP POST 请求,构建了与原始脚本相同的 JSON 消息负载,并使用环境变量存储钉钉机器人 webhook 地址和群组 access token。你可以将此脚本保存为 /usr/lib/zabbix/alertscripts/dingdingduoren.py 并对其进行必要的更改,以确保它与你的环境和钉钉机器人配置一致。

5、在“Script parameters”下面的“Script parameters”字段中,输入以下内容:

{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}

6、单击“Add”按钮以保存媒介类型。

7、在Zabbix中创建一个动作,以使用钉钉机器人发送告警信息。在Zabbix中,转到“Configuration” > “Actions”并单击“Create Action”按钮。

配置Action

8、在“Create Action”页面中,为动作指定一个名称,并将其触发条件设置为需要的值。在“Operations”选项卡中,单击“New”按钮。

9、在“Operation details”页面中,为操作指定一个名称,并选择先前创建的媒介类型。在“Send to”字段中,输入钉钉机器人的Webhook地址。

10、单击“Add”按钮以保存操作,然后单击“Add”按钮以保存动作。

11、确保在Zabbix服务器上安装了所需的依赖项,并将/usr/lib/zabbix/alertscripts/dingdingduoren.py脚本设置为可执行。

展开阅读全文

页面更新:2024-03-13

标签:机器人   字段   媒介   单击   按钮   名称   动作   类型   页面   方法   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top