分享人高驰涛(Neeke),云智慧高级架构师,PHP 开发组成员,同时也是 PECL/SeasLog 的作者。8 年研发管理经验,早期从事大规模企业信息化研发架构,09 年涉足互联网数字营销领域并深入研究架构与性能优化。2014 年加入云智慧,致力于 APM 产品的架构与研发。崇尚敏捷,高效,GettingReal。

2015年9月,企业级应用性能监控和管理服务商云智慧正式上线了Docker监控功能,能够实时监控Docker容器的CPU、内存、网络流量及Swap状态,让开发者和运维人员在使用Docker时清晰掌握其资源消耗状况。

作为国内首家实现Docker监控的SaaS厂商,监控宝Docker监控的技术原理是什么?相对国外的Docker监控产品有何优势?以下是此次分享的实录,请听Neeke细说端详:
1、 Docker监控概况
在云时代,仍有大量物理机直接支持服务,相较于虚拟技术来讲,这种方式已经落伍很多,于是各种开源容器技术大大推进了虚拟化技术的发展。
Docker容器相较于其他容器技术来讲,是比较新的,而且发展最为迅速。原因不用多说,背后有老大哥谷歌撑腰。国内也已经兴起了几个以Docker为核心技术的创业公司,比如云智慧的合作伙伴数人、DaoCloud,都是前景非常赞的公司。
虽然这么火热,但关于Docker的运维一直是个痛点。
可以说,目前全球只有两家APM厂商提供了基于SaaS的Docker运维监控,其一是美国APM厂商New Relic,他们在6月下旬正式发布了Docker监控;另一家,则是中国APM厂商云智慧CloudWise,在继New Relic之后的9月7日,发布上线了Docker监控。从某种意义上讲,CloudWise填补了国内Docker监控的SaaS服务空白。
2、Docker监控的工作原理
大家都知道,CloudWise在APM领域率先提出了端到端的一体化监控模型,并且在此模型上,发布了技术领先、便于部署和管理的SmartAgent软件架构。此次Docker监控的实现,也是基于SmartAgent的架构来完成的。
SmartAgent以部署的快捷高效和智能化见长,整个部署过程中,用户在两分钟内便可完成。部署分为两部,首先下载、解压、启动数据发送代理SendProxy。SendProxy的作用是提供一个高效的本地数据接收队列与数据发送引擎,并且可以在局域网内进行分布式部署,使得不能上网的机器监控也可正常地通过SendProxy高效地传输到云智慧的SaaS平台。其次,下载、解压、启动DockerAgent。
DockerAgent使用Python进行开发并完成编译,目前支持Ubuntu和CentOS。DockerAgent遵循了SmartAgent的插件规范,所以,无论监控宝或透视宝用户,都可以直接使用。
DockerAgent有三个线程,分别是:DockerProcess \ DockerConfig \ DockerPing,以及一个对象Task。三个线程各司其职,同时受Task对象控制。Task中核心属性是任务惟一标识、任务状态以及任务频率。这些属性由DockerConfig与ClouwWise云平台定时同步。
当任务状态正常时,DockerProcess线程开始采集数据,并遵守频率规范。DockerPing负责心跳检测,定时产生心跳数据。这些数据,都由DockerAgent交由SendProxy,并由SendProxy存储进入队列,并异步地推送至CloudWise云平台。
前面聊到DockerAgent插件遵守了SmartAgent的插件规范,所以它像其他插件一样,包含了 bin 、conf、lib、log等目录,并存在一个启动脚本。该脚本提供了start 、stop、status等命令。
以上是DockerAgent的介绍,后续SmartAgent的架构与插件规范将会陆续开源发布,届时热衷开源与监控的同学,都可以直接参与进来。
3、DockerAgent数据采集原理
下面我们聊一下DockerAgent采集数据的原理。DockerAgent首先会使用docker info命令来获取docker系统信息,这些信息包含了非常有用的数据,如: Containers, Images, Name, CPUs, Data Space Used, Data Space Total, Total Memory。
这些数据看似简单基础,但却可以解脱掉Docker运维同学每天重复N次的工作。其次会使用docker version来检测docker版本,目前我们的DockerAgent仅支持1.15以上的Docker版本。

