千家信息网

docker容器监控的实现方法

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容主要讲解"docker容器监控的实现方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"docker容器监控的实现方法"吧!本文写于2015年,所有
千家信息网最后更新 2025年12月03日docker容器监控的实现方法

本篇内容主要讲解"docker容器监控的实现方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"docker容器监控的实现方法"吧!

本文写于2015年,所有PAAS平台相关内容都已经在2015Q3完成,当时使用的docker版本为1.6.2,虽然docker新版本发布很快,但是下面提到的监控相关的内容大致相同。

一、 docker容器有哪些指标需要监控?

  • 容器CPU、内存、IO、网络、应用存活

二、 如何监控?

宿主机监控 zabbix可以实现,容器内部安装zabbix?
(数据和宿主机一致,无法反应容器真实状态)
看别人都如何实现?
Searching GitHub…

  • seagull
    可以查看、启停容器,管理镜像,但不支持查看容器使用CPU、内存、IO、网络等情况。

  • Prometheus
    太庞大

  • Docker官方stats接口
    要求docker在1.5以上版本,有命令行和API两种方式,API为非中断式,不停的显示数据

  • Docker-mon
    命令行工具,1.5以上版本,展示效果很好,但数据无法汇总,也无法查看历史数据

  • Dockernana
    可以对docker宿主进行日常cpu、内存、IO进行监控,但无法监控容器的资源使用。

  • cAdvisor
    可以查看容器对CPU、内存、磁盘的使用情况,WEB界面方式,缺点是每个宿主都要起个容器,而且数据无法汇总,无法查看历史数据。

图1:Docker-mon

图2:cAdvisor

最终脚本如下:

  1. a1_user=`cat /cgroup/cpuacct/docker/$i/cpuacct.stat | grep user |awk '{print $2}'`

  2. a1_sys=`cat /cgroup/cpuacct/docker/$i/cpuacct.stat | grep sys | awk '{print $2}'`

  3. sleep 5

  4. a2_user=`cat /cgroup/cpuacct/docker/$i/cpuacct.stat | grep user |awk '{print $2}'`

  5. a2_sys=`cat /cgroup/cpuacct/docker/$i/cpuacct.stat | grep sys | awk '{print $2}'`

  6. cpuall=$((a2_user + a2_sys - a1_user - a1_sys))

  7. CPUSTAT=`echo "scale=2;$cpuall/5/100">

内存
  1. #@当前使用内存除以最大内存限制

  2. [root@BJ-YF-64-7 ~]#cat /cgroup/memory/docker/$DOCKERID/memory.limit_in_bytes

  3. 1073741824

  4. [root@BJ-YF-64-7 ~]#cat /cgroup/memory/docker/$DOCKERID/memory.usage_in_bytes

  5. 186269696

网络流量
  1. #@根据容器PID来获取该进程的网络状态

  2. PID=`docker inspect -f '{{.State.Pid}}' $i`

  3. a1_rx=`cat /proc/$PID/net/dev | grep eth2 |awk '{print $2}'`

网络连接数
  1. #@根据容器PID来获取该进程的网络状态

  2. cat /proc/$PID/net/tcp

四、 初步展示shell+InfluxDB+Grafana

使用Shell打印结果:

使用InfluxDB+ Grafana展示结果:

五、 接入Zabbix

数据展示问题解决了,那数据报警呢? Zabbix
Zabbix一台宿主机有N张图,容器1CPU、容器1内存、容器2CPU…
数据获取很复杂,很困难

每个容器都运行Zabbix
数据通过shell脚本打印到容器在宿主的映射目录

历史趋势图

到此,相信大家对"docker容器监控的实现方法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

容器 数据 监控 内存 宿主 网络 方法 内容 历史 宿主机 版本 状态 历史数据 命令 情况 方式 结果 脚本 进程 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 易龙互联网科技有限公司 关于网络安全传输协议描述 尔雅计算机网络技术完整答案 负责网络安全保护和监督管理 宿迁纽扣网络技术有有限公司 彩虹兔服务器很繁忙是怎么回事 数据库工程师考试报考时间 软件开发什么样的语言最简单 日语软件开发简历模板 软件开发现状 淘宝未连接服务器请稍等 数据库的主要技术有哪些 网络技术图管理学属于什么决策 网络安全教育知识直播 1-999数据库怎么计算 农安正规网络技术服务质量保证 315 网络安全策划 饥荒服务器管理员放哪里 自己搭服务器上网 服务器内部错误是啥意思 广西网络安全技术大赛视频 国家网络安全与360 三明财务软件开发哪里有 小米邮箱pop服务器地址 apex双人赛哪个服务器人少 小学生网络安全 画画 学习数据库应该看什么书 连接更新服务器有问题 网络安全绘画4k 常州网络安全教育平台
0