Docker 环境下多节点服务器监控实战:从 Prometheus 到 Grafana 的完整部署指南

Docker 环境下多节点服务器监控实战:从 Prometheus 到 Grafana 的完整部署指南

文章目录

    • [Docker 环境下多节点服务器监控实战:从 Prometheus 到 Grafana 的完整部署指南](#Docker 环境下多节点服务器监控实战:从 Prometheus 到 Grafana 的完整部署指南)
      • [一 多节点部署](#一 多节点部署)
        • [1 节点一](#1 节点一)
        • [2 节点二](#2 节点二)
        • [3 节点三](#3 节点三)
      • [二 监控节点部署](#二 监控节点部署)
      • [三 配置 prometheus.yml](#三 配置 prometheus.yml)
      • [四 测试监控系统](#四 测试监控系统)

本文介绍了如何通过 Docker 快速部署 Prometheus 和 Grafana,实现对多个服务器节点的监控。在实战过程中,分别在三个节点上部署 node-exporter,并在第三个节点上集成 Prometheus 和 Grafana,完成对服务器性能的实时监控。文章提供了详细的 Docker Compose 配置文件,并对 Prometheus 进行优化配置,确保节点数据的精准采集与展示。最后,用户可以通过访问 Grafana 来实现可视化的监控体验。这篇指南适合有一定基础的开发者快速掌握多节点监控系统的搭建。

预备课

Docker 安装与配置:从入门到部署

Docker 部署 Prometheus+Grafana 监控系统快速指南

一 多节点部署

部署多个 node-exporter 节点监控,例如:节点有三个。

IP 描述
192.168.0.1 节点一
192.168.0.2 节点二
192.168.0.3 节点三 Grafana 和 Prometheus 都部署在这个节点上
1 节点一

docker-compose.node01.yml

yml 复制代码
version: '3'
services:
  node-exporter:
    image: prom/node-exporter:v1.6.1
    container_name: node-exporter
    hostname: node_exporter_01
    restart: always
    networks:
      - monitornet
    ports:
      - "9100:9100"

networks:
  monitornet:
    external: true
2 节点二

docker-compose.node02.yml

yml 复制代码
version: '3'
services:
  node-exporter:
    image: prom/node-exporter:v1.6.1
    container_name: node-exporter
    hostname: node_exporter_02
    restart: always
    networks:
      - monitornet
    ports:
      - "9100:9100"

networks:
  monitornet:
    external: true
3 节点三

docker-compose.node03.yml

yml 复制代码
version: '3'
services:
  node-exporter:
    image: prom/node-exporter:v1.6.1
    container_name: node-exporter
    hostname: node_exporter_03
    restart: always
    networks:
      - monitornet
    ports:
      - "9100:9100"

networks:
  monitornet:
    external: true

二 监控节点部署

监控节点也部署在 节点三192.168.0.3)上 。

docker-compose.monitor.yml

yml 复制代码
version: '3'
services:
  prometheus:
    image: prom/prometheus:v2.47.2
    container_name: "prometheus0"
    restart: always
    networks:
      - monitornet
    ports:
      - "9090:9090"
    volumes:
      - "./prometheus.yml:/etc/prometheus/prometheus.yml"
      - "./prometheus_data:/prometheus"
  
  grafana:
    image: grafana/grafana:10.1.5
    container_name: "grafana0"
    restart: always
    networks:
      - monitornet
    ports:
      - "3000:3000"
    volumes:
      - "./grafana_data:/var/lib/grafana"

networks:
  monitornet:
    external: true

三 配置 prometheus.yml

prometheus.yml 的配置

yaml 复制代码
global:
  scrape_interval:     15s # 全局默认抓取间隔时间
  external_labels:
    monitor: single-monitor # 外部标签,用于标识监控源
scrape_configs:
  - job_name: node-exporter # 采集节点监控数据的任务名称
    scrape_interval: 5s # 当前任务的抓取间隔时间
    metrics_path: /metrics  # 指标数据的抓取路径
    static_configs:
      # 监听目标服务的 IP 和端口,需根据实际情况修改。如果是云服务,可能需要使用公网 IP。
      # 如果有多个 targets,不要设置 labels,否则可能导致数据混乱
      - targets: ['192.168.0.3:9100', '192.168.0.2:9100', '192.168.0.1:9100']
#        labels:
#          instance: CentOS # 如果监控多个节点,注释掉 labels 避免数据冲突

  - job_name: prometheus # 监控 Prometheus 自身的任务
    static_configs:
      - targets: [ 'prometheus:9090' ] # Prometheus 服务的抓取目标
        labels:
          instance: prometheus # 为 Prometheus 服务添加标签

四 测试监控系统

lua 复制代码
# node-exporter 部署成功
http://192.168.0.3:9100/metrics
# prometheus 部署成功
http://192.168.0.3:9090/targets
# grafana 地址 初始密码 admin/admin
http://192.168.0.3:3000 

Grafana 默认访问地址为 http://your-grafana:3000,初始登录的用户名和密码均为 admin。登录后,修改密码以确保安全。

相关推荐
杨浦老苏9 小时前
开源音乐管理软件Melody
docker·群晖·多媒体
杨浦老苏12 小时前
面向npm的实时仪表板Dashly
网络·docker·群晖·导航
JunLan~13 小时前
Docker 部署 GLPI(IT 资产管理软件系统)
运维·docker·容器
特立独行的猫a15 小时前
使用 Docker(Podman) 部署 MongoDB 数据库及使用详解
数据库·docker·podman
LUCIAZZZ17 小时前
基于Docker以KRaft模式快速部署Kafka
java·运维·spring·docker·容器·kafka
特立独行的猫a20 小时前
Golang 应用的 Docker 部署方式介绍及使用详解
开发语言·docker·golang
康世行21 小时前
Windows环境下MaxKB大模型 Docker部署图文指南
windows·docker·容器
程序员石磊1 天前
学术总结Ai Agent中firecrawl(大模型爬虫平台)的超简单的docker安装方式教程
人工智能·爬虫·docker
司江龙2 天前
centos7 配置国内镜像源安装 docker
运维·docker·容器
西木Qi2 天前
Docker之Dockerfile
docker