然后,使用dockerps命令来取得容器的运行信息和容器id,容器name,此时便可获知在此台机器上正在运行的docker容器都有哪些。
最后,依次取得这些docker容器的性能指标。取得性能指标的方式,有部分使用docker原生接口,有部分是运行云智慧自己的算法。其中包含容器与主机的系统时区/时间;容器的cpu使用率(通过cgroup/cpuacct内该容器的cpuacct.stat取得);容器的ip;容器内运行的进程数;容器的内存指标,rss\cache\memory_limit\total_cwop等(通过cgroup/memory内该容器的memory.stat取得);容器的网络指标(通过ifconfig/ statistics取得)。
DockerAgent发布上线以后,在当天就接到了非常多热心用户的反馈。很多反馈非常好,我们也在积极地吸收和改进。为大家解决真正头疼的Docker运维、监控、管理问题。相信在很短的时间内,将迭代出更优秀、更稳定、更符合用户预期的DockerAgent,以此不仅填补国内的Docker监控空白,更会真正成为众多Docker用户、企业的伙伴,为大家解决真正头疼的Docker运维、监控问题。
问:咱们和datadog之类docker监控有啥区别和优势?
答:DataDog的安装部署太过繁琐。当时尝试时用了一下午才跑出来数据。DataDog的图表定义比较自由,这点是比较好的;而我们的Docker监控最大的优势,就是零基础部署。另外,DataDog太贵,好像一个Agent要接近100人民币吧。目前CloudWise的DockerAgent完全免费。
问:刚才说 docherconfig 是定时与云平台同步,同步的是docker process和docker ping采集到的数据吗?
答:不是同步采集到的数据,是同步配置。
问:我看讲的是通过sendproxy异步到云平台的啊,那么dockerconfing的作用是什么?
答:DockerConfig是定时从云平台取得配置信息,采集到的数据,是由DockerProcess与DockerPing自行交由SendProxy。同步的数据其实就是Task的属性,比如任务名、任务频率、任务状态。
问:采集数据原理是先ps命令机器上那些 docker容器,再去用docker info获得他们的指标吗?
答:dockerinfo是返回当前机器上整体的docker指标,然后ps取得活着的docker容器,依次取它们各自的指标。
问:那包括了ps命令出的docker吗?ps直接就取了吗?这么说ps不仅仅是获取那些活的docker容器,还包括他们指标?
答:ps取不到指标,取得的是活的容器并列举;然后用其他的方法取它们的指标。容器名字也是ps时列举时一起取得的。
以上是Neeke就监控宝Docker监控的实现原理进行的分享,大家可以注册监控宝进行免费试用,有任何问题或需求请与我们联系。

监控宝官网:www.jiankongbao.com

