在Ubuntu上实现Docker监控与告警,可选用以下方案,核心工具组合为Prometheus+Grafana,也可根据需求选择其他工具:
Prometheus:
prometheus.yml,添加Docker监控目标:scrape_configs:
  - job_name: 'docker'
    static_configs:
      - targets: ['localhost:9323']  # cAdvisor默认端口
docker run -d --name prometheus -p 9090:9090 \
  -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
  prom/prometheus
cAdvisor(采集容器指标):
docker run -d --name cadvisor --net=host \
  -v /:/rootfs:ro -v /var/run:/var/run:ro -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro \
  -p 8080:8080 google/cadvisor:latest
访问http://宿主机IP:8080查看容器实时指标。
Grafana(可视化与告警):
sum(rate(container_cpu_usage_seconds_total[5m])) by (instance) > 0.8
container_memory_usage_bytes{instance="宿主机IP"} / container_spec_memory_limit_bytes{instance="宿主机IP"} > 0.9
| 工具组合 | 优势 | 适用场景 | 
|---|---|---|
| Prometheus+Grafana | 灵活可扩展,支持多维度监控 | 生产环境复杂监控 | 
| Checkmate | 开箱即用,轻量级 | 中小规模环境快速部署 | 
| ELK Stack | 强大的日志分析能力 | 以日志监控为核心的场景 | 
/etc/docker/daemon.json,添加"metrics-addr": "0.0.0.0:9323"并重启Docker。以上方案可根据团队技术栈和规模选择,Prometheus+Grafana为业界主流方案,适合大多数场景。