全部產品
Search
文件中心

:Logtail安裝採集快速入門

更新時間:Apr 12, 2025

Logtail根據採集情境不同操作流程也有差異,本文將介紹在主機情境,K8s叢集情境,容器情境下如何使用Logtail採集日誌。

主機情境Logtail安裝採集指引

採集主機文本日誌時,根據主機所屬情況,Log Service支援通過一鍵自動安裝Logtail方式和手動安裝Logtail方式進行採集。

一鍵自動安裝

滿足如下條件時,可在控制台上一鍵自動安裝Logtail,Log Service將藉助營運編排服務OOS,在ECS執行個體中自動安裝Logtail,詳情請參見主機文本日誌採集(自動安裝)

  • 主控件類型為ECS。

  • 主機與Log ServiceProject同屬一個帳號,且同屬一個地區。

手動安裝方式

存在如下任一情況時,請在主機上手動安裝Logtail,詳情請參見主機文本日誌採集(手動安裝)

  • 主控件類型不是ECS。

  • 主控件類型是ECS,但是與Log Service不屬於同一個帳號。

  • 主控件類型是ECS,且與Log ServiceProject同屬一個帳號,但不屬於同一個地區。

K8s叢集情境Logtail安裝採集指引

採集容器K8s日誌可用於故障排查、效能最佳化、安全審計、資源使用率分析。Log Service支援通過DaemonSet方式和Sidecar方式採集K8s叢集的容器日誌。

DaemonSet模式

  • 在DaemonSet模式中,Kubernetes叢集確保每個節點(Node)只運行一個Logtail容器,用於採集當前節點內所有容器(Containers)的日誌。

  • 當新節點加入叢集時,Kubernetes叢集會自動在新節點上建立Logtail容器;當節點退出叢集時,Kubernetes叢集會自動銷毀當前節點上的Logtail容器。通過DaemonSet的自動擴縮容機制以及標識型機器組,無需您手動管理Logtail執行個體。

Sidecar模式

  • 在Sidecar模式中,每個容器組(Pod)運行一個Logtail容器,用於採集當前容器組(Pod)所有容器(Containers)的日誌。不同Pod的日誌採集相互隔離。

  • 為了採集同一Pod中其他容器的記錄檔,需要通過共用儲存卷的方式來完成,即將同一份儲存卷分別掛載到業務容器和Logtail容器。關於Sidecar方式採集容器日誌的更多資訊,請參見Sidecar日誌採集介紹Sidecar模式樣本。儲存卷的更多資訊,請參見儲存基礎知識

採集方式

情境

優勢

劣勢

DaemonSet

一般情況下建議使用DaemonSet

營運簡單、資源佔用少、支援採集容器的標準輸出和文字檔、配置方式靈活。

Logtail採集該節點內所有容器的日誌,存在一定的效能瓶頸,且各個容器之間的隔離性較弱。

Sidecar

需要每個Pod使用單獨Logtail執行個體採集的情況(ASK叢集預設使用sidecar方式部署Logtail)。

為每個需要採集日誌的容器建立一個Sidecar容器,多租戶隔離性好。

資源消耗較高,配置與維護較複雜,

容器發現

  • Logtail容器採集其他容器的日誌,必鬚髮現和確定哪些容器正在運行,這個過程稱為容器發現。在容器發現階段,Logtail容器不與Kubernetes叢集的kube-apiserver進行通訊,而是直接和節點上的容器運行時守護進程(Container Runtime Daemon)進行通訊,從而擷取當前節點上的所有容器資訊,避免容器發現對叢集kube-apiserver產生壓力。

  • Logtail支援通過Namespace名稱、Pod名稱、Pod標籤、容器環境變數等條件指定或排除採集相應容器的日誌。

容器檔案路徑映射

在Kubernetes叢集中,因為Pod之間資源隔離,Logtail容器無法直接存取其他Pod中的容器的檔案。但是,容器內的檔案系統都是由宿主機的檔案系統掛載形成,通過將宿主機根目錄所在的檔案系統掛載到Logtail容器,就可以訪問宿主機上的任意檔案,從而間接採集業務容器檔案系統的檔案。容器內檔案路徑與宿主機檔案路徑之間的關係被稱為檔案路徑映射。

記錄檔在當前容器內的路徑是/log/app.log,假設映射後的宿主機路徑是/var/lib/docker/containers/<container-id>/log/app.log。Logtail預設將宿主機根目錄所在的檔案系統掛載到自身的/logtail_host目錄下,因此Logtail實際採集的檔案路徑為/logtail_host/var/lib/docker/containers/<container-id>/log/app.log

注意事項

容器運行時支援

  • 支援引擎:

    • Docker

    • Containerd

  • 儲存驅動限制(僅Docker):

    • 只支援Overlay、Overlay2。

    • 其他驅動:若使用非Overlay驅動,需將日誌目錄通過資料卷掛載為臨時目錄

儲存卷掛載方式

如果NAS以PVC的方式掛載到資料目錄。

  • 禁止使用:DaemonSet部署Logtail。

  • 推薦使用:

記錄檔路徑規範

  • 禁止使用軟連結:

    • 錯誤配置:/var/log/app -> /mnt/nas/logs

    • 正確配置:直接使用實體路徑 /mnt/nas/logs

  • 掛載路徑匹配規則:

    如果業務容器的資料目錄通過資料卷(Volume)掛載, 採集路徑必須≥掛載點路徑。

    樣本

    1掛載點:/var/log/service
    2✅ 有效採集路徑:/var/log/service 或 /var/log/service/subdir
    3❌ 無效採集路徑:/var/log (路徑過短)

容器停止時的Tlog

運行時

日誌完整性

容器銷毀延遲風險

最佳化建議

Docker

如果在容器停止前,出現因網路延遲、資源佔用多等原因導致的採集延時,可能會丟失容器停止前的部分日誌。

當容器被停止時,Logtail會立刻釋放容器檔案控制代碼,容器可正常退出。

增加日誌發送頻率(調小flush_interval)。

Containerd

當容器被停止時,Logtail會持續持有容器內檔案的控制代碼(即保持對記錄檔的開啟狀態),直至所有記錄檔內容發送完畢。

當出現網路延遲、資源佔用多等原因導致的採集延時時,可能會導致業務容器不能及時銷毀。

配置max_hold_buffer_size限制記憶體佔用。

Docker容器情境Logtail安裝採集指引

在伺服器上部署Docker後可以採集日誌,Docker的日誌分為兩種類型:標準輸出和檔案日誌。檔案日誌是指容器內產生的日誌被寫入伺服器的指定檔案目錄中,而標準輸出則指容器自身的即時輸出資料流。