更新时间:2025-09-05 GMT+08:00

设置OpenSearch告警同步到Prometheus

本文主要介绍如何在OpenSearch Dashboard中设置OpenSearch告警同步到Prometheus,实现Prometheus对OpenSearch集群的关键性能指标进行实时监控和分析。

Prometheus是一个开源系统监控和警报工具包,用于记录实时的时间序列数据,特别是指标,并通过灵活的查询语言提供数据查询功能。

约束与限制

仅OpenSearch 2.19.0版本的集群支持设置告警同步到Prometheus。

前提条件

  • 已准备好Prometheus监控服务器,并获取Pushgateway地址。Prometheus和OpenSearch之间要保证网络互通,否则告警信息无法成功发送。
  • OpenSearch集群处于可用状态。

设置告警同步

  1. 登录云搜索服务管理控制台
  2. 在左侧导航栏,选择“集群管理 > OpenSearch”
  3. 在集群列表,选择目标集群,单击操作列的“Dashboards”,登录OpenSearch Dashboards。
  4. 在OpenSearch Dashboards页面,选择左侧导航栏的“OpenSearch Management > Notifications”
  5. 新建一个Prometheus通道用于发送告警消息。
    1. 在“Channels”页面,单击“Create channel”配置通道。
      表1 Channel参数说明

      参数名称

      说明

      Name

      自定义通道名称。

      Description

      通道描述信息。

      Channel type

      选择“PROMETHEUS”

      Prometheus Endpoint

      输入Prometheus监控服务器的Pushgateway地址。

      • 当前仅支持Prometheus Gauge类型的可增可减仪表盘。通过查询具体的语句,将数值型结果同步到Pushgateway用于Prometheus监控。
      • 支持HTTP和HTTPS两种Pushgateway地址。
      图1 Create channel

    2. 单击“Create”返回Channels列表,在列表可见新建的Prometheus目的端,表示创建完成。
      图2 Channels列表

  6. 在OpenSearch Dashboards页面,选择左侧导航栏的“菜单 > Alerting”,进入告警插件界面。
  7. 新建一个监控,并配置告警的触发条件和监控频率。
    1. 在“Alerting”页面选择“Monitors”页签,单击“Create monitors”配置监控信息。
      表2 Monitors参数说明

      参数名称

      说明

      Monitor details

      Monitor name

      自定义一个监控名称。

      Monitor type

      Monitor类型:Per query monitor(普通监控)、Per bucket monitor(聚合桶监控)、Per cluster metrics monitor(集群指标监控)。

      Monitor defining method

      选择一种方式定义监控,推荐使用“Extraction query editor”。

      • Visual editor:可视化的query语句
      • Extraction query editor:具体的query语句
      • Anomaly detector:异常检测插件的监测

      选择不同的“Monitor type”,所支持的监控方式不同,请以实际界面为准。

      Detector

      “Monitor defining method”选择“Anomaly detector”时,请选择异常检测任务。

      Frequency

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

      • By interval:按时间间隔
      • Daily:按每天
      • Weekly:按每周
      • Monthly:按每月
      • Custom cron expression:按cron脚本规划

      Select data

      Index

      “Monitor defining method”选择“Visual editor”“Extraction query editor”方式定义监控时,需要选择监控的索引。

      Time field

      “Monitor defining method”选择“Visual editor”方式定义监控时,需要选择一个字段作为时间字段,来定义count等计数参数。

      Query

      Metrics

      “Monitor defining method”选择“Visual editor”方式定义监控时,需要设置提取统计数据的指标范围。

      Time range for the last

      “Monitor defining method”选择“Visual editor”方式定义监控时,需要设置插件应监控的时间范围。

      Data filter

      “Monitor defining method”选择“Visual editor”方式定义监控时,需要设置过滤器进行数据检索。

      Group by

      “Monitor defining method”选择“Visual editor”方式定义监控时,需要指定一个字段,使其每一个值都会触发告警。

      Define extraction query

      “Monitor defining method”选择“Extraction query editor”方式定义监控时,需要输入query语句定义监控。

      Request type

      “Monitor type”选择“Per cluster metrics monitor”时,需要指定请求类型来监控集群指标,例如运行状况、CPU使用率等。

      Preview query and performance

      预览当前Query配置下查询结果。

    2. 单击“Create”跳转到“Create trigger”页面。
    3. 在“Create trigger”页面设置指定告警触发条件及告警时应触发的动作。
      表3 Trigger参数说明

      参数名称

      说明

      Define trigger

      Trigger name

      自定义一个触发器名称。

      Severity level

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

      Trigger condition

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

      说明:

      建议设置一个一定会触发的条件,让查询的指标值每次均同步到Pushgateway。

      Configure actions

      Action name

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

      Destination

      选择5新建的目的端。

      Message

      定义消息发布的body体,必须是json格式,参考如下配置。

      {
       "metricsName":"hits_total_value", //Prometheus的指标名称
       "metricsLabel": {"label_key1":"label_value1","label_key2":"label_value2"}, //Prometheus的标签
       "metricsValue":{{ctx.results.0.hits.total.value}}, //Prometheus的指标值
       "jobName":"job_name" //Prometheus的监控任务名
       "metricsHelp":"***" //可选参数,指标说明
      }

      throttling

      设置消息发送频率用来限制在指定时间段内收到的通知消息数量。

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

    4. 单击“Send test message”,向Prometheus发送测试信息,验证触发器是否设置成功。
      图3 发送验证消息

      图4所示,在Prometheus能够收到触发器的Message消息,表示触发器设置成功。

      图4 成功收到Message
    5. 单击“Create”返回Monitor详情页。