Docker 宣布多个软件和云平台作为它管理运行在Docker 容器内部的应用生成的日志的生态系统技术合作伙伴(ETP)。成为一个ETP 日志合作伙伴是对软件或者平台能稳定的和Docker 工作并通过日志驱动机制来提供日志信息的认可。
Docker 已经支持各种各样的外部日志系统,比如 syslog(Linux 标准中央日志系统)、GELF( Graylog 和 Logstash 支持的 Graylog 扩展日志格式)、Fluentd 以及在 1.9.0 版本支持的 AWS CloudWatch。Graylog、Logstash 和 Fluentd 是开源的日志管理工具。ETP 计划试图将各种各样的日志提供者规整到一个公共的框架下。据 Docker 商业开发和技术联盟的副总 Nick Stinemates 所说:
Docker 的“生态系统技术合作伙伴(EPT)计划”是为了突出那些在 Docker 生态系统里面已经证明了自身和 Docker 引擎集成的品质的合作伙伴。我们发展这个计划,是为了应对用户请求,寻找生态系统各个方面的推荐解决方案,从技术领域例如监控和日志到网络。
Docker 的日志通过在启动容器时指定一个日志驱动来工作,因此容器的标准输出和标准错误输出流能够被重定向到其他地方。既可以是一个像 syslog 这样的标准日志机制,也可以是一个像 Sumo Logic 或 LogEntries 这样的中央日志系统。除了标准输出和错误流之外,运行在容器内部的应用也可以写它们自己的日志文件到 syslog 或者 /var/log 下的一个指定日志文件。对于后者,日志文件不会直接被日志驱动处理。
日志驱动的想法诞生于 docker-dev 邮件列表,后来被正式定义为一个 Github 问题。在发布过程中,Docker 不断增加对不同日志驱动的支持,最新的 Docker 1.9.0 支持 AWS CloudWatch。
在实际开发中,容器性能和生命周期度量也需要被监控。对于这些,Stinemates 说:
Docker 引擎 API 公开了性能度量,生命周期事件和日志数据。这是供应商藉此实现的公共基础。日志驱动扩展了 Docker 引擎 API,使其能够定制日志处理行为,在此之前仅有 Docker 日志流端点这一个选择。
今天的应用通常生成大量的日志数据。容器的性能会受到影响吗?Stinemates 说:“性能不是一个问题,因为性能和日志驱动捆绑在一起。日志驱动是模块化的,因此用户能够根据自己的环境和性能要求去选择驱动。”
在问到一个新的工具/供应商如何才能加入 ETP 计划时,Stinemates 说:
想加入 ETP 方案,合作伙伴需要注册技术合作计划。合作伙伴需要对 Docker 生态系统做出一些有意义的影响,像集成现有的服务到 Docker 的 API,构建一个基于 Docker 平台或服务于 Docker 平台的产品。合作伙伴的实现不应该损害 Docker 的可移植性,应该维护和提升 Docker 作为基础设施中的重点地位,不要在 Docker 外部进行封装或代理。
完整的 ETP 日志管理合作者列表包括 Amazon Web Services CloudWatch 、 Elastic/Logstash 、 Graylog 、 Rapid7/Logentries 、 Loggly 、 Papertrail 、 Sematext Logsene 、 Sumo Logic 和 Treasure Data/Fluentd 。其中一些工具在基本日志收集之外有一些额外的特性。
查看英文原文: Docker Unveils New Ecosystem Technology Partners for Log Management
感谢谢丽对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。
评论