暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

实现ElasticSearch集群监控:从零搭建Prometheus + Grafana可视化平台

编程与架构 2024-08-18
486

监控方案概述

在分布式系统中,实时监控和报警是保障系统稳定性的关键。本文将介绍如何使用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. 1. 验证Prometheus:访问Prometheus的UI,地址为http://172.16.24.224:9090
    。在“Targets”页面,您应该能看到ElasticSearch的监控状态为UP
    ,表示监控成功。

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

创建数据源

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

导入监控模板

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

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


欢迎关注我的公众号“编程与架构”,原创技术文章第一时间推送。


引用链接

[1]
 GitHub - elasticsearch_exporter releases: https://github.com/prometheus-community/elasticsearch_exporter/releases


文章转载自编程与架构,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论