Skip to content

监控与告警

监控 Docker 主机和容器对于生产环境至关重要。

Docker 内置监控

docker stats

实时查看容器资源使用:

sh
docker stats
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"

docker system df

查看磁盘使用:

sh
docker system df -v

Prometheus 集成

启用 Prometheus 指标

daemon.json 中配置:

json
{
  "metrics-addr": "0.0.0.0:9323",
  "experimental": true
}

Prometheus 配置

yaml
# prometheus.yml
scrape_configs:
  - job_name: 'docker'
    static_configs:
      - targets: ['localhost:9323']

cAdvisor

使用 cAdvisor 收集容器指标:

yaml
version: '3.8'

services:
  cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest
    ports:
      - "8080:8080"
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro

Grafana 可视化

使用 Grafana 可视化监控数据:

yaml
services:
  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana

告警配置

Prometheus Alertmanager

yaml
# alertmanager.yml
route:
  receiver: 'default'
  routes:
    - match:
        alertname: ContainerHighCPU
      receiver: 'email'

监控指标

关键指标

  • CPU 使用率 - 容器 CPU 使用情况
  • 内存使用 - 容器内存使用情况
  • 磁盘 I/O - 磁盘读写性能
  • 网络流量 - 网络带宽使用
  • 容器状态 - 容器运行状态

最佳实践

  1. 设置资源限制 - 防止资源耗尽
  2. 监控关键指标 - 关注 CPU、内存、磁盘
  3. 配置告警 - 及时发现问题
  4. 日志监控 - 监控错误日志
  5. 性能基线 - 建立性能基线

BSFC Tech Pro Tip

生产环境应该建立完整的监控体系,包括指标监控、日志监控和告警机制。


由 BSFC Tech 提供技术支持