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 外部進行封裝或代理。
和Treasure Data/Fluentd。其中一些工具在基本日志收集之外有一些額外的特性。
查看英文原文:Docker Unveils New Ecosystem Technology Partners for Log Management