Docker 监控平台部署

Docker 监控平台部署

一、Docker 自带的监控命令

1、docker ps
bash 复制代码
[root@docker ~]# docker ps
2、docker top <容器名>
bash 复制代码
[root@docker ~]# docker top mycentos
3、docker stats
bash 复制代码
[root@docker ~]# docker stats
优点与缺点
  • 优点:简单、快速查看容器状态
  • 缺点:仅实时数据,无法查看历史趋势;功能有限

二、Docker 监控解决方案:cAdvisor + Prometheus + Grafana

架构说明
  • cAdvisor:数据采集器,收集容器和主机的资源使用情况
  • Prometheus:时序数据库,存储监控数据
  • Grafana:数据可视化平台,展示监控图表
1、部署 cAdvisor
拉取并运行 cAdvisor 容器
bash 复制代码
[root@docker ~]# docker pull google/cadvisor
[root@docker ~]# docker run -d -v /:/rootfs:ro -v /var/run:/var/run:ro -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro -v /dev/disk/:/dev/disk:ro -p 8080:8080 --detach=true --name=cadvisor --privileged --device=/dev/kmsg google/cadvisor:latest
访问界面
txt 复制代码
http://<IP>:8080/containers/docker
cAdvisor 特点
  • 展示主机和容器两个层次的监控数据
  • 支持历史数据查看
  • 界面简陋,但支持数据导出(如 Prometheus)
2、部署 Prometheus
创建配置文件 /etc/prometheus/prometheus.yml
bash 复制代码
[root@docker ~]# mkdir -p /etc/prometheus
[root@docker ~]# vim /etc/prometheus/prometheus.yml
[root@docker ~]# chmod 777 /etc/prometheus/prometheus.yml
[root@docker ~]# systemctl restart chronyd
[root@docker ~]# systemctl enable chronyd
[root@docker ~]# hwclock -w
yaml 复制代码
global:
  scrape_interval: 15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
    - static_configs:
        - targets:

rule_files:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['192.168.100.10:9090']
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['192.168.100.10:8080']
bash 复制代码
[root@docker ~]# docker pull prom/prometheus
[root@docker ~]# docker run -itd --name prometheus -p 9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:latest --config.file=/etc/prometheus/prometheus.yml --web.enable-lifecycle
访问界面
txt 复制代码
http://<IP>:9090/targets
  • 查看数据源状态(应显示 cAdvisor 为 UP)
3、部署 Grafana
拉取并运行 Grafana
bash 复制代码
[root@docker ~]# docker pull grafana/grafana
[root@docker ~]# docker run -itd --name=grafana -p 3000:3000 grafana/grafana
访问界面

账号:admin

密码:admin

登录后重设密码

txt 复制代码
http://<IP>:3000/login
配置数据源
点击 Add your first data source
选择 Prometheus
填写 URL:http://<Prometheus_IP>:9090
点击 "Save & Test"
导入仪表盘
点击左侧 Dashboards 后,点击 + Create dashboard
先点击 Import a dashboard 后,再点击 Discard
输入仪表盘模板 ID :193
选择刚刚配置的 Prometheus 数据源
查看监控面板
  • 显示每个容器的 CPU、内存、I/O 使用情况
获取仪表盘模板ID
txt 复制代码
https://grafana.com/grafana/dashboards/

三、总结

  1. 推荐使用 cAdvisor + Prometheus + Grafana 组合,实现 Docker 容器全方位监控
  2. cAdvisor 负责数据采集,Prometheus 负责存储,Grafana 负责可视化
  3. Docker 自带命令适合快速查看状态,但不适合长期监控与趋势分析
  4. 监控历史数据有助于分析容器运行状况和性能瓶颈
  5. 若 Grafana 无数据,请检查 Docker 主机与监控机时间是否同步
相关推荐
Jerry小杰3 小时前
运维神器|单端口搞定多台内网SSH!frp端口复用终极教程
运维·ssh
Python私教4 小时前
Blender模型导入Godot完整教程:GLB、BLEND与继承场景怎么选
运维·godot·blender
AOwhisky4 小时前
Linux(CentOS)系统管理入门笔记(第十二期)——系统管理工具与软件包管理(上篇):Cockpit 与 RPM 包管理
linux·运维·笔记·centos·云计算
运维大师6 小时前
【K8S 运维实战】15-链路追踪Jaeger与OTel
运维·容器·kubernetes
霁月的小屋7 小时前
Docker 工程化实践(二):理解镜像分层与容器文件系统
运维·docker·容器
Android系统攻城狮7 小时前
Linux PipeWire深度解析之pw_context_add_spa_lib调用流程与实战(二十九)
linux·运维·服务器·音频进阶·pipewire音频进阶
Dovis(誓平步青云)7 小时前
《如何在CentOS 7中添加Plex官方软件源:解决文件磁盘难管理难题》
linux·运维·服务器·后端·生成对抗网络·centos
草莓熊Lotso7 小时前
【Linux网络】深入理解Linux IO多路复用:select服务器完善、内核原理与poll实战
linux·运维·服务器·c语言·网络·c++
深念Y7 小时前
MSYS2 是什么,要不要装?
运维·环境·开发·工具·msys2
网安老伯8 小时前
网络安全基础要点知识介绍(非常详细),零基础入门到精通,看这一篇就够了
运维·前端·网络协议·web安全·网络安全·职场和发展