zabbix钉钉机器人告警
时间: 2023-09-02 07:10:43 浏览: 208
Zabbix钉钉机器人告警是通过配置Zabbix和钉钉机器人实现的。首先,需要在Zabbix中配置告警脚本路径,可以通过查看zabbix-server脚本存放的位置来确定路径。[3]然后,需要在钉钉机器人中配置消息内容,确保消息中包含"zabbix"字段。[2]最后,通过触发Zabbix的报警来测试配置结果,查看Zabbix是否正常进行报警。[1]根据脚本中的内容,Zabbix会按照配置的消息内容发送告警信息到钉钉机器人,实现了Zabbix钉钉报警的功能。
相关问题
zabbix钉钉机器人
### 配置 Zabbix 和钉钉机器人进行告警通知
#### 一、环境准备
为了实现 Zabbix 和钉钉机器人的集成,需确保以下条件已满足:
- 已成功安装并运行 Zabbix Server 和 Agent[^1]。
- 完成钉钉群聊中自定义机器人的创建,并获取 Webhook URL。
---
#### 二、配置 Zabbix_Server 的脚本路径
编辑 `zabbix_server.conf` 文件,找到 `AlertScriptsPath=` 字段,确认其指定的路径。如果未设置,则默认路径为 `/usr/lib/zabbix/alertscripts/` 或者 `/etc/zabbix/alertscripts/`[^2]。
执行命令如下:
```bash
vim /etc/zabbix/zabbix_server.conf
```
修改或添加以下内容:
```conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts/
```
保存退出后重启 Zabbix Server 生效更改:
```bash
systemctl restart zabbix-server
```
---
#### 三、编写钉钉告警脚本
在上述路径下新建 Python 脚本文件用于发送消息至钉钉机器人:
进入目录:
```bash
cd /usr/lib/zabbix/alertscripts/
```
创建名为 `dingtalk.py` 的脚本文件:
```python
#!/usr/bin/env python3
import sys
import requests
import json
def send_message(webhook, subject, message):
headers = {'Content-Type': 'application/json;charset=utf-8'}
data = {
"msgtype": "text",
"text": {
"content": f"{subject}\n{message}"
}
}
response = requests.post(
webhook,
data=json.dumps(data),
headers=headers
)
if response.status_code != 200:
print(f"Failed to send alert: {response.text}")
if __name__ == "__main__":
webhook_url = sys.argv[1]
subject = sys.argv[2]
body = sys.argv[3]
send_message(webhook_url, subject, body)
```
赋予可执行权限:
```bash
chmod +x dingtalk.py
```
---
#### 四、配置 Media Type
登录 Zabbix Web 界面完成以下操作:
1. **导航到管理页面**
- 前往菜单栏中的 “Administration” -> “Media Types”。
2. **新增媒体类型**
- 单击右上角的 “Create media type”,填写以下参数:
- 名称:DingTalk
- 类型:Script
- Script name:dingtalk.py
- 参数顺序依次为:
- `{ALERT.SENDTO}` (Webhook 地址)
- `{ALERT.SUBJECT}`
- `{ALERT.MESSAGE}`
---
#### 五、关联用户与动作
1. **配置用户媒介**
- 导航到 “Users” 页面,选择目标用户的 Profile。
- 添加新的 Medium 并选择刚刚创建的 DingTalk 媒体类型。
- 在 Send To 中填入钉钉机器人的 Webhook URL。
2. **设定触发器动作**
- 访问 “Configuration” -> “Actions”。
- 创建新 Action,在 Conditions 设置触发事件规则。
- Operation 下选择发送通知给对应用户。
---
#### 六、验证功能
模拟触发告警测试整个流程是否正常工作。可以通过手动调整主机状态或者生成错误日志来检验实际效果。
---
zabbix 钉钉shell告警脚本
Zabbix 是一款开源的企业级监控软件。在 Zabbix 中,可以设置各种告警方式,其中包括钉钉告警。本文将介绍如何编写钉钉的 Shell 告警脚本。
首先,我们需要在钉钉中创建一个机器人。在钉钉群中,点击右上角的设置按钮,选择机器人管理,然后点击创建机器人。选择自定义机器人,设置机器人名称和头像,然后复制 Webhook 地址。
接下来,我们需要编写 Shell 脚本。可以使用任何编辑器,比如 vim,nano 或者 gedit。以下是一个简单的 Shell 脚本示例:
```bash
#!/bin/bash
# 钉钉机器人 webhook 地址
url="https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXX"
# 消息内容
message="$1"
# 发送 POST 请求
curl -H "Content-Type: application/json" -X POST -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$message\"}}" $url
```
在脚本中,首先设置了钉钉机器人的 Webhook 地址。然后获取了消息内容,该内容作为脚本的第一个参数传入。最后,使用 curl 命令发送 POST 请求,将消息内容作为 JSON 格式发送给钉钉机器人。
现在,将脚本保存为 dingding.sh,并将其放置在 Zabbix 的 alertscripts 目录中。该目录通常位于 /usr/lib/zabbix/alertscripts。然后,将脚本的权限设置为可执行:
```bash
chmod +x /usr/lib/zabbix/alertscripts/dingding.sh
```
接下来,在 Zabbix 中创建一个新的媒介类型。在 Zabbix 管理界面中,选择 Administration -> Media types。然后点击 Create media type 按钮。
在弹出窗口中,输入以下信息:
- Name: 钉钉告警
- Type: Script
- Script name: dingding.sh
- Script parameters: {ALERT.MESSAGE}
然后点击 Add 按钮进行保存。
最后,在 Zabbix 的告警动作中,选择钉钉告警媒介类型,并将钉钉机器人 Webhook 地址作为参数传入。现在,当 Zabbix 监控出现问题时,将会通过钉钉机器人发送告警消息。
阅读全文
相关推荐













