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

相关推荐
一直奔跑在路上12 小时前
【Prometheus】实战二:Prometheus数据监控自定义组件Pushgateway
java·算法·prometheus
Zz罗伯特2 天前
grafana频繁DataSourceError问题
grafana·datasourceerror
福大大架构师每日一题2 天前
18.2 k8s-apiserver监控源码解读
云原生·容器·kubernetes·prometheus
magic_kid_20102 天前
grafana 使用常见问题
grafana
福大大架构师每日一题3 天前
18.1 k8s服务组件之4大黄金指标讲解
容器·kubernetes·php·prometheus
研究司马懿3 天前
【云原生监控】Prometheus之Alertmanager报警
云原生·云计算·系统·prometheus·云原生监控·邮件报警·集成qq
丶21363 天前
【监控】【Nginx】使用 Prometheus + Grafana 监控 Nginx
nginx·grafana·prometheus
覃星笙3 天前
5分钟部署Prometheus+Grafana批量监控Linux服务器
grafana·prometheus
unique_pursuit4 天前
Prometheus使用Pushgateway推送数据
prometheus