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。登录后,修改密码以确保安全。

相关推荐
吴半杯1 小时前
gateway漏洞(CVE-2022-22947)
docker·kubernetes·gateway
今天我刷leetcode了吗1 小时前
docker 配置同宿主机共同网段的IP 同时通过通网段的另一个电脑实现远程连接docker
tcp/ip·docker·电脑
lwprain2 小时前
常用docker应用部署,wordpress、mysql、tomcat、nginx、redis
mysql·docker·tomcat
Code_Artist3 小时前
使用Portainer来管理并编排Docker容器
docker·云原生·容器
mengao12344 小时前
centos 服务器 docker 使用代理
服务器·docker·centos
Eternal-Student4 小时前
【docker 保存】将Docker镜像保存为一个离线的tar归档文件
运维·docker·容器
不是二师兄的八戒4 小时前
本地 PHP 和 Java 开发环境 Docker 化与配置开机自启
java·docker·php
码农小丘4 小时前
一篇保姆式centos/ubuntu安装docker
运维·docker·容器
Eternal-Student4 小时前
【1.2 Getting Started--->Installation Guide】
docker
yunfanleo7 小时前
docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
linux·运维·docker