在 Docker 环境中监控应用时,需要关注多个层面的指标和日志,以确保容器化服务的稳定性、性能和安全性。以下是需要监控的核心内容及常用工具建议:
资源利用率:
cpu_usage、cpu_throttled)。memory.usage_in_bytes)、限制(memory.limit_in_bytes)、OOM 事件。blkio 设备统计)。tx/rx_bytes、tcp_retrans)。docker stats、cAdvisor、Prometheus(配合 node-exporter)。生命周期:
docker events)。docker inspect --format='{{.State.ExitCode}}')。New Relic、Datadog APM、OpenTelemetry(链路追踪)。ERROR、Exception)。ELK(Elasticsearch + Logstash + Kibana)、Fluentd、Loki。grep + awk 或 Splunk。CrashLoopBackOff、ImagePullBackOff。Pending 状态。kubectl top、kube-state-metrics、Prometheus Operator。docker audit logs)。Trivy、Clair)。iptables 规则监控)。df -h)、IOPS 瓶颈。/tmp 目录占用(可能导致容器崩溃)。nslookup 测试)。telnet 或 netcat)。ping、traceroute、Blackbox Exporter(Prometheus)。Prometheus + Grafana(指标可视化)+ cAdvisor(容器指标)。Fluentd(收集)→ Elasticsearch(存储)→ Kibana(展示)。Alertmanager(Prometheus 生态)或 PagerDuty。Jaeger(分布式追踪)或 Datadog(全栈监控)。# 查看容器资源使用
docker stats <container_id>
# 检查容器日志
docker logs --tail 100 -f <container_id>
# 检查容器内进程
docker top <container_id>
# 分析容器配置
docker inspect <container_id>
通过分层监控(基础设施→应用→业务),可以快速定位问题根源(如 CPU 瓶颈、OOM 或依赖服务超时)。