在 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 或依赖服务超时)。