Prometheus 可以很方便的监控 Elasticsearch 的指标。
方式一:
通过启动ES自带的监控模块暴露指标数据,主要步骤如下:
- 在 Elasticsearch 中启用监控模块修改 Elasticsearch 的配置文件,加入监控相关配置:
xpack.monitoring.collection.enabled: true # 启用监控收集
http.cors.enabled: true
http.cors.allow-origin: "*" # 设置跨域访问
重启 Elasticsearch 实例后,监控相关 API 会自动启用。
- 配置 Prometheus 监控 Elasticsearch
在 Prometheus 的配置文件中添加 Elasticsearch 的 job:
scrape_configs:
- job_name: 'elasticsearch'
metrics_path: "/_prometheus/metrics"
static_configs:
- targets:
- "es-master:9200" # Elasticsearch master 节点地址
- Prometheus 初始抓取后,可以在控制台看到 Elasticsearch 的相关指标,如:
- es_process_cpu_seconds_total # CPU 时间
- es_jvm_memory_bytes_committed # JVM 内存占用
- es_indices_indexing_index_total # 索引次数
- es_nodes_fs_total_bytes # 节点磁盘空间占用
- 等等
- 根据指标定义告警规则
当某些关键指标超过阈值时,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)
- 下载 Elasticsearch Exporter
wget https://github.com/prometheus-community/elasticsearch_exporter/releases/download/v1.5.0/elasticsearch_exporter-1.5.0.linux-amd64.tar.gz
- 配置 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
- 启动 Elasticsearch Exporter
直接运行 elasticsearch_exporter二进制文件即可:
-config.file启动项:添加配置文件
其它启动项:可执行elasticsearch_exporter --help查看。
./elasticsearch_exporter -config.file=elasticsearch_exporter.yml
默认会监听 9114 端口,可以配置web.listen-address启动项修改监听端口。
- Prometheus 配置抓取
在 Prometheus 配置文件中添加如下抓取任务:
scrape_configs:
- job_name: elasticsearch
metrics_path: /probe
static_configs:
- targets: ['es1:9114', 'es2:9114'] # 对应 exporter 端口
重启 Prometheus,就可以看到有关 Elasticsearch metrics 的监控数据了。文章来源:https://www.toymoban.com/news/detail-494376.html
exporter 支持两种工作模式:文章来源地址https://www.toymoban.com/news/detail-494376.html
- 服务发现模式:通过 _cat/nodes 检索 Elasticsearch 集群的节点信息,动态发现节点并抓取指标数据。要启用此模式,在配置文件中不要指定 cluster.server 选项。
- 静态模式:手动指定要抓取的节点,需要显式配置 cluster.server 选项指向 Elasticsearch 集群的 API endpoint。
到了这里,关于Prometheus监控Elasticsearch指标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!