1. 程式人生 > >docker容器日誌收集方案彙總評價總結

docker容器日誌收集方案彙總評價總結

docker日誌收集方案有太多,下面截圖羅列docker官方給的日誌收集方案(詳細請轉docker官方文件)。很多方案都不適合我們下面的系列文章沒有說。

 

 

經過以下5篇部落格的敘述簡單說下docker容器日誌採集方案

docker容器日誌收集方案(方案一 filebeat+本地日誌收集)
docker容器日誌收集方案(方案二 filebeat+syslog本地日誌收集)
docker容器日誌收集方案(方案三 filebeat+journald本地日誌收集)
docker容器日誌收集方案(方案四,目前使用的方案)
docker容器日誌收集方案(方案N,其他中介軟體傳輸方案)

docker日誌收集方案基本歸為兩類:

1、本地儲存

2、遠端輸出

由於docker的特殊性大部分採用的都是遠端即時輸出方案,比如阿里雲,亞馬遜雲,都有自己的外掛

各有優劣勢,不過總體趨勢肯定是遠端即時傳輸方式,如果網路有壓力,進行日誌壓縮傳輸。


本地儲存然後在掃描傳輸實際上是把積壓問題放在了虛擬機器上面。這種方案是基於虛擬機器時代虛擬化技術的方案

如果在容器內部放置日誌掃描程式,首先會導致容器執行兩個程序,這是docker官方不推薦的(https://docs.docker-cn.com/engine/admin/multi-service_container/),

會造成不必要的麻煩引起問題不便追查(黑盒),增加了使用難度。


其實我們還可以通過容器捲來吧日誌輸出到指定目錄但是使用叢集之後,

容器卷是建立在作業系統檔案系統之上的,就需要針對卷做可移植操作,

同樣是使用成本增加,因為如果使用的是docker叢集要保證每臺宿主機能訪問相同的卷,

我們要做集中儲存(集中儲存我們資料庫才有這個待遇啊!!!


對於docker容器虛擬化技術有幾個特點

    1、容器在叢集宿主之間會漂移,每漂移一次容器ID會變更,所以跟著容器相關都會換掉,當然給容器起的名字不會換掉,不過那只是在叢集中標記(更直白的說這個名字是儲存在第三方鍵值對進行對應的是docker引擎維護的)。

    2、容器是黑盒封閉性的,把日誌先輸出到容器內部不符合新一代容器技術的理念,處理不好會造成大量垃圾檔案。