[干货] 解密监控宝 Docker 监控实现原理 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cloudwise
V2EX    监控宝

[干货] 解密监控宝 Docker 监控实现原理

  •  
  •   cloudwise 2015-09-17 17:27:35 +08:00 1965 次点击
    这是一个创建于 3727 天前的主题,其中的信息可能已经有所发展或是发生改变。
    分享人高驰涛( 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
    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     836 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 19:34 PVG 03:34 LAX 11:34 JFK 14:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86