通过主题HTTP订阅+ARMS实现自定义数据多渠道告警

本方案旨在满足您将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。

方案优势

  • 触发云产品任务执行的可靠数据通道轻量消息队列(原 MNS)的核心优势诸如异步解耦、可靠传输及削峰填谷能力,能确保通知内容能够被稳定且高效地传递,实现应用和云产品服务的松散耦合,保障在高并发请求下系统的平稳运行。

  • 多元化的告警通知渠道:支持通过电话、短信、电子邮件以及即时通讯平台(如钉钉、飞书和企业微信)中的群聊或机器人发送告警信息。

  • 灵活的内容格式支持:对于告警内容的格式没有限制,支持普通文本内容、JSON等格式。

  • 可定制的通知策略:您可以根据自身需求定义不同的通知规则,包括但不限于告警级别、时间窗口、重复次数等参数设置,从而实现更加精准有效地传递信息。

方案架构

image

方案效果

例如,将以下内容同时发送到邮箱、短信、钉钉三个渠道。

通知内容:欢迎使用<a href="">轻量消息队列(原 MNS)</a>产品作为云产品间消息通信的首选通道。

三个渠道收到的内容效果如下所示:

image

前提条件

操作步骤

步骤一:创建轻量消息队列(原MNS)主题

  1. 登录轻量消息队列(原 MNS)控制台

  2. 在左侧导航栏,选择主题模型 > 主题列表

  3. 在顶部菜单栏,选择地域。

  4. 主题列表页面,单击创建主题,然后在创建主题面板,配置以下参数,单击确定image

步骤二:将主题中的消息推送到ARMS

  1. 登录ARMS控制台,在左侧导航栏选择告警管理 > 集成
  2. 告警集成页签,单击自定义集成

  3. 新建自定义事件集成对话框中输入集成名称描述,然后单击保存并配置。在集成详情页面的接口配置区域复制其URL地址。image

  4. 返回轻量消息队列(原 MNS)控制台,在左侧导航栏,选择主题模型 > 订阅列表

  5. 订阅列表页面,单击创建订阅,然后在创建订阅面板设置以下参数,其他参数保持默认即可。

    参数

    说明

    示例

    主题名称

    选择上文步骤一:创建轻量消息队列(原MNS)主题中已创建的主题。

    test

    订阅名称

    填写订阅名称。

    testsubscription

    订阅类型

    选择HTTP

    HTTP

    接收端地址

    填写上文复制的集成地址。

    https://alerts.aliyuncs.com/api/v1/integrations/custom/J3aaq2qQza****

    消息格式

    如果消息体内容为非JSON格式,则选择JSON;如果消息体内容为JSON格式,则选择SIMPLIFIED。这样可以保障推送到ARMS的完整内容为JSON格式。

    JSON

  6. 主题列表中找到步骤一:创建轻量消息队列(原MNS)主题中已创建的主题,单击其右侧操作列的发布消息,执行以下操作。image

    重要

步骤三:使用ARMS告警管理功能,解析消息体内容并配置通知策略

  1. ARMS控制台告警集成列表中,找到步骤二:将主题中的消息推送到ARMS中创建的自定义事件集成,单击其右侧操作列的编辑

  2. 在集成详情页面的事件映射区域配置映射。本例中将订阅名称(SubscriptionName)映射为告警名称(alertname),告警级别设置为MAX(P1级别),消息体(Message)内容映射为告警描述(message)。然后单击保存image

  3. 在自定义集成右侧操作列,选择更多 > 新建通知策略,为集成创建通知策略。

  4. 通知对象页签配置以下内容并保存,其他页签保持默认配置即可。

    • 通知对象:在①处设置前提条件中创建的钉钉机器人作为告警通知对象,②处设置前提条件中创建的联系人作为告警通知对象,通知方式选择短信、邮箱。image

    • 告警恢复后是否发送恢复通知:选择不发送恢复通知

    • 通知模板:在通知内容变量填写{{ for .alerts }} {{ .annotations.message }} {{ end }}

      邮件

      image

      短信

      image

      钉钉

      image

步骤四:结果验证

  1. 返回轻量消息队列(原 MNS)控制台,在主题列表中找到步骤一:创建轻量消息队列(原MNS)主题中已创建的主题,单击其右侧操作列的发布消息,执行以下操作。image

  2. 查看联系人邮箱、短信及钉钉机器人是否接收到告警。