温馨提示×

Debian Docker 监控怎么做

小樊
47
2025-11-03 01:20:18
栏目: 智能运维

基础命令行监控
在Debian系统上,可通过Docker自带命令行工具快速监控容器状态及资源使用:

  • 查看容器列表docker ps 列出所有运行中的容器;docker ps -a 包括已停止的容器;docker ps -q 仅显示运行中容器的ID。
  • 实时资源监控docker stats 实时展示所有容器的CPU、内存、网络I/O及磁盘I/O使用率;支持指定容器ID或名称(如 docker stats <container_name>)查看特定容器。
  • 容器详细信息docker inspect <container_id> 提供容器的完整配置(如网络、挂载卷、环境变量)、状态及运行历史等深度信息。
  • 守护进程状态检查sudo systemctl status docker 查看Docker服务是否运行;sudo journalctl -u docker.service 查看Docker守护进程的日志,用于排查服务异常。

轻量级交互式监控工具

  • Ctop:专为Docker设计的命令行实时监控工具,提供类似top的界面,支持资源排序、自定义刷新及多容器对比。安装方式:docker run --rm -ti --volume /var/run/docker.sock:/var/run/docker.sock:ro quay.io/vektorlab/ctop:latest,运行后通过键盘快捷键(如q退出、↑↓切换容器)操作。

第三方可视化监控方案

  • Cadvisor + InfluxDB + Grafana
    • Cadvisor:收集容器资源指标(CPU、内存、磁盘、网络),默认通过Web界面(http://<host>:8080)展示,同时支持将数据导出至InfluxDB。安装:docker pull google/cadvisor,运行:docker run -d --name=cadvisor -p 8080:8080 --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro google/cadvisor
    • InfluxDB:时间序列数据库,用于存储Cadvisor导出的指标。安装:docker pull tutum/influxdb,运行:docker run -d -p 8086:8086 --name=influxdb -v /data/docker/influxdb:/var/lib/influxdb tutum/influxdb
    • Grafana:可视化工具,通过InfluxDB数据源展示监控仪表盘。安装:docker pull grafana/grafana,运行:docker run -d -p 3000:3000 --name=grafana -e INFLUXDB_HOST=localhost -e INFLUXDB_PORT=8086 -e INFLUXDB_NAME=cadvisor -e INFLUXDB_USER=root -e INFLUXDB_PASS=root grafana/grafana,访问http://<host>:3000登录后配置数据源并导入仪表盘。
  • Prometheus + Grafana
    • Prometheus:开源监控系统,通过抓取cAdvisor的/metrics接口收集指标,支持告警规则配置。安装:sudo apt-get install prometheus,配置文件(/etc/prometheus/prometheus.yml)中添加cAdvisor job:
      scrape_configs:
        - job_name: 'cadvisor'
          static_configs:
            - targets: ['localhost:8080']
      
    • Grafana:连接Prometheus数据源,创建可视化仪表盘(如CPU使用率趋势、内存占用排名)。访问http://<host>:3000配置Prometheus为数据源,导入官方Docker监控模板(如ID: 193)即可查看预设指标。

自动化与辅助工具

  • Watchtower:自动监控并更新运行中的Docker容器,支持镜像拉取、容器重启及更新策略定制(如定时检查、手动触发)。安装:docker run -d --name=watchtower --restart=always -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower,默认监控所有容器,可通过--container参数指定特定容器。

0