Docker之Prometheus部署:监控系统快速搭建指南

核心组件与部署命令

1. Node Exporter部署(监控主机指标)

docker run -d \
  --restart=unless-stopped \
  -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  --net="host" \
  192.168.2.130:5000/prom/node-exporter:latest

参数解析

  • --net="host":使用主机网络模式,直接暴露主机指标
  • -v挂载参数:只读(ro)挂载系统关键目录,用于采集主机指标
  • 9100端口:Node Exporter默认服务端口

2. Prometheus Server部署(监控主服务)

docker run -d \
  -p 9090:9090 \
  --restart=unless-stopped \
  --name prometheus \
  -v /home/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
  192.168.2.130:5000/prom/prometheus

配置文件详解(prometheus.yml)

global:
  scrape_interval: 15s  # 每15秒抓取一次指标

scrape_configs:
  - job_name: PROD  # 生产环境节点组
    static_configs:
    - targets: [  # 监控目标列表
        '10.9.20.31:9100',  # Node Exporter地址
        '10.9.20.31:9100'   # 可添加多个目标
      ]
      
  - job_name: Windows  # Windows节点组
    static_configs:
    - targets: [
        '192.168.2.100:9182'  # Windows Exporter地址
      ]

配置要点

  1. 必须先创建配置文件并设置权限:

    mkdir -p /home/prometheus
    chmod 755 /home/prometheus/prometheus.yml
  2. 每个job_name代表一个监控分组
  3. targets支持DNS名称或IP地址

架构说明

+-------------------+     +-------------------+     +-------------------+
|   Node Exporter   |     |   Windows Exporter|     |   其他Exporter    |
|   (主机指标采集)  |     |  (Windows指标采集)|     |                   |
+--------+----------+     +---------+---------+     +---------+---------+
         |                          |                          |
         v                          v                          v
+----------------------------------------------------------------------+
|                          Prometheus Server                           |
|                     (指标收集、存储与告警判断)                       |
+----------------------------------------------------------------------+

验证部署

  1. 检查Node Exporter:

    curl http://localhost:9100/metrics
  2. 访问Prometheus Web界面:

    http://服务器IP:9090
  3. 在Web界面输入up查询监控目标状态

生产环境建议

  1. 安全加固

    • 配置Basic认证
    • 限制9090端口的访问IP

      # 在prometheus.yml中添加
      basic_auth:
      username: admin
      password: strongpassword
  2. 数据持久化

    # 添加数据卷挂载
    -v /data/prometheus:/prometheus
  3. 告警配置
    创建alertmanager.yml并挂载:

    -v /path/to/alertmanager.yml:/etc/prometheus/alertmanager.yml

常见问题排查

Q:Targets显示DOWN状态?

  • 检查防火墙规则
  • 验证exporter服务是否正常运行
  • 检查prometheus.yml中的IP/端口是否正确

Q:如何监控更多主机?

  1. 在新主机部署Node Exporter
  2. 在prometheus.yml的targets中添加新条目
  3. 无需重启,Prometheus会自动重新加载配置

Q:如何升级配置?

# 修改配置文件后执行
docker kill -s SIGHUP prometheus

通过以上部署,您将获得:

  • 主机级资源监控(CPU/内存/磁盘等)
  • 多环境统一监控视图
  • 可扩展的监控架构

添加新评论