监控与告警
监控 Docker 主机和容器对于生产环境至关重要。
Docker 内置监控
docker stats
实时查看容器资源使用:
sh
docker stats
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"docker system df
查看磁盘使用:
sh
docker system df -vPrometheus 集成
启用 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:roGrafana 可视化
使用 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 - 磁盘读写性能
- 网络流量 - 网络带宽使用
- 容器状态 - 容器运行状态
最佳实践
- 设置资源限制 - 防止资源耗尽
- 监控关键指标 - 关注 CPU、内存、磁盘
- 配置告警 - 及时发现问题
- 日志监控 - 监控错误日志
- 性能基线 - 建立性能基线
BSFC Tech Pro Tip
生产环境应该建立完整的监控体系,包括指标监控、日志监控和告警机制。