zabbix7 钉钉电话告警
时间: 2025-04-09 15:00:52 浏览: 47
<think>好的,我需要帮助用户在Zabbix 7中配置钉钉的电话告警通知。首先,我得回顾一下之前提供的引用内容,看看有哪些已有的信息可以利用。
根据引用[1]和[2],用户之前配置过钉钉的脚本告警,路径在/usr/lib/zabbix/alertscripts,并且已经设置了AlertScriptsPath。这说明用户可能对基本的钉钉告警配置有一定了解,但现在是需要电话告警,而不仅仅是消息通知。
首先,钉钉的电话告警功能可能不同于普通的机器人消息。普通的钉钉机器人通常通过Webhook发送消息,但电话通知可能需要调用不同的API,或者需要企业权限。根据钉钉的文档,电话通知属于更高级的功能,可能需要审批或开通权限。用户需要确认自己的钉钉企业是否具备电话通知的权限。
然后,创建告警脚本。引用[1]和[4]提到了dingding.py和dingding-webhook.py脚本的例子,但电话告警可能需要不同的参数。例如,钉钉的电话API可能需要指定被叫人的手机号和内容。因此,用户需要编写一个新的脚本,比如dingding_call.py,使用钉钉的API发起电话呼叫。这个脚本可能需要接收告警消息、接收人手机号等参数。
接下来,配置Zabbix的媒介类型。引用[2]提到在Zabbix的Web界面设置报警媒介类型,添加参数。对于电话告警,可能需要传递接收人的手机号作为参数,比如{ALERT.SENDTO}。同时,脚本需要处理这些参数,调用钉钉的API。
然后,用户权限和脚本权限的问题。引用[4]提到要给脚本添加执行权限,并设置正确的所有者。同样,新脚本dingding_call.py需要chmod +x,并属于zabbix用户,确保Zabbix服务能执行。
此外,测试脚本是否正常工作。用户需要手动运行脚本,传入参数,检查是否能够成功触发电话呼叫。例如:./dingding_call.py "报警内容" "13800138000"。根据钉钉API的要求,可能还需要access_token或其他认证信息,需要在脚本中配置。
还有,Zabbix的动作配置。用户需要创建动作,定义触发条件,并关联到电话告警的媒介类型。确保在动作中指定正确的接收人手机号,可能需要用户媒介里设置手机号。
最后,可能遇到的问题:钉钉API的调用限制、权限问题、参数传递错误等。需要检查日志,如/var/log/zabbix/zabbix_dingtalk.log,引用[4]提到了日志文件的权限设置。
总结步骤:确认权限→编写电话告警脚本→配置媒介类型→设置用户接收方式→配置动作→测试。</think>### 逐步说明:Zabbix 7 配置钉钉电话告警
#### 1. **确认钉钉权限与API支持**
- 钉钉电话告警需企业账号且开通**审批权限**。联系钉钉管理员确认是否支持电话通知API[^1]。
- 获取**企业CorpID**、**AgentID**和**API Token**(需在钉钉开放平台申请)。
#### 2. **编写钉钉电话告警脚本**
- 在Zabbix服务器上创建脚本文件:
```bash
cd /usr/lib/zabbix/alertscripts
vi dingding_call.py
```
- 脚本内容示例(需替换实际API参数):
```python
#!/usr/bin/env python3
import sys
import requests
import json
# 钉钉API参数
CORP_ID = "your_corp_id"
AGENT_ID = "your_agent_id"
API_TOKEN = "your_api_token"
CALL_API_URL = "https://oapi.dingtalk.com/robot/call?access_token=" + API_TOKEN
# 接收参数:告警内容、接收人手机号
message = sys.argv[1]
phone = sys.argv[2]
# 构造请求体
payload = {
"touser": phone,
"msgtype": "voice",
"voice": {
"content": message,
"duration": "10"
}
}
# 发送请求
response = requests.post(CALL_API_URL, data=json.dumps(payload), headers={"Content-Type": "application/json"})
print(response.text)
```
- 设置权限:
```bash
chmod +x dingding_call.py
chown zabbix:zabbix dingding_call.py
```
#### 3. **配置Zabbix报警媒介类型**
- **路径**:Zabbix Web → 管理 → 报警媒介类型 → 创建媒介类型
- **名称**:DingTalk Call
- **类型**:脚本
- **脚本名称**:dingding_call.py
- **脚本参数**(按顺序添加):
```
{ALERT.MESSAGE}
{ALERT.SENDTO}
```
#### 4. **配置用户接收方式**
- **路径**:用户 → 选择用户 → 报警媒介 → 添加
- **类型**:DingTalk Call
- **收件人**:填写接收告警的**手机号**(需与钉钉账号绑定)
- **其他选项**:根据需求设置告警时段和级别。
#### 5. **创建触发器动作**
- **路径**:配置 → 动作 → 创建动作
- **名称**:Critical Alert to DingTalk Call
- **条件**:设置触发器条件(如主机组、严重性等)
- **操作**:
```plaintext
发送消息到: DingTalk Call
仅送到: 指定用户或用户组
```
#### 6. **测试告警**
- 手动触发测试命令:
```bash
./dingding_call.py "CPU负载超过阈值!" "13800138000"
```
- 检查钉钉手机是否收到电话通知,并查看Zabbix日志:
```bash
tail -f /var/log/zabbix/zabbix_server.log
```
#### 常见问题排查
- **权限问题**:确保脚本属主为`zabbix:zabbix`,且钉钉API Token有效[^4]。
- **参数错误**:检查Zabbix媒介类型中的脚本参数顺序是否与脚本定义一致[^2]。
- **网络拦截**:确认服务器能访问钉钉API(可通过`curl`测试)。
---
### 相关问题
1. **如何验证钉钉电话告警API是否配置成功?**
- 通过命令行直接运行脚本并观察返回状态码,或使用日志分析工具监控API响应。
2. **Zabbix电话告警延迟较高可能是什么原因?**
- 网络延迟、钉钉API调用频率限制或Zabbix服务器负载过高均可能导致延迟。
3. **是否支持批量电话告警?**
- 需在脚本中循环处理多个手机号,或通过钉钉API的批量接口实现(需企业版权限)[^1]。
: Zabbix 配置钉钉告警。报警测试,要写三个参数并且带关键字"告警"
: zabbix告警使用钉钉通知。在zabbix_server.conf中配置告警脚本的路径
: zabbix 配置钉钉告警。脚本编写完成之后需要为脚本添加执行权限
阅读全文
相关推荐

















