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配置钉钉告警发送动作(Aciton):
8、在"Create Action"页面中,为动作指定一个名称,并将其触发条件设置为需要的值。在"Operations"选项卡中,单击"New"按钮。
9、在"Operation details"页面中,为操作指定一个名称,并选择先前创建的媒介类型。在"Send to"字段中,输入钉钉机器人的Webhook地址。
10、单击"Add"按钮以保存操作,然后单击"Add"按钮以保存动作。
11、确保在Zabbix服务器上安装了所需的依赖项,并将 /usr/lib/zabbix/alertscripts/ dingdingduoren.py脚本设置为可执行。