Prometheus+Grafana+elasticsearch_exporter监控elasticsearch的简单配置过程
一、elasticsearch集群配置
elasticsearch的docker方式安装及golang1.22版本使用elasticsearch7的示例代码-CSDN博客
查找“创建elasticsearch集群”标题即可
服务器集群ip地址:192.168.137.21,192.168.137.22,192.168.137.23
二、启动Prometheus的容器
查看镜像信息
[root@ELK ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
harbor:443/prom/prometheus 2.54.1 4022a502929b 4 weeks ago 275MB
kibana 8.1.3 6bccb01e35af 2 years ago 736MB
harbor:443/library/kibana 8.1.3 6bccb01e35af 2 years ago 736MB
elasticsearch 8.1.3 b543e34fe3ca 2 years ago 1.2GB
harbor:443/library/elasticsearch 8.1.3 b543e34fe3ca 2 years ago 1.2GB
daocloud.io/alpine latest 49f356fa4513 3 years ago 5.61MB
docker.elastic.co/elasticsearch/elasticsearch 7.3.0 bdaab402b220 5 years ago 806MB
harbor:443/library/elasticsearch 7.3.0 bdaab402b220 5 years ago 806MB
containerize/elastichd latest c2202f76db37 7 years ago 28.1MB
harbor:443/library/containerize/elastichd latest c2202f76db37 7 years ago 28.1MB
harbor:443/library/mobz/elasticsearch-head 5 b19a5c98e43b 7 years ago 824MB
mobz/elasticsearch-head 5 b19a5c98e43b 7 years ago 824MB
prometheus.yml文件内容:
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: 'es_test'
static_configs:
- targets: ['192.168.137.116:9114']
运行Prometheus容器:
docker run --name prometheus -v /root/prometheus.yml:/etc/prometheus/prometheus.yml:Z -p 9090:9090 -itd 4022a502929b
三、下载并启动Grafana
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.2-1.x86_64.rpm
sudo yum install grafana-4.6.2-1.x86_64.rpm
systemctl enable --now grafana-server.service
四、下载elasticsearch_exporter并启动
mkdir /opt/apps
cd /opt/apps
wget https://github.com/prometheus-community/elasticsearch_exporter/releases/download/v1.3.0/elasticsearch_exporter-1.3.0.linux-amd64.tar.gz
tar -zvxf elasticsearch_exporter-1.3.0.linux-amd64.tar.gz
useradd -M -s /sbin/nologin elastic
systemd配置
如果elasticsearch配置了密码(<es-username>和<es-password>换成真实的用户名,密码):
cat > /usr/lib/systemd/system/elasticsearch-exporter.service << "EOF"
# 文件内容如下:
[Unit]
Description=Elasticsearch_Exporter
[Service]
Type=simple
User=elastic
Group=elastic
ExecStart=/opt/apps/elasticsearch_exporter-1.3.0.linux-amd64/elasticsearch_exporter --es.timeout=30s --es.all --es.indices --es.cluster_settings --es.indices_settings --es.shards --es.snapshots --es.uri=http://<es-username>:<es-password>@192.168.137.21:9200
ExecStop= /usr/bin/killall elasticsearch_exporter
Restart=on-failure
RestartSec=3
StartLimitBurst=3
StartLimitInterval=60
WorkingDirectory=/
[Install]
WantedBy=multi-user.target
EOF
如果elasticsearch没有配置密码
cat > /usr/lib/systemd/system/elasticsearch-exporter.service << "EOF"
# 文件内容如下:
[Unit]
Description=Elasticsearch_Exporter
[Service]
Type=simple
User=elastic
Group=elastic
ExecStart=/opt/apps/elasticsearch_exporter-1.3.0.linux-amd64/elasticsearch_exporter --es.timeout=30s --es.all --es.indices --es.cluster_settings --es.indices_settings --es.shards --es.snapshots --es.uri=http://192.168.137.21:9200
ExecStop= /usr/bin/killall elasticsearch_exporter
Restart=on-failure
RestartSec=3
StartLimitBurst=3
StartLimitInterval=60
WorkingDirectory=/
[Install]
WantedBy=multi-user.target
EOF
启动elasticsearch-exporter.service
systemctl enable --now elasticsearch-exporter.service
elasticsearch_exporter的默认端口是9114,验证是否成功:
curl http://192.168.1.86:9114/metrics
五.验证效果
1.查看Prometheus网页效果:
能够模糊搜索elastic条目即可
2.Grafana网页效果
下载模板json文件:
ElasticSearch | Grafana Labs
导入json文件后: