zabbix + nexmo = 电话告警

本文介绍如何利用Nexmo API实现Zabbix的短信报警功能,包括注册Nexmo账号获得启动资金、编写Bash脚本发送语音消息、在Zabbix中配置报警媒介等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nexmo脚本内容

  • 注册账户,会的到2欧元补助
  • 使用如下脚本
#!/bin/bash
# FileName: nexmoalert

from="xx"
to="86$1"
api_key="xxx"
api_secret="xxx"
text="hello"
url="https://api.nexmo.com/tts/json?api_key=$api_key&api_secret=$api_secret&text=\"$text\"&from=$from&to=$to"
#echo $url
curl "$url"

zabbix调整顺序

配置nexmoalert

  • 管理 > 媒介

    1. 主要用于添加报警模式,并且指定报警脚本名称
  • 管理 > 用户

    1. 添加相应的用户组
    2. 添加用户到上面的组里面
    3. 配置用户的媒介收件人信息
  • 组态 > 动作

    1. 添加
      维修状态 非在 维护
      触发器值 = 问题
      触发器示警度 = 灾难
  • 操作过程如下

mark

<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 配置钉钉告警。脚本编写完成之后需要为脚本添加执行权限
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值