【干货】解密监控宝Docker监控实现原理相关推荐

  1. Docker运维必备:监控宝Docker监控试用手记

    本文由肖远昊深度实践docker监控的报告   非常荣幸得到监控宝的邀请,试用了他们最近推出的新产品--Docker监控. 9月7日,中国APM厂商云智慧CloudWise正式发布上线Docker监控 ...

  2. 云智慧监控宝Docker监控功能评测

    之前看到dockone社区<[实战]五个Docker监控工具的对比>(http://dockone.io/article/397)的文章,前两天也尝试了新上线的Docker监控工具监控宝. ...

  3. 监控宝 mysql_监控宝服务性能监控配置(完整版)

    继上篇监控宝服务器监控后,此篇博文详细记录下项目中对常用服务监控的配置步骤 监控宝服务性能监控配置(完整版) 一.目的 本文是在<监控宝服务器与服务性能监控配置>(URL:https:// ...

  4. 京东首页302 Found报错 监控宝教你如何第一时间发现

    2016年1月19日下午2点10分左右,各地用户在电脑和手机浏览器访问京东商城首页时,均出现"302 Found"访问错误,而搜索.个人中心等功能页和商品页均能正常访问,十分钟后此 ...

  5. 我与监控宝之间的点点滴滴

    从事两年软件开发工作的我,在14年有幸接触到监控宝,当时听说有这个东西,也没过多的进行了解.去年公司在各种大中小型的项目中配备的有10多台服务器,全部放在办公楼4楼的一个机房里,进行统一的管理,而研发 ...

  6. 运维服务器手段(监控宝,Nagios,百度通告平台)

    站在"巨人"的肩膀上运维 现实问题 之前在论坛看到一个运维工程师的帖子,内容如下: "现在的一个IT工作者最头疼的就是加班,秃顶的是IT工作者最多.单身的是IT工作者最多 ...

  7. 京东首页302 Found报错 监控宝教你如何第一时间发现 1

    2016年1月19日下午2点10分左右,各地用户在电脑和手机浏览器访问京东商城首页时,均出现"302 Found"访问错误,而搜索.个人中心等功能页和商品页均能正常访问,十分钟后此 ...

  8. 深度解析云智慧监控宝新版API监控

    API已成为经济生态 API是随着互联网和云计算的兴起而催生的产物.像云供应商亚马逊.互联网巨头Google.社交媒体Twitter,他们的服务都是通过API的方式来提供的.API这个概念在2005年 ...

  9. 我与云智慧监控宝之间的点点滴滴

    作者:菀镁主题曲 从事两年软件开发工作的我,在14年有幸接触到监控宝,当时听说有这个东西,也没过多的进行了解.去年公司在各种大中小型的项目中配备的有10多台服务器,全部放在办公楼4楼的一个机房里,进行 ...

最新文章

  1. 联手IBM布局云计算,王健林如何再造一个新万达?
  2. 开源大数据周刊-第49期
  3. mysql @pdept_MySQL 基本管理与常用sql 归结
  4. centos 5.x 安装 zendOptimizer 5.x
  5. AI:一个20年程序猿的学习资料大全—前端/后端/架构师/运维各种很多教程资料——只有你不想要的,没有你找不到的
  6. Qt中内存泄露和半自动内存管理
  7. linux打开应用程序的命令,Windows环境下如何通过命令打开程序!
  8. 【leetcode】56. Merge Intervals 相邻线段归并
  9. LeetCode 934. 最短的桥(2次BFS)
  10. 【算法】赫夫曼编码 解码
  11. 95-290-035-源码-内存管理-原理与实现:内存管理
  12. GY39传感器C语言代码,详解Arduino GY-30数字光强传感器应用
  13. Polygon Mesh Processing读书笔记——1三角网格Triangle Meshes
  14. docker容器内存和CPU使用限制
  15. 一加6屏幕测试代码_一加 7的普通版与Pro/参数对比
  16. 《Effective Python 2nd》 读书笔记——函数
  17. Python编程 | 颜色分类
  18. 活动单导学计算机课,教学中“活动单导学”教学模式的反思
  19. 服务器CPU作用是什么?
  20. vscode编辑器搜索小技巧

热门文章

  1. 实现分区表性能提升超 10 倍,解密 TDSQL PG 版开源升级特性
  2. 20220324 java基础代码题(一)
  3. mysql tdsql_TDSQL
  4. (源码)CAD二次开发—实现AutoCAD中缺失字体自动替换
  5. 基于ssm的招标投标系统
  6. proxyee-dow下载
  7. 边玩边学!15 个学编程的游戏网站!
  8. 看到一个上班看抖音的中年
  9. 2018年Android版本分布(市场占有率、市场份额)统计
  10. 【USB笔记】USB2.0 不同传输类型下的理论最大速率