docker容器日志收集方案(方案四,目前使用的方案)


先看數據流圖,然后一一給大家解釋

 

這個方案是將日志直接從應用代碼中將日志輸出到redis中(注意,是應用直接連接redis進行日志輸出),redis充當一個緩存中間件有一定的緩存能力,不過有限,因為使用的是內存,內存使用完了就會出現阻塞失敗等現象從而導致日志丟失。

接下來logstash從redis中讀取日志然后批量推送ES,logstash有一定的堆積能力,可以控制線程以及批量推送ES日志數量,不過不會像filebeat有感知壓力的功能。

微服務應用對redis的鏈接為弱引用,成功失敗都無所謂。

這個方案中中間任意環節出問題都會導致日志輸出問題。

而且可能會造成redis-logstash-ES整個鏈路癱瘓

因為redis和logstash堆積能力實在有限,如果將中間鏈路環節使用其他中間件會好的多。

這個方案的優點就是在logback.xml文件配置好之后什么都不用管,直接去查日志就可以了,性能跟得上redis2GB內存1天處理1.5億條日志沒問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM