在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為業界主流方案,適合大多數場景。