文档首页/ 云搜索服务 CSS/ 用户指南/ Elasticsearch/ 告警管理/ 配置OpenDistro告警通知(SMN)
更新时间:2026-04-24 GMT+08:00
分享

配置OpenDistro告警通知(SMN)

在实时大数据监控场景下,运维人员需要第一时间获知集群健康状态或业务指标的异常波动。虽然Elasticsearch提供了强大的检索能力,但原生系统缺乏与云原生通知服务的深度集成。通过CSS服务给Elasticsearch集群预置的OpenDistro告警插件,可以对接消息通知服务(SMN)。通过配置监控器实时轮询索引数据,当数据满足触发条件时,CSS服务将调用SMN接口将告警信息推送至订阅者,构建起一套“无人值守”的自动化监控闭环。

功能介绍

Elasticsearch集群预置的开源OpenDistro告警插件(opendistro_alerting),用于提供数据满足特定条件时的通知功能。

图1 告警通知链路
  1. Monitor(监控器)定义了查询条件,如“去哪个索引查”、“多久查一次”。
  2. Trigger(触发器)根据查询条件进行决策,满足什么条件触发告警(如查询结果“count > 100”)以及触发后的动作(Action)。
  3. Destination(目的端)是消息通路,定义了告警发往SMN主题。
  4. CSS集群通过服务授权委托使用SMN的权限。
  5. SMN将收到的告警信息推送至订阅者。

OpenDistro告警插件的详细信息请参见官方文档OpenDistro Alerting

约束与限制

Elasticsearch集群仅7.6.2和7.10.2版本预置了OpenDistro告警插件,只有满足版本要求的集群才支持配置SMN告警通知。

准备工作

  1. 准备SMN主题。在SMN服务创建主题并添加订阅者(手机号/邮箱)。操作指导请参见通过SMN发布模板消息
  2. 开启SMN服务授权。通过配置IAM委托,授权CSS服务访问SMN服务。
    1. 使用CSS服务的管理员账号登录云搜索服务管理控制台
      CSS服务的管理员账号需要如下IAM最小权限:
      "iam:agencies:listAgencies",
      "iam:roles:listRoles",
      "iam:agencies:getAgency",
      "iam:agencies:createAgency",
      "iam:permissions:listRolesForAgency",
      "iam:permissions:grantRoleToAgency",
      "iam:permissions:listRolesForAgencyOnProject",
      "iam:permissions:revokeRoleFromAgency",
      "iam:roles:createRole"
    2. 在左侧导航栏选择“服务授权”。
    3. 在服务授权页面,单击“创建SMN委托”,在弹窗中确认委托创建成功。
      • 如果已经创建过委托,则右上角会提示“css_smn_agency exist, no need to created.”
      • 如果无创建权限,则右上角会提示“当前用户没有操作权限,请通过IAM检查账户权限!”,请确认该管理员账号是否配置了IAM使用权限。

配置SMN告警通知

  1. 登录云搜索服务管理控制台

    使用具有CSS服务操作权限的账号登录即可。

  2. 在左侧导航栏,选择“集群管理 > Elasticsearch”
  3. 在集群列表,选择目标集群,单击操作列的“Kibana”,登录Kibana。
  4. 在Kibana页面,选择左侧导航栏的“Open Distro for Elasticsearch > Alerting”
  5. 新建一个SMN目的端用于发送告警消息。
    1. 在“Alerting”页面选择“Destinations”页签,单击“Add destination”配置目的端信息。
      表1 Destinations参数说明

      参数名称

      说明

      Name

      自定义目的端名称。建议使用英文/数字标识业务。

      Type

      选择通知类型。请固定选择“SMN”。

      Topic

      关联SMN主题。选择准备工作中创建的SMN主题名。

      图2 Add destination
    2. 单击“Create”完成目的端配置。
    3. 返回Destinations列表,在列表可见新建的SMN目的端,表示创建完成。
      图3 Destinations列表
  6. 新建监控器与触发器,定义告警的触发条件和监控频率。
    1. 在“Alerting”页面选择“Monitors”页签,单击“Create monitors”配置监控器。
      表2 Monitors参数说明

      参数名称

      说明

      Configure monitor

      Monitor name

      自定义一个监控器名称。

      Monitor state

      选择是否关闭监控器。

      • 勾选Disable monitor:关闭监控器,将无法使用。
      • 取消勾选Disable monitor(推荐):启用监控器。

      Define monitor

      Method of definition

      选择一种方式定义监控器,推荐使用“Define using extraction query”。

      • Define using visual graph:可视化的query语句
      • Define using extraction query:具体的query语句

      Index

      选择监控的索引。

      Time field

      时间字段,用于定义count等计数参数。

      仅当选择“Define using visual graph”方式定义监控器时,才需配置。

      Monitor schedule

      Frequency

      选择监控频率,并设置监控频率的间隔信息。

      • By interval:按时间间隔
      • Daily:按每天
      • Weekly:按每周
      • Monthly:按每月
      • Custom cron expression:按cron脚本规划
    2. 单击“Create”跳转到“Create trigger”页面。
    3. 在“Create trigger”页面设置指定告警触发条件及告警时应触发的动作。
      表3 Trigger参数说明

      参数名称

      说明

      Define trigger

      Trigger name

      自定义一个触发器名称。

      Severity level

      定义触发器的敏感度,选择触发多少条告警之后发送告警消息,“1”为最高敏感度。

      Trigger condition

      定义触发条件。满足触发条件就会触发告警。

      Configure actions

      Action name

      自定义一个触发器动作名称。

      Destination

      选择5创建的SMN目的端。

      Message subject

      定义告警消息的标题。仅Elasticsearch 7.10.2版本的集群需要设置。

      Message

      设置SMN主题发送的body,定义消息发布的文本。默认定义了目的端是Email类型时的主题和正文,详细参数说明请参见消息发布

      Action throttling

      设置消息发送频率用来限制在指定时间段内收到的通知消息数量,防止在异常波动期间瞬间产生数千条消息致资费消耗或信息轰炸。

      例如设置10分钟,在接下来的10分钟内,即使触发条件满足多次,SMN仅发送1次告警通知。超过10分钟后,如果触发告警条件,SMN才会再次发送告警通知。

      图4 设置触发器动作的目的端
    4. 单击“Send test message”验证告警通知链路。
      图5 发送验证信息
    5. 图6所示,SMN主题订阅者成功收到消息,则表示告警通知设置成功。
      图6 成功收到邮件通知
    6. 单击“Create”返回Monitor详情页,完成配置。

相关文档