监控方案概述
在分布式系统中,实时监控和报警是保障系统稳定性的关键。本文将介绍如何使用Prometheus、ElasticSearch Exporter和Grafana构建一个监控ElasticSearch集群的解决方案。通过本文的步骤,您将能够轻松实现对ElasticSearch集群的监控,并将监控数据可视化展示在Grafana上。
版本信息
• ElasticSearch:7.14.2
• elasticsearch_exporter:1.7.0(latest)
• 下载地址:GitHub - elasticsearch_exporter releases[1]
• Grafana:10.0.10
构建docker-compose.yml
1. 创建目录并进入
首先,我们需要创建一个存放Docker配置文件的目录,并进入该目录:
mkdir /opt/docker-es-monitor
cd /opt/docker-es-monitor
2. 创建docker-compose.yml
配置文件
创建并编辑Docker Compose配置文件:
vim /opt/docker-es-monitor/docker-compose.yml
注意:Docker Compose配置文件中的缩进必须使用空格,不能使用Tab键,否则可能会导致解析错误。
以下是docker-compose.yml
的配置内容:
version: '3'
services:
prometheus:
image: prom/prometheus
container_name: prometheus
deploy:
resources:
limits:
cpus: '0.8'
memory: 12G
privileged: true
ports:
- 9090:9090
volumes:
- /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
depends_on:
- grafana
environment:
- TZ=Asia/Shanghai
grafana:
image: grafana/grafana:10.0.10-ubuntu
hostname: grafana
container_name: grafana
ports:
- 3000:3000
environment:
- TZ=Asia/Shanghai
elasticsearch_exporter:
image: quay.io/prometheuscommunity/elasticsearch-exporter:latest
command:
- '--es.uri=http://172.16.24.199:9200'
- '--es.all'
- '--es.indices'
- '--es.indices_settings'
- '--es.indices_mappings'
- '--es.shards'
- '--es.timeout=20s'
restart: always
ports:
- "172.16.24.224:9114:9114"
参数说明
•
prometheus
服务:• **
cpus
**:限制Prometheus服务的CPU使用率为80%。• **
memory
**:限制Prometheus服务的内存使用量为12GB。• **
privileged
**:启用此选项以允许容器拥有主机系统的高级权限(建议谨慎使用)。• **
ports
**:映射Prometheus服务的端口。• **
volumes
**:挂载Prometheus的配置文件。• **
depends_on
**:确保Prometheus服务在Grafana服务启动后再启动。•
elasticsearch_exporter
服务:• **
--es.uri
**:指定ElasticSearch集群的URI地址。• **
--es.all
**:获取集群中所有节点的状态。• **
--es.indices
**:获取所有索引的统计信息。
创建Prometheus配置文件
接下来,创建Prometheus的配置文件prometheus.yml
:
vim /etc/prometheus/prometheus.yml
注意:此文件的路径必须与
docker-compose.yml
中指定的路径一致。
在prometheus.yml
中添加以下配置:
global:
scrape_interval: 5s
evaluation_interval: 5s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['172.16.24.224:9090']
- job_name: 'elasticsearch'
scrape_interval: 60s
scrape_timeout: 30s
metrics_path: "/metrics"
static_configs:
- targets: ['172.16.24.224:9114']
启动服务
使用以下命令启动所有服务:
docker-compose -f docker-compose.yml up -d
验证配置
1. 验证Prometheus:访问Prometheus的UI,地址为
http://172.16.24.224:9090
。在“Targets”页面,您应该能看到ElasticSearch的监控状态为UP
,表示监控成功。

1. 配置Grafana:访问Grafana的UI,地址为
http://172.16.24.224:3000
。使用默认账号密码admin/admin
登录,并按照提示修改密码。

创建数据源
1. 在Grafana中创建Prometheus数据源,输入Prometheus的地址
http://172.16.24.224:9090
,并保存配置。

导入监控模板
1. 导入官方或推荐的监控模板,官方模板编号为
2322
,推荐的模板编号为13071
、13072
、13073
、13074
。根据需求选择适合的模板进行导入。

2. 导入完成后,您可以在Grafana中查看ElasticSearch的监控信息。

欢迎关注我的公众号“编程与架构”,原创技术文章第一时间推送。
引用链接
[1]
GitHub - elasticsearch_exporter releases: https://github.com/prometheus-community/elasticsearch_exporter/releases




