更新时间:2025-07-29 GMT+08:00

设置Elasticsearch告警同步到Prometheus

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

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

约束与限制

仅Elasticsearch 7.10.2版本(镜像版本号不低于7.10.2_24.3.3_x.x.x)的集群支持设置告警同步到Prometheus。

前提条件

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

设置告警同步

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

      参数名称

      说明

      Name

      自定义目的端名称。

      Type

      选择“PROMETHEUS”

      Settings

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

      • 当前仅支持Prometheus Gauge类型的可增可减仪表盘。通过查询具体的语句,将数值型结果同步到Pushgateway用于Prometheus监控。
      • 支持HTTP和HTTPS两种Pushgateway地址。
      图1 Add destination
    2. 单击“Create”返回Destinations列表,在列表可见新建的Prometheus目的端,表示创建完成。
      图2 Destinations列表
  5. 新建一个监控,并配置告警的触发条件和监控频率。
    1. 在“Alerting”页面选择“Monitors”页签,单击“Create monitors”配置监控信息。
      表2 Monitors参数说明

      参数名称

      说明

      Monitor name

      自定义一个监控名称。

      Monitor state

      是否关闭这个监控,建议不关闭。

      Method of definition

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

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

      Index

      选择监控的索引。

      Time field

      仅当选择“Define using visual graph”方式定义监控时,需要选择一个字段作为时间字段,来定义count等计数参数。

      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

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

      说明:

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

      Configure actions

      Action name

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

      Destination

      选择4新建的目的端。

      Message

      定义消息发布的body体,参考如下配置。

      {
       "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":"***" //可选参数,指标说明
      }

      Action throttling

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

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

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

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

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