企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
监控docker ## 一、概述 ### 1.1 监控docker的意义 基于程序运行的性能、便性、隔离性等优点,docker程序事实上已经成为了企业云原生部罢的标准选择。那么docker环境是否稳定,docker上运行的各类容器程序cpu使用率、内存使用、网络、磁盘空间等性能参数,就非常有必要 ### 1.2 docker stat命令 最简单的docker容器性能监控命令是 docker stats ![](https://img.kancloud.cn/d7/54/d754d10b69d7400b4cd49e1592c07f86_835x266.png) ### 1.3 基于cAdvisor组件的docker容器监控 之前centos1部罢时,已经安装了prometheus、node_exporter以及cAdvisor的组件。yaml的回顾 ![](https://img.kancloud.cn/4b/3c/4b3c35a4bb19a9aff4b0ffde5b4fbf51_775x530.png) <hr> ## 二、cAdvisor组件介绍 ### &nbsp;&nbsp;&nbsp;2.1 docker安装(略) ### &nbsp;&nbsp;&nbsp;2.2 docker-compose安装(略) ### &nbsp;&nbsp;&nbsp;2.3 安装rabbitmq &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;创建rabbitmq目录 mkdir /data/vadisor -p cd /data/vadisor &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;创建docker-compose.yaml vim docker-compose.yaml &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;配置如下: services: cadvisor: image: registry.cn-hangzhou.aliyuncs.com/ldw520/cadvisor:latest container_name: cadvisor restart: always volumes: - /etc/localtime:/etc/localtime:ro - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro ports: - '8079:8080' &nbsp;&nbsp;&nbsp;启动 docker-compose.yaml docker-compose up -d &nbsp;&nbsp;&nbsp;查看docker的信息 docker images docker ps -a &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;宿主机上访问cadvisor的metrics http://192.168.100.141:8079/metrics <hr> ## &nbsp;&nbsp;&nbsp;2.6 prometheus服务器添加cadvisor的地址 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;192.168.100.85的centos上,修改prometheus的配置文件 #进入docker-prometheus目录 cd /data/docker-prometheus #修改prometheus.yml vi prometheus/prometheus.yml &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;添加cadvisor配置如下图: ![](https://img.kancloud.cn/df/76/df760c63979fcfbf8df046969d73b197_759x352.png) - targets: ["192.168.100.141:8079"] labels: instance: "Centos2服务器的cadvisor-server" # 修改为更具体的实例名称 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;保存后输入命令更新: curl -XPOST http://localhost:9090/-/reload &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;成功监听 ![](https://img.kancloud.cn/6d/9c/6d9cd53568fb1e9c3314879e721a9d06_1804x255.png) <hr/> ## 三、常用的docker监控指标 | 指标名称 | 类型 | 含义 | container_cpu_load_average_10s | gauge | 过去10秒容器CPU平均负载 | container_cpu_usage_seconds_total | counter | 容器在每个CPU内核上累计占用时间(单位:秒) | container_cpu_system_seconds _total | counter | System CPU累计占用时间(单位:秒) | container_cpu_user_seconds_total | counter | User CPU累计占用时间(单位:秒) | container_fs_usage_bytes | gauge | 容器中文件系统的使用量(单位:字节) | container_fs_limit_bytes | gauge | 容器可以使用的文件系统总量(单位:字节) | container_fs_reads_bytes_total | counter | 容器累计读取数据的总量(单位:字节) | container_fs_writes_bytes_total | counter | 容器累计写入数据的总量(单位:字节) | container_memory_max_usage_bytes | gauge | 容器的最大内存使用量(单位:字节) | container_memory_usage_bytes | gauge | 客器当前的内存使用量 | container_spec_memory_limit_bytes | gauge | 容器内存使用量限制 | machine_memory_bytes | gauge | 当前主机的内存总量 | container_network_receive_bytes_total | gauge | 容器网络累计接收数据总量(单位:字节) | container_network_transmit_bytes_total | counter | 容器网络累计传输数据总量(单位:字节) ### 3.1grafana中对cadvisor进行监控 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copy id to clipboard->grafana的dashboards中lmport dashboard https://grafana.com/grafana/dashboards/11600-docker-container/ ![](https://img.kancloud.cn/f1/7c/f17c2f8b0aa4c9d46d1cd85fe0a5e31b_1642x892.png) ![](https://img.kancloud.cn/48/31/4831b44c3ed0916bb02dbac217d1f0cb_1654x891.png)