《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细说端详:
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服务空白.
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的架构与插件规范将会陆续开源发布,届时热衷开源与监控的同学,都可以直接参与进来.
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运维、监控问题.
MYSQL实例答:DataDog的安装部署太过繁琐.当时尝试时用了一下午才跑出来数据.DataDog的图表定义比较自由,这点是比较好的;而我们的Docker监控最大的优势,就是零基础部署.另外,DataDog太贵,好像一个Agent要接近100人民币吧.目前CloudWise的DockerAgent完全免费.
MYSQL实例答:不是同步采集到的数据,是同步配置.
MYSQL实例答:DockerConfig是定时从云平台取得配置信息,采集到的数据,是由DockerProcess与DockerPing自行交由SendProxy.同步的数据其实就是Task的属性,比如任务名、任务频率、任务状态.
MYSQL实例答:dockerinfo是返回当前机器上整体的docker指标,然后ps取得活着的docker容器,依次取它们各自的指标.
MYSQL实例答:ps取不到指标,取得的是活的容器并列举;然后用其他的方法取它们的指标.容器名字也是ps时列举时一起取得的.
MYSQL实例以上是Neeke就监控宝Docker监控的实现原理进行的分享,大家可以注册监控宝(www.jiankongbao.com )进行免费试用,有任何问题或需求请与我们联系.
MYSQL实例文章已获得云智慧授权发布.
转载请注明本页网址:
http://www.vephp.com/jiaocheng/3840.html