Docker處理日誌的方法&日誌收集工具比較

測試logstash:docker run -it mylogstash:0.1.0 logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

http://www.jianshu.com/p/8384f6cd0f22

https://www.cnblogs.com/richaaaard/p/6109595.htmlhtml

===========================web

Docker處理日誌的方法是經過docker engine捕捉每個容器進程的STDOUT和STDERR,經過爲contrainer制定不一樣log driver 來實現容器日誌的收集,

缺省json-file log driver是將容器的STDOUT/STDERR 輸出保存在磁盤上,而後用戶就能使用docker logs <container>來進行查詢

https://www.cnrancher.com/collect-container-log/docker

============json

縱覽當前容器日誌收集的場景,無非就是兩種方式:一是直接採集Docker標準輸出,容器內的服務將日誌信息寫到標準輸出,這樣經過Docker的log driver能夠發送到相應的收集程序中;二是延續傳統的日誌寫入方式,容器內的服務將日誌直接寫到普通文件中,經過Docker volume將日誌文件映射到Host上,日誌採集程序就能夠收集它。ruby

第一種方式足夠簡單,直接配置相關的Log Driver就能夠,可是這種方式也有些劣勢:性能

  1. 當主機的容器密度比較高的時候,對Docker Engine的壓力比較大,畢竟容器標準輸出都要經過Docker Engine來處理。
  2. 儘管原則上,咱們但願遵循一容器部署一個服務的原則,可是有時候特殊狀況不可避免容器內有多個業務服務,這時候很難作到全部服務都向標準輸出寫日誌,這就須要用到前面所說的第二種場景模式。
  3. 雖然咱們能夠先選擇不少種Log Driver,可是有些Log Driver會破壞Docker原生的體驗,好比docker logs沒法直接看到容器日誌。

https://www.cnrancher.com/rancher-logging/測試

===================ui

1)日誌客戶端(Logstash,Fluentd, Logtail)橫評

https://yq.aliyun.com/articles/3228?spm=5176.team4.teamshow1.37.faH93Z阿里雲

 2)Logstash 與它的五種替代方案(Filebeat、Fluentd、rsyslog、syslog-ng 以及 Logagent)的比較
http://www.cnblogs.com/richaaaard/p/6109595.htmlspa

3)Fluentd是很通用的日誌採集程序,擁有優異的性能,相對Logstash來講同等壓力下,其內存消耗要少不少。Logging Helper是能夠理解微Fluentd的助手,它能夠識別容器內的日誌卷文件,通知Fluentd進行採集 

經過Fluentd咱們能夠對接不少第三方日誌存儲體系,可是Fluentd自身並不能完成日誌採集的全部場景,因此很是須要Logging Helper的幫助。經過Logging Helper能夠定製出一些額外採集規則,好比能夠過濾某些容器日誌等等

https://www.cnrancher.com/rancher-logging/

=============

https://yq.aliyun.com/articles/3228

ogstash支持全部主流日誌類型,插件支持最豐富,能夠靈活DIY,但性能較差,JVM容易致使內存使用量高。fluentd支持全部主流日誌類型,插件支持較多,性能表現較好。logtail佔用機器cpu、內存資源最少,結合阿里雲日誌服務的E2E體驗良好,但目前對特定日誌類型解析的支持較弱,後續須要把這一塊補起來

相關文章
相關標籤/搜索