首页
/ 基于vegasbrianc/prometheus的Docker Compose监控系统部署指南

基于vegasbrianc/prometheus的Docker Compose监控系统部署指南

2025-07-08 06:57:20作者:裴锟轩Denise

概述

本文详细解析了如何使用Docker Compose快速部署一个完整的Prometheus监控系统。该系统包含了Prometheus监控服务、Grafana可视化平台、Alertmanager告警管理、cAdvisor容器监控以及Node Exporter主机监控等核心组件。

系统架构

该Docker Compose文件定义了一个完整的监控系统架构,包含以下核心服务:

  1. Prometheus - 作为核心监控服务,负责指标收集和存储
  2. Grafana - 数据可视化平台,提供丰富的仪表盘
  3. Alertmanager - 告警管理服务,处理来自Prometheus的告警
  4. cAdvisor - 容器监控工具,收集容器资源使用情况
  5. Node Exporter - 主机监控代理,收集主机级指标

详细配置解析

网络配置

networks:
  front-tier:
  back-tier:

系统采用双网络架构设计:

  • front-tier:前端网络,仅Grafana服务暴露在此网络
  • back-tier:后端网络,所有监控组件内部通信使用

这种设计增强了安全性,只有可视化界面暴露在外网。

Prometheus服务

prometheus:
  image: prom/prometheus:v2.36.2
  volumes:
    - ./prometheus/:/etc/prometheus/
    - prometheus_data:/prometheus
  command:
    - '--config.file=/etc/prometheus/prometheus.yml'
    - '--storage.tsdb.path=/prometheus'
  ports:
    - 9090:9090

关键配置说明:

  • 使用特定版本(v2.36.2)确保稳定性
  • 挂载本地prometheus目录到容器内配置路径
  • 使用命名卷prometheus_data持久化监控数据
  • 暴露9090端口供外部访问

Node Exporter服务

node-exporter:
  image: quay.io/prometheus/node-exporter:latest
  volumes:
    - /proc:/host/proc:ro
    - /sys:/host/sys:ro
    - /:/rootfs:ro
  command: 
    - '--path.rootfs=/host'
    - '--path.procfs=/host/proc'
  ports:
    - 9100:9100

特点:

  • 以全局模式(mode: global)部署,确保每个节点都有实例
  • 挂载主机系统目录为只读(ro)模式,确保安全性
  • 过滤不必要监控的文件系统路径,减少资源消耗

Alertmanager服务

alertmanager:
  image: prom/alertmanager
  ports:
    - 9093:9093
  volumes:
    - ./alertmanager/:/etc/alertmanager/
  command:
    - '--config.file=/etc/alertmanager/config.yml'

告警管理服务配置:

  • 暴露9093端口用于告警管理
  • 挂载本地alertmanager配置目录
  • 支持自定义告警路由和通知方式

cAdvisor服务

cadvisor:
  image: gcr.io/cadvisor/cadvisor
  volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
  ports:
    - 8080:8080

容器监控特性:

  • 全局部署模式,监控所有节点上的容器
  • 需要访问Docker守护进程(/var/run)和系统信息
  • 提供详细的容器资源使用指标

Grafana服务

grafana:
  image: grafana/grafana
  user: "472"
  ports:
    - 3000:3000
  volumes:
    - grafana_data:/var/lib/grafana
    - ./grafana/provisioning/:/etc/grafana/provisioning/
  env_file:
    - ./grafana/config.monitoring

可视化平台配置:

  • 使用Grafana官方镜像
  • 指定用户ID(472)运行,增强安全性
  • 持久化Grafana数据到命名卷
  • 支持通过provisioning目录预配置数据源和仪表盘
  • 使用环境变量文件配置Grafana参数

部署建议

  1. 数据持久化:系统已配置Prometheus和Grafana的数据持久化,确保重启后数据不丢失

  2. 安全考虑

    • 所有挂载的主机目录均为只读模式
    • 服务运行在隔离的网络环境中
    • Grafana以非root用户运行
  3. 扩展性

    • 可轻松添加更多Exporter监控其他服务
    • 支持通过取消注释启用Pushgateway服务
  4. 资源监控

    • 系统已包含容器(cAdvisor)和主机(Node Exporter)监控
    • 可扩展添加应用特定监控

常见问题解决

  1. 权限问题:确保挂载目录对容器用户可读
  2. 端口冲突:检查9090、3000等端口是否被占用
  3. 数据保留:Prometheus默认保留15天数据,可在配置中调整
  4. 告警测试:部署后应测试Alertmanager是否能正常接收和发送告警

总结

该Docker Compose配置提供了一个开箱即用的生产级监控系统解决方案,涵盖了从数据采集、存储、告警到可视化的完整监控链条。通过合理的网络隔离、数据持久化和安全配置,非常适合作为企业级监控系统的基础架构。