“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

搭建 Docker 监控框架的理论与范例

  • 2016-07-17
  • 本文字数:2050 字

    阅读完需:约 7 分钟

容器技术适用于分布式应用的构建与交付。Docker 作为容器技术的典范,已经被行业中很多国内外 IT 巨头企业采用,同时许多初创企业的业务也是基于 Docker 来实现的。在上个月结束的全球 DockerCon 16 大会上,Docker 的 CEO Ben Golub 宣布全球已有 46 万个应用 Docker 化,该数据在两年增长了 3000%。同时,Ben 称他们会继续努力使得每一台服务器都可以使用 Docker,并估计市场价值为上百亿。

InfoQ 就 Docker 运维的监控为主题,对云络网络科技的高级架构师王寒做了采访。

受访嘉宾介绍

王寒,云络网络科技公司高级架构师,2016 北京 QCon《 DevOps 与 Docker 的最佳实践》讲师,毕业于香港科技大学,曾任职于 IBM 和微软公司。擅长于 AWS、Azure 技术,Windows Networking,Docker 运维以及各类运维技术,DevOps 实践。

InfoQ: 作为运维监控方面的专家,你如何理解监控对于整个运维系统的意义?对于一般的系统,应该从哪些方面考虑监控内容?

王寒: 系统运维的很大一部分工作就是管理服务器,而管理的前提即是对被管理事物有清晰地了解。监控可以帮助我们了解我们管理的服务器的情况,所以监控是系统运维的基础。

对于一般性的系统,应该做到从下到上三层的监控:

  • 服务器层面,即最底层,包括服务器的基本信息如 CPU、内存、I/O、网络等;
  • 中间层,是服务器上安装服务的监控,如 Tomcat、Nginx、MySQL 等;
  • 上层应用层,这层可以使用 APM 监控工具来完成。

InfoQ:对于运维来说,系统基于容器带来了哪些便利性,又带来了哪些挑战?

王寒: 对运维而言,容器技术带来的便利性不多,而带来更多的是挑战。这些挑战包括在监控方面、日志收集方面、网络方面以及安全方面。在本次的访谈,我会主要谈谈容器技术给监控带来的挑战、以及相应的应对策略。

InfoQ:请谈一谈如 Docker 这样的容器监控原理?

王寒: Docker 监控大体分成三个部分:Docker 服务的监控、Docker 服务下每一个容器的基本监控、Docker 容器里所运行服务的监控

常见的监控方法包括 Cgroups,Docker command 以及 Docker API。Cgroups 就是利用伪文件的方式获取单个容器的基本状况,这种方式获取信息全但需要对数据做二次处理;Docker command 是利用 Docker 服务提供的一些命令来获取信息,这种方法简单便捷但信息量有限;Docker API 可以获取比 Docker command 更多的信息但是对于大规模的容器管理有着性能的瓶颈。

InfoQ: 在容器监控的探索中,你们遇到最大的挑战是什么?

王寒: 容器的监控主要挑战就是监控的代理安装在哪里,是在容器内部还是在容器外部。在容器内部的话,可以直接监控容器内的服务,但会占用资源;在外部的话技术上会复杂一些,但能更大程度的发挥容器的性能。

因为 Docker 官方的最佳实践是一个容器只运行一个服务,而添加监控代理在内部无疑增加了服务;所以为我们并没有考虑把监控代理放在容器内部。

经我们的经验,我们建议将监控给代理放在容器外部。将监控代理放在容器外部需要解决的关键技术,是如何获取容器内部服务的信息。

InfoQ:你们目前的监控方案是怎么样的?

王寒: 我们运维平台的监控系统是 Zabbix,所以我们主要是尝试了把监控集成到 Zabbix 上。下面是我们目前监控方案的流程图。

第一,考虑 Docker 监控代理安装的位置。如果选择将监控代理部署在容器内部,则需要在容器里启动一个 startup 服务来分别开启监控代理以及容器内所要执行的服务,这将损耗容器的性能所以这里并不建议;于是,我们尝试将监控代代理部署在容器外侧及 host 上。

其次,选择监控获取信息方式。从下自上来看,首先我们通过 Docker API 来获取 Docker 服务的信息,在这里我们可以收集到该 host 上有多少容器在运行,哪些停止,哪些暂停等整体信息;随后我们利用 Zabbix 的 Low discovery 获取容器的服务情况,然后在 Zabbix 后台建立相应的 Zabbix host;之后再分别利用 Cgroups(即伪文件 Pse-udo file)获取单一容器的 CPU,I/O 等基本情况,同时利用 Docker exec 脚本定位容器内部服务类别并赋予监控模板收集需要的信息。最后再将这些信息汇总到 Zabbix 服务器,进行统一的处理和显示。

