docker容器监控的实现方法

发布时间:2021-07-08 17:33:04 作者:chen
来源:亿速云 阅读:375

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

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

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

二、 如何监控?

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

图1:Docker-mon
docker容器监控的实现方法
图2:cAdvisor
docker容器监控的实现方法
最终脚本如下:

  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.  

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

  8. 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打印结果:
docker容器监控的实现方法
使用InfluxDB+ Grafana展示结果:
docker容器监控的实现方法

五、 接入Zabbix

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

每个容器都运行Zabbix
数据通过shell脚本打印到容器在宿主的映射目录
docker容器监控的实现方法
历史趋势图

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

推荐阅读:
  1. docker容器资源限制及监控
  2. nagios——docker容器监控

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker

上一篇:为什么centos安装openjdk后无法使用javac、jps等命令

下一篇:如何解决Druid-由防火墙导致的数据库空闲连接断开问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》