Docker 宣布多個軟件和云平臺作為它管理運行在Docker 容器內(nèi)部的應(yīng)用生成的日志的生態(tài)系統(tǒng)技術(shù)合作伙伴(ETP)。成為一個ETP 日志合作伙伴是對軟件或者平臺能穩(wěn)定的和Docker 工作并通過日志驅(qū)動機制來提供日志信息的認(rèn)可。
Docker 已經(jīng)支持各種各樣的外部日志系統(tǒng),比如syslog(Linux 標(biāo)準(zhǔn)中央日志系統(tǒng))、GELF(Graylog 和Logstash 支持的Graylog 擴展日志格式)、Fluentd 以及在1.9.0版本支持的AWS CloudWatch。Graylog、Logstash 和Fluentd 是開源的日志管理工具。ETP 計劃試圖將各種各樣的日志提供者規(guī)整到一個公共的框架下。據(jù)Docker 商業(yè)開發(fā)和技術(shù)聯(lián)盟的副總 Nick Stinemates 所說:
Docker 的“生態(tài)系統(tǒng)技術(shù)合作伙伴(EPT)計劃”是為了突出那些在Docker 生態(tài)系統(tǒng)里面已經(jīng)證明了自身和Docker引擎集成的品質(zhì)的合作伙伴。我們發(fā)展這個計劃,是為了應(yīng)對用戶請求,尋找生態(tài)系統(tǒng)各個方面的推薦解決方案,從技術(shù)領(lǐng)域例如監(jiān)控和日志到網(wǎng)絡(luò)。
Docker 的日志通過在啟動容器時指定一個日志驅(qū)動來工作,因此容器的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出流能夠被重定向到其他地方。既可以是一個像syslog 這樣的標(biāo)準(zhǔn)日志機制,也可以是一個像Sumo Logic 或LogEntries 這樣的中央日志系統(tǒng)。除了標(biāo)準(zhǔn)輸出和錯誤流之外,運行在容器內(nèi)部的應(yīng)用也可以寫它們自己的日志文件到syslog 或者/var/log 下的一個指定日志文件。對于后者,日志文件不會直接被日志驅(qū)動處理。
日志驅(qū)動的想法誕生于docker-dev 郵件列表,后來被正式定義為一個Github 問題。在發(fā)布過程中,Docker 不斷增加對不同日志驅(qū)動的支持,最新的Docker 1.9.0支持AWS CloudWatch。
在實際開發(fā)中,容器性能和生命周期度量也需要被監(jiān)控。對于這些,Stinemates 說:
Docker 引擎API 公開了性能度量,生命周期事件和日志數(shù)據(jù)。這是供應(yīng)商藉此實現(xiàn)的公共基礎(chǔ)。日志驅(qū)動擴展了Docker 引擎API,使其能夠定制日志處理行為,在此之前僅有Docker 日志流端點這一個選擇。
今天的應(yīng)用通常生成大量的日志數(shù)據(jù)。容器的性能會受到影響嗎?Stinemates 說:“性能不是一個問題,因為性能和日志驅(qū)動捆綁在一起。日志驅(qū)動是模塊化的,因此用戶能夠根據(jù)自己的環(huán)境和性能要求去選擇驅(qū)動。”
在問到一個新的工具/供應(yīng)商如何才能加入ETP 計劃時,Stinemates 說:
想加入ETP 方案,合作伙伴需要注冊技術(shù)合作計劃。合作伙伴需要對Docker 生態(tài)系統(tǒng)做出一些有意義的影響,像集成現(xiàn)有的服務(wù)到Docker 的API,構(gòu)建一個基于Docker平臺或服務(wù)于Docker平臺的產(chǎn)品。合作伙伴的實現(xiàn)不應(yīng)該損害Docker 的可移植性,應(yīng)該維護和提升Docker 作為基礎(chǔ)設(shè)施中的重點地位,不要在Docker 外部進行封裝或代理。
和Treasure Data/Fluentd。其中一些工具在基本日志收集之外有一些額外的特性。
查看英文原文:Docker Unveils New Ecosystem Technology Partners for Log Management