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文件后:

相关推荐
路由侠内网穿透.3 天前
外网访问可视化工具 Grafana (Linux版本)
linux·运维·服务器·grafana·远程工作
麦兜*3 天前
Spring Boot 应用 Docker 监控:Prometheus + Grafana 全方位监控
spring boot·后端·spring cloud·docker·prometheus
罗不俷4 天前
Prometheus 详解:从原理到实战,打造企业级云原生监控体系
云原生·prometheus
Deamon Tree6 天前
Prometheus和Grafana简介
grafana·prometheus
码界奇点6 天前
Apache IoTDB 架构特性与 PrometheusGrafana 监控体系部署实践
架构·apache·grafana·prometheus·iotdb
Linux-palpitate6 天前
基于Prometheus和Grafana的MySQL监控,服务器监控
服务器·grafana·prometheus
hello_2507 天前
golang程序对接prometheus
开发语言·golang·prometheus
yiqian19898 天前
grafana做状态变化的监控图表
grafana
angushine8 天前
Docker方式安装Prometheus+Grafana+Node Exporter
docker·grafana·prometheus
SRETalk9 天前
夜莺监控设计思考(三)时序库、agent 的一些设计考量
prometheus·可观测性·监控告警·nightingale·opentelemetry·夜莺监控·categraf