InfoQ:基于容器的系统的未来将会怎样发展,这对于监控会带来怎样的影响?

王寒: 容器具有轻量级、易部署的特性,如果未来在性能、安全性、可靠性等层面更加成熟的话,那么容器技术在企业的使用程度会进一步增大。

容器技术是实现 DevOps 的一个重要技术手段。随着容器技术的广泛使用,将会出现更多的大规模的集群式容器需要监控和管理;我认为这将是未来容器发展对监控的一大挑战。

InfoQ 主办的 CNUTCon 全球容器技术大会即将开幕,特设 Docker 专题,将从技术层面剖析 Docker,专门解决参会者在 Docker 实践中遇到的共性技术难题。我们邀请到了曾经深度参与过 Docker 项目的企业开发者、开源项目代码贡献者前来分享。内容方面,不追求大而全,只希望能把一个小知识讲精讲透。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-07-17 19:004033
用户头像

发布了 58 篇内容, 共 42.4 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

人工智能塑造未来城市生活

测吧(北京)科技有限公司

测试

百度智能云 AI 加速器第二期今日开营,42家AI原生应用企业入选

Geek_2d6073

如何在低代码平台中应用可视化编程

力软低代码开发平台

WorkPlus私有化部署IM即时通讯平台,构建高效安全的局域网办公环境

WorkPlus

WorkPlus Meet 视频会议,自主可控,支持私有化部署

WorkPlus

自动驾驶汽车—AI技术的未来之路

测吧(北京)科技有限公司

测试

体验亚马逊的 CodeWhisperer 感觉

亚马逊云科技 (Amazon Web Services)

Java 人工智能

聚势共创 多元共生——中科美菱联动清华大学助力产研融合!

联营汇聚

华为云API对话机器人CBS的魅力—要是有AI,我要做“李白”- 5分钟开发作诗机器人

华为云PaaS服务小智

云计算 软件开发 华为云

Git Stash:临时保存和切换工作状态的利器

凌览

git git stash

HarmonyOS使用多线程并发能力开发

HarmonyOS开发者

HarmonyOS

AI在医疗保健中的潜力与挑战

测吧(北京)科技有限公司

测试

软件测试/测试开发丨利用ChatGpt编写测试方案

测试人

人工智能 程序员 软件测试 测试方案 ChatGPT

关于 TDengine 3.0 数据订阅,你需要知道这些

TDengine

tdengine 时序数据库 国产时序数据库

OpenHarmony自定义组件介绍

OpenHarmony开发者

OpenHarmony

从技术创新到应用实践,百度智能云发起大模型平台应用开发挑战赛!

不叫猫先生

百度智能云 千帆大模型平台

DevOps|研发效能团队组织架构和能力建设

laofo

DevOps cicd 研发效能 持续交付 组织架构

IPQ9574 IPQ9554 QCN9274 QCN6274 WIFI7 SolutionUnlocking the Potential of Wi-Fi 7

wallyslilly

ipq9554 qcn9274 qcn6274 ipq9574

彻底告别传统FTP,新的替代FTP产品比你想象的好的多

镭速

传输协议 FTP传输替代方案

用友系列之 YonBuilder 低代码平台概论和基本使用

YonBuilder低代码开发平台

低代码 可视化

活动预告 | 中国数据库联盟(ACDU)中国行第三站定档成都,邀您探讨数据库前沿技术

墨天轮

MySQL 数据库 oracle postgresql zabbix

人工智能伦理—面对技术的道德挑战

测吧(北京)科技有限公司

测试

如何访问TDH中Inceptor 底层的元数据库TxSQL

明哥的IT随笔

大数据 hive

ICCV 2023|小红书 4 篇入选论文亮点解读,「开集视频目标分割」获得 Oral

小红书技术REDtech

算法 ICCV

上新啦!腾讯云云原生数据湖产品DLC 2.2.5版本发布,来看特性详解

腾讯云大数据

数据湖

写SAE评测,获 Airpods 2大奖【集结令】!

Serverless Devs

Serverless 云原生 AIGC

跨网传输文件时,如何通过日志记录来审计追溯?

镭速

跨网文件传输

Generative AI 新世界 | 扩散模型原理的代码实践之采样篇

亚马逊云科技 (Amazon Web Services)

机器学习 #人工智能 生成式人工智能 Amazon SageMaker 大语言模型

自动驾驶汽车:AI技术的未来之路

测吧(北京)科技有限公司

测试

华为3场重磅主题演讲先睹为快,顶级云原生&开源盛会即刻出发

华为云开源

华为 开源 云原生 KubeCON

开启 Kerberos 安全认证的大数据环境中如何正确指定 HS2 的 jdbc url 地址?

明哥的IT随笔

大数据 hive kerberos

搭建Docker监控框架的理论与范例_语言 & 开发_木环_InfoQ精选文章