Prometheus监控Elasticsearch指标

Prometheus 可以很方便的监控 Elasticsearch 的指标。

方式一:

通过启动ES自带的监控模块暴露指标数据,主要步骤如下:

  1. 在 Elasticsearch 中启用监控模块修改 Elasticsearch 的配置文件,加入监控相关配置:
xpack.monitoring.collection.enabled: true  # 启用监控收集
http.cors.enabled: true
http.cors.allow-origin: "*"  # 设置跨域访问

重启 Elasticsearch 实例后,监控相关 API 会自动启用。

  1. 配置 Prometheus 监控 Elasticsearch
    在 Prometheus 的配置文件中添加 Elasticsearch 的 job:
scrape_configs:
- job_name: 'elasticsearch'
  metrics_path: "/_prometheus/metrics"
  static_configs:
  - targets: 
    - "es-master:9200"     # Elasticsearch master 节点地址
  1. Prometheus 初始抓取后,可以在控制台看到 Elasticsearch 的相关指标,如:
  • es_process_cpu_seconds_total # CPU 时间
  • es_jvm_memory_bytes_committed # JVM 内存占用
  • es_indices_indexing_index_total # 索引次数
  • es_nodes_fs_total_bytes # 节点磁盘空间占用
  • 等等
  1. 根据指标定义告警规则
    当某些关键指标超过阈值时,Prometheus 可以发出告警,如:
groups:
- name: elasticsearch 
  rules:
  - alert: ElasticsearchNodeDown
    expr: up{job="elasticsearch", instance="es-master:9200"} == 0
    for: 5m
    labels:
      severity: critical
    annotations:
      summary: "Elasticsearch master node is down"  

Prometheus 通过监控 Elasticsearch 的 API 获取各种监控指标,并根据阈值规则发出告警,这可以实现对 Elasticsearch 集群状态的实时监控与报警。

方式二:

通过 Elasticsearch Exporter 来暴露Elasticsearch指标。
安装 Elasticsearch Exporter 以获取 Elasticsearch 集群的 metrics 数据,步骤如下:
(其它安装方式:https://github.com/prometheus-community/elasticsearch_exporter)

  1. 下载 Elasticsearch Exporter
wget https://github.com/prometheus-community/elasticsearch_exporter/releases/download/v1.5.0/elasticsearch_exporter-1.5.0.linux-amd64.tar.gz
  1. 配置 Elasticsearch Exporter
    修改 elasticsearch_exporter.yml 配置文件,例如:
cluster.server: http://localhost:9200  # Elasticsearch host
cluster.timeout: 10s 

es.all: true          # Export all metrics
es.indices: true      # Export index metrics
es.shards: true       # Export shard metrics
es.nodes: true         # Export node metrics
es.cluster_settings: true   # Export cluster settings
  1. 启动 Elasticsearch Exporter
    直接运行 elasticsearch_exporter二进制文件即可:
    -config.file启动项:添加配置文件
    其它启动项:可执行elasticsearch_exporter --help查看。
./elasticsearch_exporter -config.file=elasticsearch_exporter.yml

默认会监听 9114 端口,可以配置web.listen-address启动项修改监听端口。

  1. Prometheus 配置抓取
    在 Prometheus 配置文件中添加如下抓取任务:
scrape_configs:
  - job_name: elasticsearch
    metrics_path: /probe
    static_configs:
      - targets: ['es1:9114', 'es2:9114']  # 对应 exporter 端口

重启 Prometheus,就可以看到有关 Elasticsearch metrics 的监控数据了。

exporter 支持两种工作模式:

  • 服务发现模式:通过 _cat/nodes 检索 Elasticsearch 集群的节点信息,动态发现节点并抓取指标数据。要启用此模式,在配置文件中不要指定 cluster.server 选项。
  • 静态模式:手动指定要抓取的节点,需要显式配置 cluster.server 选项指向 Elasticsearch 集群的 API endpoint。

你可能感兴趣的:(prometheus,elasticsearch)