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中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群(已满),InfoQ读者交流群(#2))。