上一篇 下一篇 分享链接 返回 返回顶部

钉钉与企业微信双渠道告警推送配置指南

发布人: 发布时间:9小时前 阅读量:6

背景与需求

在IDC运维场景中,告警信息的及时传递至关重要。单一渠道可能因网络波动或客户端未登录导致延迟或遗漏,而同时接入钉钉与企业微信双渠道可显著提升告警到达率,保障运维人员第一时间响应。

前置准备

创建机器人Webhook

  • 钉钉:进入群聊→群设置→智能群助手→添加机器人→选择“自定义”(通过Webhook接入)→填写名称、安全设置(推荐加签)→复制Webhook地址。
  • 企业微信:创建群聊→群设置→群机器人→添加机器人→填写名称→复制Webhook地址(注意企业微信机器人支持自定义关键词或IP白名单安全策略)。

配置步骤

1. 获取Webhook地址与安全参数

记录两个渠道的Webhook URL,若钉钉开启加签则需生成签名(时间戳+密钥拼接后HMAC-SHA256计算),企业微信若设置关键词确保告警内容包含该词。

2. 编写告警推送脚本(以Python为例)

可使用requests库分别构造POST请求,钉钉消息格式支持text或markdown,企业微信支持text、markdown与news类型。注意钉钉markdown需限制内容长度,企业微信markdown支持更多语法。

# 钉钉推送示例
import requests, time, hashlib
secret = 'your_secret'
timestamp = str(round(time.time() * 1000))
sign = base64.b64encode(hashlib.hmac.new(secret.encode(), (timestamp + '\n' + secret).encode(), digestmod=hashlib.sha256).digest())
url = f'https://oapi.dingtalk.com/robot/send?access_token=xxx×tamp={timestamp}&sign={sign}'
payload = {'msgtype': 'text', 'text': {'content': '告警消息'}}
requests.post(url, json=payload)

# 企业微信推送示例
wx_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx'
payload = {'msgtype': 'markdown', 'markdown': {'content': '告警消息'}}
requests.post(wx_url, json=payload)

3. 集成至监控系统

在Zabbix、Prometheus、Grafana等监控工具中,将告警媒介(Media Type)或Webhook插件指向上述脚本,或在告警规则中直接调用API。对于自研平台,可在告警发送逻辑中循环调用两个渠道。

常见问题与优化

  • 安全验证:钉钉加签需在每一条消息中附带时间戳与签名,企业微信推荐设置IP白名单或关键词,避免告警被滥用。
  • 消息限频:每个机器人每分钟最多20条消息(钉钉)或每分钟3条(企业微信),避免突发告警导致限流,可考虑合并同类告警或加入延时重试机制。
  • 格式兼容:确保告警内容在两个平台均能正确渲染,特殊字符如“|”“-”需要转义。

总结

通过同时配置钉钉与企业微信双渠道告警推送,IDC运维团队可构建高可用的通知链路。实际部署时建议先测试机器人连通性,再逐步接入正式告警,并定期检查Webhook可用性,确保故障时告警不丢失。

目录结构
全文
企业微信 企业微信
微信公众号 微信公众号
服务热线: 400-790-1688
电子邮箱: 3310008520@qq.com