资讯专栏INFORMATION COLUMN

容器监控实践—Docker原生

mushang / 2777人阅读

摘要:可以指定一个已停止的容器,但是停止的容器不返回任何数据。但它并不意味着你的每个容器都能访问那么多的内存默认时命令会每隔秒钟刷新一次,如果只看当前状态指定查看某个容器的资源可以指定名称或本文为容器监控实践系列文章,完整内容见

前言

传统虚机监控一般采用类似Zabbix的方案,但容器出现之后,再使用Zabbix agent来采集数据的话就显得有些吃力了,如果每个容器都像OS那样监控,则metric数量将会非常巨大,而且这些数据很可能几分钟之后就没有意义了(容器已经停止或漂移),且容器的指标汇总更应该是按照APP甚至POD维度。

如果只是过渡方案,或者想将容器监控统一到公司现有的Zabbix中,可以参考zabbix-docker-monitoring,有很多模板如:zabbix-template-app-docker.xml

参考文章:https://segmentfault.com/a/11...

Docker原生监控

常用方式:

docker ps/top/logs

docker stats

docker Remote API

docker 伪文件系统

docker stats

该命令默认以流式方式输出,如果想打印出最新的数据并立即退出,可以使用 no-stream=true 参数。

可以指定一个已停止的容器,但是停止的容器不返回任何数据。

例如:

Remote API

Docker Remote API是一个取代远程命令行界面(rcli)的REST API
如:curl http://127.0.0.1:4243/containers/json

可以使用API来获取监控数据并集成到其他系统,注意不要给Docker daemon带来性能负担,如果你一台主机有很多容器,非常频繁的采集可能会大量占据CPU

伪文件系统

以下操作的环境为:Centos7系统 docker17.03版本

docker stats的数据来自于/sys/fs/cgroup下的文件

mem usage那一列的值,来自于

/sys/fs/cgroup/memory/docker/[containerId]/memory.usage_in_bytes

如果没限制内存,Limit = machine_mem,否则来自于

/sys/fs/cgroup/memory/docker/[id]/memory.limit_in_bytes

内存使用率 = memory.usage_in_bytes/memory.limit_in_bytes

一般情况下,cgroup文件夹下的内容包括CPU、内存、磁盘、网络等信息:

如memory下的文件有:

几个常用的指标含义:

memory.stat中的信息是最全的:

更多资料参考:cgroup memory

原理分析:Libcontainer 深度解析

总结

优缺点:

优点:原生,很方便的看到当前宿主机上所有容器的CPU、内存、网络流量等数据。

缺点:只能统计当前宿主机的所有容器,数据是实时的,没有存储,没有报警,没有可视化。

备注:

1.如果你没有限制容器内存,那么docker stats将显示您的主机的内存总量。但它并不意味着你的每个容器都能访问那么多的内存

2.默认时stats命令会每隔1秒钟刷新一次,如果只看当前状态:docker stats --no-stream

3.指定查看某个容器的资源可以指定名称或PID: docker stats --no-stream registry 1493

本文为容器监控实践系列文章,完整内容见:container-monitor-book

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27661.html

相关文章

  • 容器监控实践Docker原生

    摘要:可以指定一个已停止的容器,但是停止的容器不返回任何数据。但它并不意味着你的每个容器都能访问那么多的内存默认时命令会每隔秒钟刷新一次,如果只看当前状态指定查看某个容器的资源可以指定名称或本文为容器监控实践系列文章,完整内容见 前言 传统虚机监控一般采用类似Zabbix的方案,但容器出现之后,再使用Zabbix agent来采集数据的话就显得有些吃力了,如果每个容器都像OS那样监控,则me...

    muddyway 评论0 收藏0
  • 快收藏!52篇25万字,微服务、云原生容器、K8S、Serverless精华文章集锦

    摘要:正在走远,新年之初,小数精选过去一年阅读量居高的技术干货,从容器到微服务云原生,汇集成篇精华集锦,充分反映了这一年的技术热点走向。此文值得收藏,方便随时搜索和查看。,小数将继续陪伴大家,为朋友们奉献更有逼格的技术内容。 2017正在走远,新年之初,小数精选过去一年阅读量居高的技术干货,从容器、K8S 到微服务、云原生、Service Mesh,汇集成52篇精华集锦,充分反映了这一年的技...

    AaronYuan 评论0 收藏0
  • 容器监控实践—cAdvisor

    摘要:在中包含大量的了相关的信息参考原生监控文章的收集器更多源码参考文章总结优缺点优点谷歌开源产品,监控指标齐全,部署方便,而且有官方的镜像。 概述 为了解决docker stats的问题(存储、展示),谷歌开源的cadvisor诞生了,cadvisor不仅可以搜集一台机器上所有运行的容器信息,还提供基础查询界面和http接口,方便其他组件如Prometheus进行数据抓取,或者cadvis...

    andycall 评论0 收藏0
  • 容器监控实践—cAdvisor

    摘要:在中包含大量的了相关的信息参考原生监控文章的收集器更多源码参考文章总结优缺点优点谷歌开源产品,监控指标齐全,部署方便,而且有官方的镜像。 概述 为了解决docker stats的问题(存储、展示),谷歌开源的cadvisor诞生了,cadvisor不仅可以搜集一台机器上所有运行的容器信息,还提供基础查询界面和http接口,方便其他组件如Prometheus进行数据抓取,或者cadvis...

    kbyyd24 评论0 收藏0
  • 斌哥的 Docker 进阶指南

    摘要:斌哥是谁刘斌,拥有多年编程经验,曾参与翻译过第一本书入门与实践应用安全权威指南等多本技术书籍,主讲过入门与实践课程的后台工程师。主要的解决方式就是以或者为单位进行监控通过等方式。 过去的一年中,关于 Docker 的话题从未断过,而如今,从尝试 Docker 到最终决定使用 Docker 的转化率依然在逐步升高,关于 Docker 的讨论更是有增无减。另一方面,大家的注意力也渐渐从 D...

    Ververica 评论0 收藏0

发表评论

0条评论

mushang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<