Mysql学习解密监控宝Docker监控实现原理

Mysql学习解密监控宝Docker监控实现原理,第1张

概述介绍《Mysql学习解密监控宝Docker监控实现原理》开发教程,希望对您有用。

《MysqL学习解密监控宝Docker监控实现原理》要点:
本文介绍了MysqL学习解密监控宝Docker监控实现原理,希望对您有用。如果有疑问,可以联系我们。

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

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

MysqL实例

MysqL实例作为国内首家实现Docker监控的SaaS厂商,监控宝Docker监控的技术原理是什么?相对国外的Docker监控产品有何优势?以下是此次分享的实录,请听Neeke细说端详:

1. Docker监控概况

MysqL实例在云时代,仍有大量物理机直接支持服务,相较于虚拟技术来讲,这种方式已经落伍很多,于是各种开源容器技术大大推进了虚拟化技术的发展.

MysqL实例Docker容器相较于其他容器技术来讲,是比较新的,而且发展最为迅速.原因不用多说,背后有老大哥谷歌撑腰.国内也已经兴起了几个以Docker为核心技术的创业公司,比如云智慧的合作伙伴数人、DaoCloud,都是前景非常赞的公司.

MysqL实例虽然这么火热,但关于Docker的运维一直是个痛点.

MysqL实例可以说,目前全球只有两家APM厂商提供了基于SaaS的Docker运维监控,其一是美国APM厂商New Relic,他们在6月下旬正式发布了Docker监控;另一家,则是中国APM厂商云智慧ClouDWise,在继New Relic之后的9月7日,发布上线了Docker监控.从某种意义上讲,ClouDWise填补了国内Docker监控的SaaS服务空白.

2. Docker监控的工作原理

MysqL实例大家都知道,ClouDWise在APM领域率先提出了端到端的一体化监控模型,并且在此模型上,发布了技术领先、便于部署和管理的SmartAgent软件架构.此次Docker监控的实现,也是基于SmartAgent的架构来完成的.

MysqL实例SmartAgent以部署的快捷高效和智能化见长,整个部署过程中,用户在两分钟内便可完成.部署分为两部,首先下载、解压、启动数据发送代理SendProxy.SendProxy的作用是提供一个高效的本地数据接收队列与数据发送引擎,并且可以在局域网内进行分布式部署,使得不能上网的机器监控也可正常地通过SendProxy高效地传输到云智慧的SaaS平台.其次,下载、解压、启动DockerAgent.

MysqL实例DockerAgent使用Python进行开发并完成编译,目前支持Ubuntu和CentOS.DockerAgent遵循了SmartAgent的插件规范,所以,无论监控宝或透视宝用户,都可以直接使用.

MysqL实例DockerAgent有三个线程,分别是:DockerProcess \ DockerConfig \ DockerPing,以及一个对象Task.三个线程各司其职,同时受Task对象控制.Task中核心属性是任务惟一标识、任务状态以及任务频率.这些属性由DockerConfig与ClouwWise云平台定时同步.

MysqL实例当任务状态正常时,DockerProcess线程开始采集数据,并遵守频率规范.DockerPing负责心跳检测,定时产生心跳数据.这些数据,都由DockerAgent交由SendProxy,并由SendProxy存储进入队列,并异步地推送至ClouDWise云平台.

MysqL实例前面聊到DockerAgent插件遵守了SmartAgent的插件规范,所以它像其他插件一样,包含了 bin 、conf、lib、log等目录,并存在一个启动脚本.该脚本提供了start 、stop、status等命令.

MysqL实例以上是DockerAgent的介绍,后续SmartAgent的架构与插件规范将会陆续开源发布,届时热衷开源与监控的同学,都可以直接参与进来.

3. DockerAgent数据采集原理

MysqL实例下面我们聊一下DockerAgent采集数据的原理.DockerAgent首先会使用docker info命令来获取docker系统信息,这些信息包含了非常有用的数据,如: Containers,Images,name,cpus,Data Space Used,Data Space Total,Total Memory.

MysqL实例这些数据看似简单基础,但却可以解脱掉Docker运维同学每天重复N次的工作.其次会使用docker version来检测docker版本,目前我们的DockerAgent仅支持1.15以上的Docker版本.

MysqL实例

MysqL实例然后,使用dockerps命令来取得容器的运行信息和容器ID,容器name,此时便可获知在此台机器上正在运行的docker容器都有哪些.

MysqL实例最后,依次取得这些docker容器的性能指标.取得性能指标的方式,有部分使用docker原生接口,有部分是运行云智慧自己的算法.其中包含容器与主机的系统时区/时间;容器的cpu使用率(通过cgroup/cpuacct内该容器的cpuacct.stat取得);容器的ip;容器内运行的进程数;容器的内存指标,RSS\cache\memory_limit\total_cwop等(通过cgroup/memory内该容器的memory.stat取得);容器的网络指标(通过ifconfig/ statistics取得).

MysqL实例DockerAgent发布上线以后,在当天就接到了非常多热心用户的反馈.很多反馈非常好,我们也在积极地吸收和改进.为大家解决真正头疼的Docker运维、监控、管理问题.相信在很短的时间内,将迭代出更优秀、更稳定、更符合用户预期的DockerAgent,以此不仅填补国内的Docker监控空白,更会真正成为众多Docker用户、企业的伙伴,为大家解决真正头疼的Docker运维、监控问题.

问:咱们和datadog之类docker监控有啥区别和优势?

MysqL实例答:DataDog的安装部署太过繁琐.当时尝试时用了一下午才跑出来数据.DataDog的图表定义比较自由,这点是比较好的;而我们的Docker监控最大的优势,就是零基础部署.另外,DataDog太贵,好像一个Agent要接近100人民币吧.目前ClouDWise的DockerAgent完全免费.

问:刚才说 docherconfig 是定时与云平台同步,同步的是docker process和docker Ping采集到的数据吗?

MysqL实例答:不是同步采集到的数据,是同步配置.

问:我看讲的是通过sendproxy异步到云平台的啊,那么dockerconfing的作用是什么?

MysqL实例答:DockerConfig是定时从云平台取得配置信息,采集到的数据,是由DockerProcess与DockerPing自行交由SendProxy.同步的数据其实就是Task的属性,比如任务名、任务频率、任务状态.

问:采集数据原理是先ps命令机器上那些 docker容器,再去用docker info获得他们的指标吗?

MysqL实例答:dockerinfo是返回当前机器上整体的docker指标,然后ps取得活着的docker容器,依次取它们各自的指标.

问:那包括了ps命令出的docker吗?ps直接就取了吗?这么说ps不仅仅是获取那些活的docker容器,还包括他们指标?

MysqL实例答:ps取不到指标,取得的是活的容器并列举;然后用其他的方法取它们的指标.容器名字也是ps时列举时一起取得的.

MysqL实例以上是Neeke就监控宝Docker监控的实现原理进行的分享,大家可以注册监控宝(www.jiankongbao.com )进行免费试用,有任何问题或需求请与我们联系.

MysqL实例文章已获得云智慧授权发布.

总结

以上是内存溢出为你收集整理的Mysql学习解密监控宝Docker监控实现原理全部内容,希望文章能够帮你解决Mysql学习解密监控宝Docker监控实现原理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1161951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存