全部產品
Search
文件中心

Simple Log Service:主機文本日誌採集

更新時間:Nov 22, 2025

分散在不同伺服器上的業務日誌或系統日誌,難以統一檢索、監控和分析。使用LoongCollector(Logtail)採集器,可將 ECS 執行個體、自建 IDC 或其他雲廠商主機上的文本日誌即時、增量地採集到 Log Service,以實現日誌的集中化管理與分析。如需採集全量日誌,可以通過匯入歷史記錄檔實現。

適用範圍

  • 支援的作業系統與架構:

    LoongCollector 當前僅支援 Linux 系統;Windows 主機請使用 Logtail。新接入情境建議優先選用 LoongCollector。

    LoongCollector 是阿里雲Log Service推出的新一代日誌採集 Agent,是 Logtail 的升級版。使用者在使用時,只需安裝LoongCollector或Logtail其中之一,無需重複安裝。
  • 計算資源要求:

    • CPU:最少預留0.4 Core。

    • 記憶體:最少需要 300 MB。

    • 使用率建議:為保證穩定運行,建議LoongCollector(Logtail)的實際資源使用率低於限制值的 80%。實際使用量與採集速率、監控目錄和檔案數量、發送阻塞程度等因素相關。

  • 許可權要求:

    若使用 RAM 使用者操作,需授予 AliyunLogFullAccessAliyunECSFullAccess 許可權。如需精細化授權,請參考附錄:自訂權限原則

採集配置建立流程

  1. 準備工作建立Project和Logstore,Project是資源嵌入式管理單元,用於隔離不同業務日誌,而Logstore用於儲存日誌。

  2. 配置機器組(安裝LoongCollector)根據伺服器類型,安裝LoongCollector,並將其加入到機器組。使用機器組統一管理採集節點,對伺服器進行配置分發與狀態管理。

  3. 建立並配置日誌採集規則

    1. 全域與輸入配置:定義採集配置的名稱及日誌採集的來源和範圍。

    2. Tlog與結構化根據日誌格式進行處理配置。

      • 多行日誌:適用於單條日誌跨越多行(如 Java 異常堆棧、Python traceback),通過行首正則識別每條日誌,並將同一日誌的連續多行內容合并為一條完整日誌。

      • 結構化解析:通過配置解析外掛程式(如正則、分隔字元、NGINX 模式等)將原始字串提取為結構化的索引值對,每個欄位都可以被獨立查詢與分析。

    3. 日誌過濾:通過配置採集黑名單和內容過濾規則,篩選有效日誌內容,減少冗餘資料的傳輸與儲存。

    4. 日誌分類通過配置日誌主題(Topic)靈活區分不同業務、伺服器、路徑來源的日誌。

  4. 查詢與分析配置:系統預設開啟全文索引,支援關鍵詞搜尋。建議啟用欄位索引,以便對結構化欄位進行精確查詢和分析,提升檢索效率。

  5. 驗證與故障排查:完成配置後,驗證日誌是否成功採集,如遇採集無資料、心跳失敗或解析錯誤等問題,參考常見問題排查

準備工作

在採集日誌前,需規劃並建立用於管理與儲存日誌的Project和Logstore。若已有可用資源,可跳過此步驟,直接進入配置機器組(安裝LoongCollector)

建立Project

  1. 登入Log Service控制台

  2. 單擊建立Project,並配置:

    • 所屬地區:根據日誌來源選擇,建立後不可修改。

    • Project名稱:阿里雲內全域唯一,建立後不可修改。

    • 其他配置保持預設,單擊建立。如需瞭解其他參數,請參見建立Project

建立Logstore

  1. 單擊Project名稱,進入目標Project。

  2. 在左側導覽列,選擇image日誌儲存,單擊+

  3. 在建立Logstore頁面,完成以下核心配置:

    • Logstore名稱:設定一個在Project內唯一的名稱,該名稱建立後不可修改。

    • Logstore類型:根據規格對比選擇標準型或查詢型。

    • 計費模式

      • 按使用功能計費:按儲存、索引、讀寫次數等各項資源獨立計費。適合小規模或功能使用不確定的情境。

      • 按寫入資料量計費:僅按原始寫入資料量計費,提供30天免費儲存,以及免費的資料加工、投遞等功能。適合儲存周期接近30天或資料處理鏈路複雜的業務情境。

    • 資料儲存時間:設定日誌的保留天數(1~3650天,3650為永久儲存),預設為30天。

    • 其他配置保持預設,單擊確定。如需瞭解其他配置資訊,請參考管理Logstore

步驟一:配置機器組(安裝LoongCollector)

在完成準備工作後,為不同類型的伺服器安裝LoongCollector並將其加入機器組。

說明

以下安裝步驟僅適用於日誌源為阿里雲ECS執行個體,且該執行個體與Log ServiceProject屬於同一阿里雲帳號和相同地區的情境。

如果您的ECS執行個體與Project不在同一帳號或地區,或者日誌源為自建伺服器,請參考LoongCollector 安裝與配置進行操作。

配置步驟:

  1. image日誌庫頁面,單擊目標Logstore名稱前的image展開。

  2. 單擊資料接入後的image,在快速資料接入彈框中,選擇文本日誌接入模板(如單行-文本日誌),單擊立即接入

    所有文本日誌接入模板僅在解析外掛程式上有所差異,其餘配置流程一致,後續均可修改。
  3. 機器組配置頁面,配置如下參數:

    • 使用情境主機情境

    • 安裝環境ECS

    • 配置機器組:根據目標伺服器的LoongCollector安裝情況與機器組配置狀態,選擇對應操作:

      • 已安裝LoongCollector且已加入某個機器組,直接在源機器組列表中勾選,將其添加至應用機器組列表,無需重複建立。

      • 未安裝LoongCollector,單擊建立機器組

        以下步驟將引導您完成LoongCollector的一鍵自動安裝並建立機器組。
        1. 系統會自動列出與 Project 同地區的 ECS 執行個體,勾選需要採集日誌的一台或多台執行個體。

        2. 單擊安裝並建立為機器組,系統將自動在所選ECS執行個體上安裝LoongCollector。

        3. 配置機器組名稱並單擊確定

        說明

        如果安裝失敗或一直處於等待中,請檢查ECS地區是否與Project相同。

      • 如需將已安裝LoongCollector的伺服器加入已有機器組,請參考常見問題如何將伺服器加入到已有機器組?

  4. 檢查心跳狀態:單擊下一步,頁面出現機器組心跳情況。查看心跳狀態,若為OK表示機器組串連正常,單擊下一步,進入Logtail配置頁面。

    若為FAIL,可能是初次建立心跳需要花費一些時間,請等待兩分鐘左右,再重新整理心跳狀態。若重新整理後仍為FAIL,請參考機器組心跳串連為fail進一步排查。

步驟二:建立並配置日誌採集規則

完成LoongCollector安裝和機器組配置後,進入Logtail配置頁面,定義日誌採集和處理規則。

1. 全域與輸入配置

定義採集配置的名稱及日誌採集的來源和範圍。

全域配置

  • 配置名稱:自訂採集配置名稱,在其所屬Project內必須唯一。建立成功後,無法修改。命名規則:

    • 僅支援小寫字母、數字、連字號(-)和底線(_)。

    • 必須以小寫字母或者數字作為開頭和結尾。

輸入配置

  • 類型文本日誌採集

  • 檔案路徑:日誌採集的路徑。

    • Linux:以“/”開頭,如/data/mylogs/**/*.log,表示/data/mylogs目錄下所有尾碼名為.Log的檔案。

    • Windows:以盤符開頭,如C:\Program Files\Intel\**\*.Log

  • 最大目錄監控深度檔案路徑中萬用字元**匹配的最大目錄深度。預設為0,表示只監控本層目錄。


2. Tlog與結構化

通過配置Tlog規則,將原始非結構化日誌轉換為結構化、可檢索的資料,提升日誌查詢與分析效率。建議在配置前先添加日誌範例

Logtail配置頁面的處理配置地區,單擊添加日誌範例,輸入待採集的日誌內容。系統將基於範例識別日誌格式,輔助產生Regex和解析規則,降低配置難度。

情境一:多行Tlog(如Java堆棧日誌)

由於Java異常堆棧、JSON等日誌通常跨越多行,在預設採集模式下會被拆分為多條不完整的記錄,導致上下文資訊丟失;為此,可啟用多行模式,通過配置行首Regex,將同一日誌的連續多行內容合并為一條完整日誌。

效果樣本:

未經任何處理的原始日誌

預設採集模式下,每行作為獨立日誌,堆棧資訊被拆散,丟失上下文

開啟多行模式,通過行首Regex識別完整日誌,保留完整語義結構。

image

image

image

配置步驟:Logtail配置頁面的處理配置地區,開啟多行模式

  • 類型:選擇自訂多行JSON

    • 自訂:原始日誌的格式不固定,需配置行首Regex,來標識每條日誌的起始行。

      • 行首Regex:支援自動產生或手動輸入,Regex需要能夠匹配完整的一行資料,如上述樣本中匹配的Regex為\[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*

        • 自動產生:單擊自動產生Regex,然後在日誌範例文字框中,選擇需提取的日誌內容,單擊產生正則

        • 手動輸入:單擊手動輸入Regex,輸入完成後,單擊驗證

    • 多行JSON:當原始日誌均為標準JSON格式時,Log Service會自動處理單條JSON日誌內部的換行。

  • 切分失敗處理方式

    • 丟棄:如果一段文本無法匹配行首規則,則直接丟棄。

    • 保留單行:將無法匹配的文本按原始的單行模式進行切分和保留。

情境二:結構化日誌

當原始日誌為非結構化或半結構化文本(如 Nginx 訪問日誌、應用輸出日誌)時,直接進行查詢和分析往往效率低下。Log Service提供多種資料解析外掛程式,能夠自動將不同格式的原始日誌轉換為結構化資料,為後續的分析、監控和警示提供堅實的資料基礎。

效果樣本:

未經任何處理的原始日誌

結構化解析後的日誌

192.168.*.* - - [15/Apr/2025:16:40:00 +0800] "GET /nginx-logo.png HTTP/1.1" 0.000 514 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* Safari/537.36"
body_bytes_sent: 368
http_referer: -
http_user_agent : Mozi11a/5.0 (Nindows NT 10.0; Win64; x64) AppleMebKit/537.36 (KHTML, like Gecko) Chrome/131.0.x.x Safari/537.36
remote_addr:192.168.*.*
remote_user: -
request_length: 514
request_method: GET
request_time: 0.000
request_uri: /nginx-logo.png
status: 200
time_local: 15/Apr/2025:16:40:00

配置步驟:Logtail配置頁面的處理配置地區

  1. 添加解析外掛程式:單擊添加處理外掛程式,根據實際格式配置正則解析、分隔字元解析、JSON 解析等外掛程式。此處以採集NGINX日誌為例,選擇原生處理外掛程式 > NGINX模式解析

  2. NGINX日誌配置:將 Nginx 伺服器設定檔(nginx.conf)中的 log_format 定義完整地複製並粘貼到此文字框中。

    樣本:

    log_format main  '$remote_addr - $remote_user [$time_local] "$request" ''$request_time $request_length ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent"';
    重要

    此處的格式定義必須與伺服器上組建記錄檔的格式完全一致,否則將導致日誌解析失敗。

  3. 通用配置參數說明:以下參數在多種資料解析外掛程式中都會出現,其功能和用法是統一的。

    • 原始欄位:指定要解析的源欄位名。預設為content,即採集到的整條日誌內容。

    • 解析失敗時保留原始欄位:推薦開啟。當日誌無法被外掛程式成功解析時(例如格式不匹配),此選項能確保原始日誌內容不會丟失,而是被完整保留在指定的原始欄位中。

    • 解析成功時保留原始欄位:選中後,即使日誌解析成功,原始日誌內容也會被保留。


3. 日誌過濾

在日誌採集過程中,大量低價值或無關日誌(如 DEBUG/INFO 層級日誌)的無差別收集,不僅造成儲存資源浪費、增加成本,還影響查詢效率並帶來資料泄露風險。為此,可通過精細化過濾策略實現高效、安全的日誌採集。

通過內容過濾降低成本

基於日誌內容的欄位過濾(如僅採集 level 為 WARNING 或 ERROR 的日誌)。

效果樣本:

未經任何處理的原始日誌

只採集WARNINGERROR日誌

{"level":"WARNING","timestamp":"2025-09-23T19:11:40+0800","cluster":"yilu-cluster-0728","message":"Disk space is running low","freeSpace":"15%"}
{"level":"ERROR","timestamp":"2025-09-23T19:11:42+0800","cluster":"yilu-cluster-0728","message":"Failed to connect to database","errorCode":5003}
{"level":"INFO","timestamp":"2025-09-23T19:11:47+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}
{"level":"WARNING","timestamp":"2025-09-23T19:11:40+0800","cluster":"yilu-cluster-0728","message":"Disk space is running low","freeSpace":"15%"}
{"level":"ERROR","timestamp":"2025-09-23T19:11:42+0800","cluster":"yilu-cluster-0728","message":"Failed to connect to database","errorCode":5003}

配置步驟:Logtail配置頁面的處理配置地區

單擊添加處理外掛程式,選擇原生處理外掛程式 > 過濾處理

  • 欄位名:過濾的日誌欄位。

  • 欄位值:用於過濾的Regex,僅支援全文匹配,不支援關鍵詞部分匹配。

通過黑名單控制採集範圍

通過黑名單機制排除指定目錄或檔案,避免無關或敏感日誌被上傳。

配置步驟:Logtail配置頁面的輸入配置 > 其他輸入配置地區,啟用採集黑名單,並單擊添加

支援完整匹配和萬用字元匹配目錄和檔案名稱,萬用字元只支援星號(*)和半形問號(?)。
  • 檔案路徑黑名單:需要忽略的檔案路徑,樣本:

    • /home/admin/private*.log:在採集時忽略/home/admin/目錄下所有以private開頭,以.log結尾的檔案。

    • /home/admin/private*/*_inner.log:在採集時忽略/home/admin/目錄下以private開頭的目錄內,以_inner.log結尾的檔案。

  • 檔案黑名單:配置採集時需要忽略的檔案名稱,樣本:

    • app_inner.log:在採集時忽略所有名為app_inner.log的檔案。

  • 目錄黑名單:目錄路徑不能以正斜線(/)結尾,樣本:

    • /home/admin/dir1/:目錄黑名單不會生效。

    • /home/admin/dir*:在採集時忽略/home/admin/目錄下所有以dir開頭的子目錄下的檔案。

    • /home/admin/*/dir:在採集時忽略/home/admin/目錄下二級目錄名為dir的子目錄下的所有檔案。例如/home/admin/a/dir目錄下的檔案被忽略,/home/admin/a/b/dir目錄下的檔案被採集。

4. 日誌分類

當多個應用或執行個體的日誌格式相同但路徑不同時(如 /apps/app-A/run.log/apps/app-B/run.log),採集日誌難以區分來源。通過配置日誌主題(Topic),對來自不同應用、服務或路徑的日誌進行邏輯區分,實現統一儲存下的高效歸類與精準查詢。

配置步驟:全域配置 > 其他全域配置 > 日誌主題類型:選擇Topic產生方式,支援如下三種類型:

  • 機器組Topic:採集配置應用於多個機器組時,LoongCollector 會自動使用伺服器所屬的機器組名稱作為 __topic__ 欄位上傳。適用於按主機劃分日誌情境。

  • 自訂:格式為customized://<自訂佈景主題名>,例如 customized://app-login。適用於固定業務標識的靜態主題情境。

  • 檔案路徑提取:從記錄檔的完整路徑中提取關鍵資訊,動態標記日誌來源。適用於多使用者/應用共用相同記錄檔名但路徑不同的情況。當多個使用者或服務將日誌寫入不同頂級目錄,但下級路徑和檔案名稱一致時,僅靠檔案名稱無法區分來源,例如:

    /data/logs
    ├── userA
    │   └── serviceA
    │       └── service.log
    ├── userB
    │   └── serviceA
    │       └── service.log
    └── userC
        └── serviceA
            └── service.log

    此時您可以配置檔案路徑提取,並使用Regex從完整路徑中提取關鍵資訊,將匹配結果作為日誌主題(Topic)上傳至Logstore。

    檔案路徑擷取規則:基於Regex的擷取的群組

    在配置Regex時,系統根據擷取的群組的數量和命名方式自動決定輸出欄位格式,規則如下:

    檔案路徑的Regex中,需要對正斜線(/)進行轉義。

    擷取的群組類型

    適用情境

    產生欄位

    正則樣本

    匹配路徑樣本

    產生欄位樣本

    單擷取的群組(僅一個 (.*?)

    僅需一個維度區分來源(如使用者名稱、環境)

    產生__topic__欄位

    \/logs\/(.*?)\/app\.log

    /logs/userA/app.log

    __topic__:userA

    多擷取的群組-非命名(多個 (.*?)

    需要多個維度區分來源但無需語義標籤

    產生tag欄位__tag__:__topic_{i}__,其中{i}為擷取的群組的序號

    \/logs\/(.*?)\/(.*?)\/app\.log

    /logs/userA/svcA/app.log

    __tag__:__topic_1__userA

    __tag__:__topic_2__svcA

    多擷取的群組-命名(使用 (?P<name>.*?)

    需要多個維度區分來源且希望欄位含義清晰、便於查詢與分析

    產生tag欄位__tag__:{name}

    \/logs\/(?P<user>.*?)\/(?P<service>.*?)\/app\.log

    /logs/userA/svcA/app.log

    __tag__:user:userA

    __tag__:service:svcA

步驟三:查詢與分析配置

在完成Tlog與外掛程式配置後,單擊下一步,進入查詢分析配置頁面:

  • 系統預設開啟全文索引,支援對日誌原始內容進行關鍵詞搜尋。

  • 如需按欄位進行精確查詢,請在頁面載入出預覽資料後,單擊自動產生索引,Log Service將根據預覽資料中的第一條內容產生欄位索引

配置完成後,單擊下一步,完成整個採集流程的設定。

步驟四:驗證與故障排查

配置完成後,應用到機器組並儲存。等待片刻後,按以下清單進行驗證。

驗證清單

  1. 確認記錄檔有新增內容:LoongCollector只採集增量日誌。執行 tail -f /path/to/your/log/file,並觸發業務操作,確保有新的日誌正在寫入。

  2. 檢查LoongCollector狀態sudo /etc/init.d/loongcollectord status

  3. 檢查機器組心跳:前往image資源 > 機器組頁面,單擊目標機器組名稱,在機器組配置 > 機器組狀態地區,查看心跳狀態。

    • 如果心跳為OK,則表示機器組與Log Service Project 串連正常。

    • 如果心跳為FAIL:參考機器組心跳串連為fail進行排查。

  4. 查詢日誌:進入目標 Logstore 的查詢分析頁面,單擊查詢/分析(預設時間範圍為最近15分鐘),觀察是否有新日誌流入。

常見問題排查

機器組心跳串連為fail

  1. 檢查使用者標識:如果您的伺服器類型不是ECS,或ECS和Project屬於不同阿里雲帳號,請檢查指定目錄下是否存在正確的使用者標識,如不存在請參考如下命令手動建立。

    • Linux:執行cd /etc/ilogtail/users/ && touch <uid>命令,建立使用者標識檔案。

    • Windows:進入C:\LogtailData\users\目錄,建立一個名為<uid>的空檔案。

  2. 檢查機器組標識:如果您在建立機器組時使用了使用者自訂標識,請檢查指定目錄下是否存在user_defined_id檔案,如果存在請檢查該檔案中的內容是否與機器組配置的自訂標識一致。

    • Linux:

      # 配置使用者自訂標識,如目錄不存在請手動建立
      echo "user-defined-1" > /etc/ilogtail/user_defined_id
    • Windows:在C:\LogtailData目錄下建立user_defined_id檔案,並寫入使用者自訂標識。(如目錄不存在,請手動建立)

  3. 如果使用者標識和機器組標識均配置無誤,請參考LoongCollector(Logtail)機器組問題排查思路進一步排查。


日誌採集無資料

  1. 檢查是否有增量日誌:配置LoongCollector(Logtail)採集後,如果待採集的記錄檔沒有新增日誌,則LoongCollector(Logtail)不會採集該檔案。

  2. 檢查機器組心跳狀態:前往image資源 > 機器組頁面,單擊目標機器組名稱,在機器組配置 > 機器組狀態地區,查看心跳狀態。

    • 如果心跳為OK,則表示機器組與Log Service Project 串連正常。

    • 如果心跳為FAIL:參考機器組心跳串連為fail進行排查。

  3. 確認LoongCollector(Logtail)採集配置是否已應用到機器組:即使LoongCollector(Logtail)採集配置已建立,但如果未將其應用到機器組,日誌仍無法被採集。

    1. 前往image資源 > 機器組頁面,單擊目標機器組名稱,進入機器組配置頁面。

    2. 在頁面中查看管理配置,左側展示全部Logtail配置,右側展示已生效Logtail配置。如果目標LoongCollector(Logtail)採集配置已移動到右側生效地區,則表示該配置已成功應用到目標機器組。

    3. 如果目標LoongCollector(Logtail)採集配置未移動到右側生效地區,請單擊修改,在左側全部Logtail配置列表中勾選目標LoongCollector(Logtail)配置名稱,單擊image移動到右側生效地區,完成後單擊儲存


採集日誌報錯或格式錯誤

排查思路:這種情況說明網路連接和基礎配置正常,問題主要出在日誌內容解析規則不匹配。您需要查看具體的錯誤資訊來定位問題:

  1. Logtail配置頁面,單擊採集異常的LoongCollector(Logtail)配置名稱,在日誌採集錯誤頁簽下,單擊時間選擇設定查詢時間。

  2. 採集異常監控 > 全量錯誤資訊地區,查看錯誤記錄檔的警示類型,並根據採集資料常見錯誤類型查詢對應的解決辦法。

配額與限制

限制項

限制說明

單條日誌長度

預設限制為512 KB。您可通過啟動參數max_read_buffer_size進行調整,最大不能超過8 MB。具體操作,請參見Logtail網路類型,啟動參數與設定檔

多行日誌按行首Regex劃分後,每條日誌大小限制仍為512 KB。如果日誌超過512 KB,會被強制拆分為多條進行採集。例如:單條日誌大小為1025 KB,則第一次處理512 KB,第二次處理512 KB,第三次處理1 KB,最終採集結果為多條不完整的日誌。

檔案編碼

支援UTF-8或GBK編碼的記錄檔,建議使用UTF-8編碼獲得更好的處理效能。

警告

如果記錄檔為其它編碼格式則會出現亂碼、資料丟失等問題。

記錄檔輪轉

日誌輪轉隊列大小預設為20。您可通過啟動參數logreader_max_rotate_queue_size進行調整。具體操作,請參見Logtail網路類型,啟動參數與設定檔

支援設定採集路徑為xxx.logxxx.log*形式。

重要

同一個Logtail執行個體中請勿混用兩種形式,否則可能導致同一檔案匹配多個Logtail採集配置,出現重複採集。

如果未處理完成的檔案超過20個,將導致新產生的日誌丟失。此類情況,請優先排查Logstore Shard寫入Quota是否超限,並調整Logtail並發水平。具體操作,請Logtail網路類型,啟動參數與設定檔

日誌解析阻塞時採集行為

日誌解析阻塞時,Logtail會保持該記錄檔描述符為開啟狀態,避免阻塞期間檔案被刪除,導致日誌丟失。

如果解析阻塞期間出現多次記錄檔輪轉,Logtail會將檔案放入輪轉隊列。

Regex

支援Perl相容Regex。

JSON

完全支援標準JSON(RFC7159ECMA-404)。不支援非標準JSON,例如{"name": "\xE5\xAD\xA6"}

檔案開啟行為

Logtail會保持被採集的檔案和輪轉隊列中待採集的檔案處於開啟狀態,以保證採集資料完整性。出現以下情況,會關閉檔案。

  • 檔案超過5分鐘未被修改。

  • 發生輪轉且採集完畢。

  • Logtail採集配置發生變更。

如果無論檔案是否採集完成或仍有日誌寫入檔案,您都希望檔案在刪除後的可控時間內釋放檔案控制代碼,則您可通過啟動參數force_release_deleted_file_fd_timeout設定逾時時間。具體操作,請參見Logtail網路類型,啟動參數與設定檔

首次日誌採集行為

Logtail只採集增量的記錄檔。首次發現檔案被修改後,如果檔案大小超過1 MB(容器標準輸出為512 KB),則從最後1 MB處開始採集,否則從開始位置採集。

您可通過Logtail採集配置中的tail_size_kb參數調整新檔案首次採集的大小。具體操作,請參見Logtail配置(舊版)

如果下發Logtail採集配置後,記錄檔一直無修改,則Logtail不會採集該檔案。如果需要採集歷史檔案,請參見匯入歷史記錄檔

檔案發生覆蓋的行為

Logtail採用inode+檔案中前1024位元組的Hash識別檔案。檔案被覆蓋後,如果inode或檔案前1024位元組Hash發生變化,則檔案會作為新檔案從頭開始採集,否則不會被採集。

檔案發生移動的行為

檔案發生移動後,如果匹配Logtail採集配置,且該Logtail採集配置之前從未匹配過該檔案,則移動後的文檔將被當成新檔案從頭開始採集,否則不會被採集。

檔案採集歷史

Logtail會在記憶體中保留檔案採集歷史進度,保證檔案發生變化後僅採集增量部分,超過保留範圍的日誌如果發生寫入,會導致重複採集。

  • 預設最多保留1個月內的歷史檔案。

  • 如果同一目錄下歷史檔案超過5,000個時,僅保留最近1周的記錄。

  • 如果同一目錄下歷史檔案超過10,000個時,僅保留1天內的記錄。

非標準文本日誌

對於日誌中包含\0的行,版本>2.1.10和>3.0.12僅保留日誌中間的\0,首碼和尾碼的\0部分丟棄。其他版本可能截斷到第一個\0處或完全保留,建議升級。對於其他逸出字元(如ASCII顏色)或不可見字元,Logtail將按原樣上報。

計費說明

  • 安裝 LoongCollector 或 Logtail本身不收費。

  • 日誌寫入、儲存、索引、查詢、加工、投遞等環節將根據 Logstore 計費模式產生費用。

  • 如果在安裝或配置中使用了Global Acceleration功能,通過加速網路傳輸的資料會產生額外的流量費用。

常見問題(FAQ)

如何將ECS伺服器的日誌傳輸到另一個阿里雲帳號的Project?

如果您尚未安裝LoongCollector,請參考安裝配置選擇合適的跨帳號情境進行安裝;

如果您已安裝了LoongCollector,請參考如下步驟配置使用者標識,用於標識這台伺服器有許可權被Log ServiceProject所屬帳號訪問、採集日誌。

只有在採集非本帳號ECS、自建IDC、其他雲廠商伺服器日誌時需要配置使用者標識。
  1. 複製Log Service所屬的主帳號ID:滑鼠懸浮在右上方帳戶圖片上,在彈出的標籤頁中查看並複製帳號ID。

  2. 登入需要採集日誌的伺服器,建立阿里雲帳號ID檔案配置使用者標識:

    touch /etc/ilogtail/users/{阿里雲帳號ID} # 如果/etc/ilogtail/users目錄不存在,請手動建立目錄。使用者標識設定檔只需設定檔名,無需設定檔尾碼。

如何將ECS伺服器的日誌傳輸到同帳號不同地區的Project?

如果您尚未安裝LoongCollector,請參考安裝配置選擇合適的跨地區情境進行安裝;

如果已安裝LoongCollector,則需要修改LoongCollector配置。

  1. 執行sudo /etc/init.d/ilogtaild stop命令,停止LoongCollector。

  2. 修改LoongCollector啟動設定檔ilogtail_config.json,根據您的網路需求從以下兩種方式中選擇一種進行修改:

    設定檔路徑:/usr/local/ilogtail/ilogtail_config.json

    • 方式一:使用公網傳輸

      參考RegionID,將設定檔中的地區替換為Log Service所在的地區,需要修改的欄位包括:

      • primary_region

      • config_servers 中的地區部分

      • data_servers 中的 region 和 endpoint_list 地區部分

    • 方式二:使用傳輸加速

      data_server_list參數中的endpoint一行替換為log-global.aliyuncs.com。檔案路徑,請參見Logtail網路類型,啟動參數與設定檔

    設定檔樣本

    $cat 
    {
        "primary_region" : "cn-shanghai",
        "config_servers" :
        [
            "http://logtail.cn-shanghai.log.aliyuncs.com"
        ],
        "data_servers" :
        [
            {
                "region" : "cn-shanghai",
                "endpoint_list": [
                    "cn-shanghai.log.aliyuncs.com"
                ]
            }
        ],
        "cpu_usage_limit" : 0.4,
        "mem_usage_limit" : 384,
        "max_bytes_per_sec" : 20971520,
        "bytes_per_sec" : 1048576,
        "buffer_file_num" : 25,
        "buffer_file_size" : 20971520,
        "buffer_map_num" : 5
    }
  1. 執行sudo /etc/init.d/ilogtaild start命令,啟動LoongCollector。

如何將伺服器加入到已有機器組?

當您已有配置好的機器組,希望將新的伺服器(如新部署的 ECS 或自建伺服器)加入其中並繼承其採集配置時,可通過以下步驟完成綁定。

操作前提:

操作步驟:

  1. 查看目標機器組標識:

    1. 在目標Project頁面,單擊左側導覽列image資源 > 機器組

    2. 進入機器組頁面,單擊目標機器組名稱。

    3. 在機器組配置頁面,查看機器組標識。

  2. 根據標識類型執行對應操作:

    說明

    同一機器組中不允許同時存在Linux伺服器、Windows伺服器,請勿在Linux和Windows伺服器上配置相同的使用者自訂標識。一個伺服器可配置多個使用者自訂標識,標識之間以分行符號分隔。

    • 類型一:機器組標識為IP地址

      1. 在伺服器上,執行如下命令開啟app_info.json檔案,查看ip值。

        cat /usr/local/ilogtail/app_info.json
      2. 在目標機器組配置頁面,單擊修改,填寫伺服器的IP地址,多個IP之間使用分行符號分隔。

      3. 配置完成後,單擊儲存,並確認心跳狀態。心跳為OK後,伺服器將自動應用機器組的採集配置。

        若心跳狀態為FAIL,請參考常見問題機器組心跳串連為fail進一步排查。
    • 類型二:機器組標識為使用者自訂標識

      根據作業系統,向指定檔案寫入與目標機器組一致的使用者自訂標識字串:

      若目錄不存在需手動建立。檔案路徑和名稱由Log Service固定,不可自訂。
      • Linux:向/etc/ilogtail/user_defined_id檔案寫入自訂字串 。

      • Windows:向C:\LogtailData\user_defined_id寫入自訂字串。

如何匯入其他Project的採集配置?

在完成準備工作機器組配置的基礎上,您可將已有 Project 中的採集配置快速匯入到當前 Logstore,避免重複配置,提升效率。

操作步驟:

  1. 完成機器組配置後,單擊下一步,進入Logtail配置頁面。

  2. 單擊頁面右上方匯入其他配置

  3. 選擇要匯入的Project及該Project下的採集配置。

  4. 單擊確定,系統將自動載入所選配置。

  5. 檢查匯入的配置資訊無誤後,即可單擊下一步,進入查詢與分析配置頁面,完成後續配置。

如何擷取伺服器的IP地址,作為機器組標識?

在已安裝LoongCollector(Logtail)的伺服器上,開啟/usr/local/ilogtail/app_info.json檔案,查看ip值。

Logtail自動擷取的伺服器IP地址記錄在app_info.json檔案的ip欄位中,如下所示。IP地址

重要
  • 存在多台伺服器時,請手動輸入對應的IP地址,IP地址之間需使用分行符號分隔。

  • 同一機器組中不允許同時存在Linux和Windows伺服器。請勿將Windows和Linux伺服器IP添加到同一機器組中。

如何讓同一個記錄檔被多個採集配置同時採集?

預設情況下,Log Service為了避免資料重複,限制一個文本記錄檔只能被一個Logtail配置採集。若需實現同一記錄檔被多個採集配置同時採集,需要手動開啟允許檔案多次採集功能。

操作步驟:

重要

採集多份時,檔案讀取的IO、計算資源和網路IO都會線性增加。

  1. 登入Log Service控制台,進入目標Project。

  2. 在左側導覽列選擇image日誌庫,找到目標Logstore。

  3. 單擊其名稱前的image展開Logstore。

  4. 單擊Logtail配置,在配置列表中,找到目標Logtail配置,單擊操作列的管理Logtail配置

  5. 在Logtail配置頁面,單擊編輯

    • 輸入配置 > 其他輸入配置,開啟允許檔案多次採集

  6. 配置完成後,單擊儲存

為什麼最後一段日誌延遲很久才上報?有時還會被截斷?

原因分析:日誌被截斷通常發生在記錄檔末尾缺少分行符號,或多行日誌(如異常堆棧)尚未完整寫入時。由於採集器無法判斷日誌是否已結束,可能導致最後一段內容被提前切分或延遲上報。不同版本的LoongCollector(Logtail)處理機制有差異:

  • 1.8 之前版本:
    如果最後一行日誌沒有分行符號(斷行符號),或者一個多行日誌段落未結束,採集器會一直等待下一次寫入觸發輸出。這可能導致最後一條日誌長時間滯留不發送,直到新日誌寫入。

  • 1.8 及之後版本:
    引入逾時重新整理機制,避免日誌卡住。當檢測到未完成的日誌行時,系統啟動計時器,逾時後自動認可當前內容,確保日誌最終能被採集。

    • 預設逾時時間:60 秒(保證大多數情境下的完整性)

    • 您可根據實際需求調整該值,但不建議設為 0,否則可能導致日誌截斷或丟失部分內容。

解決方案:

您可以適當延長等待時間,確保完整日誌寫入後再被採集:

  1. 登入Log Service控制台,進入目標Project。

  2. 在左側導覽列選擇image日誌庫,找到目標Logstore。

  3. 單擊其名稱前的image展開Logstore。

  4. 單擊Logtail配置,在配置列表中,找到目標Logtail配置,單擊操作列的管理Logtail配置

  5. 在Logtail配置頁面,單擊編輯

    • 輸入配置 > 其他輸入配置 > 進階參數:添加以下JSON配置自訂逾時時間

      {
        "FlushTimeoutSecs": 1
      }
      • 預設值:由啟動參數 default_reader_flush_timeout 決定(通常為幾秒)。

      • 單位:秒。

      • 建議值:≥1 秒,不建議設為 0,否則可能導致日誌截斷或丟失部分內容。

  6. 配置完成後,單擊儲存

為什麼LoongCollector(Logtail)在運行過程中會從內網網域名稱切換到公網?能否自動切回?

LoongCollector(Logtail)運行過程中,若檢測到內網網域名稱通訊異常(如網路不通、連線逾時等),為保障日誌採集的連續性和可靠性,系統會自動切換至公網網域名稱進行資料發送,避免日誌堆積或丟失。

  • LoongCollector:內網恢複後,自動切回內網。

  • Logtail:不會自動切回,需手動重啟才能恢複內網通訊。

附錄:原生解析外掛程式詳解

Logtail配置頁面的處理配置地區,可以通過添加處理外掛程式,對原始日誌進行結構化處理。如需為已有採集配置添加處理外掛程式,可以參考如下步驟:

  1. 在左側導覽列選擇image日誌庫,找到目標Logstore。

  2. 單擊其名稱前的image展開Logstore。

  3. 單擊Logtail配置,在配置列表中,找到目標Logtail配置,單擊操作列的管理Logtail配置

  4. 在Logtail配置頁面,單擊編輯

此處僅介紹常用處理外掛程式,覆蓋常見Tlog情境,如需更多功能,請參考拓展處理外掛程式
重要

外掛程式組合使用規則(適用於 LoongCollector / Logtail 2.0 及以上版本):

  • 原生處理外掛程式與拓展處理外掛程式均可獨立使用,也支援按需組合使用。

  • 推薦優先選用原生處理外掛程式,因其具備更優的效能和更高的穩定性。

  • 當原生功能無法滿足業務需求時,可在已配置的原生處理外掛程式之後,追加配置拓展處理外掛程式以實現補充處理。

順序約束:

所有外掛程式按照配置順序組成處理鏈,依次執行。需要注意:所有原生處理外掛程式必須先於任何拓展處理外掛程式,添加任意拓展處理外掛程式後,將無法繼續添加原生處理外掛程式。

正則解析

通過Regex提取日誌欄位,並將日誌解析為索引值對形式,每個欄位都可以被獨立查詢和分析。

效果樣本:

未經任何處理的原始日誌

使用正則解析外掛程式

127.0.0.1 - - [16/Aug/2024:14:37:52 +0800] "GET /wp-admin/admin-ajax.php?action=rest-nonce HTTP/1.1" 200 41 "http://www.example.com/wp-admin/post-new.php?post_type=page" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0"
body_bytes_sent: 41
http_referer: http://www.example.com/wp-admin/post-new.php?post_type=page
http_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; ×64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0
remote_addr: 127.0.0.1
remote_user: -
request_method: GET
request_protocol: HTTP/1.1
request_uri: /wp-admin/admin-ajax.php?action=rest-nonce
status: 200
time_local: 16/Aug/2024:14:37:52 +0800

配置步驟:Logtail配置頁面的處理配置地區,單擊添加處理外掛程式,選擇原生處理外掛程式 > 正則解析

  • Regex:用於匹配日誌,支援自動產生或手動輸入:

    • 自動產生:

      • 單擊自動產生Regex

      • 日誌範例中劃選需要提取的日誌內容。

      • 單擊產生正則

        image

    • 手動輸入:根據日誌格式手動輸入Regex

    配置完成後,單擊驗證,測試Regex是否能夠正確解析日誌內容。

  • 日誌提取欄位:為提取的日誌內容(Value),設定對應的欄位名(Key)。

  • 其他參數請參考情境二:結構化日誌中的通用配置參數說明。


分隔字元解析

通過分隔字元將日誌內容結構化,解析為多個索引值對形式,支援單字元分隔字元和多字元分隔字元。

效果樣本:

未經任何處理的原始日誌

按指定字元,切割欄位

05/May/2025:13:30:28,10.10.*.*,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1",200,18204,aliyun-sdk-java
ip:10.10.*.*
request:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1
size:18204
status:200
time:05/May/2025:13:30:28
user_agent:aliyun-sdk-java

配置步驟:Logtail配置頁面的處理配置地區,單擊添加處理外掛程式,選擇原生處理 > 分隔字元解析

  • 分隔字元:指定用於切分日誌內容的字元。

    樣本:對於CSV格式檔案,選擇自訂,輸入半形逗號(,)。

  • 引用符:當某個欄位值中包含分隔字元時,需要指定引用符包裹該欄位,避免錯誤切割。

  • 日誌提取欄位:按分隔順序依次為每一列設定對應的欄位名稱(Key)。規則要求如下:

    • 欄位名只能包含:字母、數字、底線(_)。

    • 必須以字母或底線(_)開頭。

    • 最大長度:128位元組。

  • 其他參數請參考情境二:結構化日誌中的通用配置參數說明。


標準JSON解析

將Object類型的JSON日誌結構化,解析為索引值對形式。

效果樣本:

未經任何處理的原始日誌

標準JSON索引值自動提取

{"url": "POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek********&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1", "ip": "10.200.98.220", "user-agent": "aliyun-sdk-java", "request": {"status": "200", "latency": "18204"}, "time": "05/Jan/2025:13:30:28"}
ip: 10.200.98.220
request: {"status": "200", "latency" : "18204" }
time: 05/Jan/2025:13:30:28
url: POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek******&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1
user-agent:aliyun-sdk-java

配置步驟:Logtail配置頁面的處理配置地區,單擊添加處理外掛程式,選擇原生處理外掛程式 > JSON解析

  • 原始欄位:預設值為content(此欄位用於存放待解析的原始日誌內容)。

  • 其他參數請參考情境二:結構化日誌中的通用配置參數說明。


嵌套JSON解析

通過指定展開深度,將嵌套的JSON日誌解析為索引值對形式。

效果樣本:

未經任何處理的原始日誌

展開深度:0,並使用展開深度作為首碼

展開深度:1,並使用展開深度作為首碼

{"s_key":{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}}
0_s_key_k1_k2_k3_k41:41
0_s_key_k1_k2_k3_k4_k51:51
0_s_key_k1_k2_k3_k4_k52:52
1_s_key:{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}

配置步驟:Logtail配置頁面的處理配置地區,單擊添加處理外掛程式,選擇拓展處理外掛程式 > 展開JSON欄位

  • 原始欄位:需要展開的原始欄位名,例如content

  • JSON展開深度:JSON對象的展開層級。0表示完全展開(預設值),1表示當前層級,以此類推。

  • JSON展開串連符:JSON展開時欄位名的串連符,預設為底線 _。

  • JSON展開欄位首碼:指定JSON展開後欄位名的首碼。

  • 展開數組:開啟此項可將數組展開為帶索引的索引值對。

    樣本:{"k":["a","b"]} 展開為  {"k[0]":"a","k[1]":"b"}

    如果需要對展開後的欄位進行重新命名(例如,將 prefix_s_key_k1 改為 new_field_name),可以後續再添加一個重新命名欄位外掛程式來完成映射。
  • 其他參數請參考情境二:結構化日誌中的通用配置參數說明。


JSON數組解析

使用json_extract函數,從JSON數組中提取JSON對象。

效果樣本:

未經任何處理的原始日誌

提取JSON數組結構

[{"key1":"value1"},{"key2":"value2"}]
json1:{"key1":"value1"}
json2:{"key2":"value2"}

配置步驟:Logtail配置頁面的處理配置地區,將處理模式切換為SPL,配置SPL語句,使用  json_extract函數從JSON數組中提取JSON對象。

樣本:從日誌欄位 content 中提取 JSON 數組中的元素,並將結果分別儲存在新欄位 json1和 json2 中。

* | extend json1 = json_extract(content, '$[0]'), json2 = json_extract(content, '$[1]')

Apache日誌解析

根據Apache日誌設定檔中的定義將日誌內容結構化,解析為多個索引值對形式。

效果樣本:

未經任何處理的原始日誌

Apache通用日誌格式combined解析

1 192.168.1.10 - - [08/May/2024:15:30:28 +0800] "GET /index.html HTTP/1.1" 200 1234 "https://www.example.com/referrer" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.X.X Safari/537.36"
http_referer:https://www.example.com/referrer
http_user_agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.X.X Safari/537.36
remote_addr:192.168.1.10
remote_ident:-
remote_user:-
request_method:GET
request_protocol:HTTP/1.1
request_uri:/index.html
response_size_bytes:1234
status:200
time_local:[08/May/2024:15:30:28 +0800]

配置步驟:Logtail配置頁面的處理配置地區,單擊添加處理外掛程式,選擇原生處理外掛程式 > APACHE模式解析

  • 日誌格式combined

  • APACHE配置欄位:系統會根據日誌格式自動填滿配置。

    重要

    請務必核對自動填滿的內容,確保與伺服器上 Apache 設定檔(通常位於/etc/apache2/apache2.conf)中定義的 LogFormat 完全一致。

  • 其他參數請參考情境二:結構化日誌中的通用配置參數說明。


IIS日誌解析

根據IIS日誌格式定義將日誌內容結構化,解析為多個索引值對形式。

對比樣本:

原始日誌

微軟IIS伺服器專用格式適配

#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
c-ip: cs-username
cs-bytes: sc-substatus
cs-method: cs-method
cs-uri-query: cs-uri-query
cs-uri-stem: cs-uri-stem
cs-username: s-port
date: #Fields:
s-computername: s-sitename
s-ip: s-ip
s-sitename: time
sc-bytes: sc-status
sc-status: c-ip
sc-win32-status: cs (User-Agent)
time: date
time-taken: sc-win32-status

配置步驟:Logtail配置頁面的處理配置地區,單擊添加處理外掛程式,選擇原生處理外掛程式 > IIS模式解析

  • 日誌格式:選擇您的IIS伺服器日誌採用的日誌格式。

    • IIS:Microsoft IIS記錄檔格式。

    • NCSA:NCSA公用記錄檔格式。

    • W3C:W3C擴充記錄檔格式。

  • IIS配置欄位:選擇IIS或NCSA時,Log Service已預設設定了IIS配置欄位,選擇W3C時,設定為您的IIS設定檔中logExtFileFlags參數中的內容。例如:

    logExtFileFlags="Date, Time, ClientIP, UserName, SiteName, ComputerName, ServerIP, Method, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent, BytesRecv, TimeTaken, ServerPort, UserAgent, Cookie, Referer, ProtocolVersion, Host, HttpSubStatus"
  • 其他參數請參考情境二:結構化日誌中的通用配置參數說明。


資料脫敏

對日誌中的敏感性資料進行脫敏處理。

效果樣本:

未經任何處理的原始日誌

脫敏結果

[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]
[{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]

配置步驟:Logtail配置頁面的處理配置地區,單擊添加處理外掛程式,選擇原生處理外掛程式 > 脫敏處理

  • 原始欄位:解析日誌前,用於存放日誌內容的原始欄位。

  • 脫敏方式

    • const:將敏感內容替換成所修改的字串。

    • md5:將敏感內容替換為其對應的MD5值。

  • 替換字串:選擇脫敏方式const時,需要輸入字串,用於替換敏感內容。

  • 被替換內容前的內容運算式:用於尋找敏感內容,使用RE2文法配置。

  • 被替換的內容運算式:敏感內容的運算式,使用RE2文法配置。


時間解析

對日誌中的時間欄位進行解析,並將解析結果設定為日誌的__time__欄位。

效果樣本:

未經任何處理的原始日誌

時間解析

{"level":"INFO","timestamp":"2025-09-23T19:11:47+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}

image

配置步驟:Logtail配置頁面的處理配置地區,單擊添加處理外掛程式,選擇原生處理外掛程式 > 時間解析

  • 原始欄位:解析日誌前,用於存放日誌內容的原始欄位。

  • 時間格式:根據日誌中的時間內容設定對應的時間格式

  • 時區:選擇日誌時間欄位所在的時區。預設使用機器時區,即LoongCollector(Logtail)進程所在環境的時區。

附錄:權限原則參考

阿里雲主帳號登入:預設擁有全部許可權,可直接操作。

RAM帳號登入:需要主帳號授權相應權限原則。

自訂權限原則(精細化控制)

當系統策略無法滿足最小許可權原則時,可通過建立自訂權限原則實現精細化授權。以下為權限原則樣本,包含的許可權有:

  • 查看Project:查看Project列表,查看指定Project詳情。

  • 管理日誌庫 (Logstore): 在Project下建立新的日誌庫,或修改、刪除已有的日誌庫。

  • 管理採集配置: 建立、刪除和修改採集配置。

  • 查看日誌: 查詢和分析指定Project下指定日誌庫中的資料。

替換${regionName} ${uid}${projectName}${logstoreName}為實際的地區名稱,主帳號id,目標Project和Logstore。

樣本策略

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "log:ListProject",
        "log:GetAcceleration",
        "log:ListDomains",
        "log:GetLogging",
        "log:ListTagResources"
      ],
      "Resource": "acs:log:${regionName}:${uid}:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:GetProject",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}"
    },
    {
      "Effect": "Allow",
      "Action": [
        "log:ListLogStores",
        "log:*LogStore",
        "log:*Index",
        "log:ListShards",
        "log:GetCursorOrData",
        "log:GetLogStoreHistogram",
        "log:GetLogStoreContextLogs",
        "log:PostLogStoreLogs"
      ],
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:*",
      "Resource": [
        "acs:log:${regionName}:${uid}:project/${projectName}/logtailconfig/*",
        "acs:log:${regionName}:${uid}:project/${projectName}/machinegroup/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "log:ListSavedSearch",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/savedsearch/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:ListDashboard",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/dashboard/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:GetLogStoreLogs",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/logstore/${logstoreName}"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ecs:DescribeTagKeys",
        "ecs:DescribeTags",
        "ecs:DescribeInstances",
        "ecs:DescribeInvocationResults",
        "ecs:RunCommand",
        "ecs:DescribeInvocations",
        "ecs:InvokeCommand"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "oos:ListTemplates",
        "oos:StartExecution",
        "oos:ListExecutions",
        "oos:GetExecutionTemplate",
        "oos:ListExecutionLogs",
        "oos:ListTaskExecutions"
      ],
      "Resource": "*"
    }
  ]
}

許可權

對應操作

資源

唯讀Project

  • GetAcceleration

  • GetLogging

  • ListProject

  • ListDomains

  • ListTagResources

acs:log:${regionName}:${uid}:project/*

擷取指定Project

GetProject

acs:log:${regionName}:${uid}:project/${projectName}

管理Logstore

  • ListLogStores

  • *LogStore

  • *Index

  • ListShards

  • GetCursorOrData

  • GetLogStoreHistogram

  • GetLogStoreContextLogs

  • PostLogStoreLogs

acs:log:${regionName}:${uid}:project/${projectName}/*

管理LoongCollector(Logtail)資料接入

*

  • acs:log:${regionName}:${uid}:project/${projectName}/logtailconfig/*

  • acs:log:${regionName}:${uid}:project/${projectName}/machinegroup/*

查詢快速查詢

ListSavedSearch

acs:log:${regionName}:${uid}:project/${projectName}/savedsearch/*

查詢儀錶盤

ListDashboard

acs:log:${regionName}:${uid}:project/${projectName}/dashboard/*

查詢指定日誌庫日誌

GetLogStoreLogs

acs:log:${regionName}:${uid}:project/${projectName}/logstore/${logstoreName}

操作ECS的許可權

  • DescribeTagKeys

  • DescribeTags

  • DescribeInstances

  • DescribeInvocationResults

  • RunCommand

  • DescribeInvocations

  • InvokeCommand

*

操作OOS的許可權(可選)

僅在Log Service與ECS執行個體同帳號同地區通過OOS自動化安裝LoongCollector(Logtail)時需要。

  • ListTemplates

  • StartExecution

  • ListExecutions

  • GetExecutionTemplate

  • ListExecutionLogs

  • ListTaskExecutions

*

系統權限原則

若使用系統預定義策略,建議添加以下許可權:

  • AliyunLogFullAccess:管理Log Service的許可權。

  • AliyunECSFullAccess:管理ECS的許可權。

  • (可選)AliyunOOSFullAccess:當通過 OOS 一鍵安裝LoongCollector(Logtail)時需要。

更多資訊

全域配置參數介紹

配置項

說明

配置名稱

LoongCollector(Logtail)配置名稱,在其所屬Project內必須唯一。建立成功後,無法修改其名稱。

日誌主題類型

選擇日誌主題(Topic)的產生方式。包含機器組Topic,檔案路徑提取,自訂三種方式。

進階參數

其它可選的與配置全域相關的進階功能參數,請參見建立LoongCollector(Logtail)流水線配置

輸入配置參數介紹

配置項

說明

檔案路徑

根據日誌在主機(例如ECS)上的位置,設定日誌目錄和檔案名稱:

目錄名和檔案名稱均支援完整模式和萬用字元模式,檔案名稱規則請參見Wildcard matching。其中,日誌路徑萬用字元只支援星號(*)和半形問號(?)。

記錄檔尋找模式為多層目錄匹配,即合格指定目錄(包含所有層級的目錄)下所有合格檔案都會被尋找到。例如:

  • /apsara/nuwa/**/*.log表示/apsara/nuwa目錄(包含該目錄的遞迴子目錄)中尾碼名為.log的檔案。

  • /var/logs/app_*/**/*.log表示/var/logs目錄下所有符合app_*格式的目錄(包含該目錄的遞迴子目錄)中尾碼名為.log的檔案。

  • /var/log/nginx/**/access*表示/var/log/nginx目錄(包含該目錄的遞迴子目錄)中以access開頭的檔案。

最大目錄監控深度

設定日誌目錄被監控的最大深度,即檔案路徑中萬用字元**匹配的最大目錄深度。0代表只監控本層目錄。

檔案編碼

選擇記錄檔的編碼格式。

首次採集大小

配置首次生效時,匹配檔案的起始採集位置距離檔案結尾的大小。首次採集大小設定值為1024 KB。

  • 首次採集時,如果檔案小於1024 KB,則從檔案內容起始位置開始採集。

  • 首次採集時,如果檔案大於1024 KB,則從距離檔案末尾1024 KB的位置開始採集。

您可以通過此處修改首次採集大小,取值範圍為0~10485760KB。

採集黑名單

開啟採集黑名單開關後,可進行黑名單配置,即可在採集時忽略指定的目錄或檔案。支援完整匹配和萬用字元匹配目錄和檔案名稱。其中,萬用字元只支援星號(*)和半形問號(?)。

重要
  • 如果您在配置檔案路徑時使用了萬用字元,但又需要過濾掉其中部分路徑,則需在採集黑名單中填寫對應的完整路徑來保證黑名單配置生效。

    例如您配置檔案路徑/home/admin/app*/log/*.log,但要過濾/home/admin/app1*目錄下的所有子目錄,則需選擇目錄黑名單,配置目錄為/home/admin/app1*/**。如果配置為/home/admin/app1*,黑名單不會生效。

  • 匹配黑名單過程存在計算開銷,建議黑名單條目數控制在10條內。

  • 目錄路徑不能以正斜線(/)結尾,例如將設定路徑為/home/admin/dir1/,目錄黑名單不會生效。

支援按照檔案路徑黑名單、檔案黑名單、目錄黑名單設定,詳細說明如下:

檔案路徑黑名單

  • 選擇檔案路徑黑名單,配置路徑為/home/admin/private*.log,則表示在採集時忽略/home/admin/目錄下所有以private開頭,以.log結尾的檔案。

  • 選擇檔案路徑黑名單,配置路徑為/home/admin/private*/*_inner.log,則表示在採集時忽略/home/admin/目錄下以private開頭的目錄內,以_inner.log結尾的檔案。例如/home/admin/private/app_inner.log檔案被忽略,/home/admin/private/app.log檔案被採集。

檔案黑名單

選擇檔案黑名單,設定檔名為app_inner.log,則表示採集時忽略所有名為app_inner.log的檔案。

目錄黑名單

  • 選擇目錄黑名單,配置目錄為/home/admin/dir1,則表示在採集時忽略/home/admin/dir1目錄下的所有檔案。

  • 選擇目錄黑名單,配置目錄為/home/admin/dir*,則表示在採集時忽略/home/admin/目錄下所有以dir開頭的子目錄下的檔案。

  • 選擇目錄黑名單,配置目錄為/home/admin/*/dir,則表示在採集時忽略/home/admin/目錄下二級目錄名為dir的子目錄下的所有檔案。例如/home/admin/a/dir目錄下的檔案被忽略,/home/admin/a/b/dir目錄下的檔案被採集。

允許檔案多次採集

預設情況下,一個記錄檔只能匹配一個LoongCollector(Logtail)配置。如果檔案中的日誌需要被採集多份,需要開啟允許檔案多次採集開關。

進階參數

其它可選的與檔案輸入外掛程式相關的進階功能參數,請參見建立LoongCollector(Logtail)流水線配置

處理配置參數介紹

配置項

說明

日誌範例

待採集日誌的範例,請務必使用實際情境的日誌。日誌範例可協助您配置Tlog相關參數,降低配置難度。支援添加多條範例,總長度不超過1500個字元。

[2023-10-01T10:30:01,000] [INFO] java.lang.Exception: exception happened
    at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
    at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
    at TestPrintStackTrace.main(TestPrintStackTrace.java:16)

多行模式

  • 多行日誌的類型:多行日誌是指每條日誌分布在連續的多行中,需要從日誌內容中區分出每一條日誌。

    • 自訂:通過行首Regex區分每一條日誌。

    • 多行JSON:每個JSON對象被展開為多行,例如:

      {
        "name": "John Doe",
        "age": 30,
        "address": {
          "city": "New York",
          "country": "USA"
        }
      }
  • 切分失敗處理方式:

    Exception in thread "main" java.lang.NullPointerException
        at com.example.MyClass.methodA(MyClass.java:12)
        at com.example.MyClass.methodB(MyClass.java:34)
        at com.example.MyClass.main(MyClass.java:½0)

    對於以上日誌內容,如果Log Service切分失敗:

    • 丟棄:直接丟棄這段日誌。

    • 保留單行:將每行日誌文本單獨保留為一條日誌,共保留為四條日誌。

處理模式

處理外掛程式組合,包括原生處理外掛程式拓展處理外掛程式。有關處理外掛程式的更多資訊,請參見原生與拓展處理外掛程式使用說明

重要

處理外掛程式的使用限制,請以控制台頁面的提示為準。

  • 2.0版本的Logtail:

    • 原生處理外掛程式可任意組合。

    • 原生處理外掛程式和拓展處理外掛程式可同時使用,但拓展處理外掛程式只能出現在所有的原生處理外掛程式之後。

  • 低於2.0版本的Logtail:

    • 不支援同時添加原生處理外掛程式和拓展處理外掛程式。

    • 原生外掛程式僅可用於採集文本日誌。使用原生處理外掛程式時,須符合如下要求:

      • 第一個處理外掛程式必須為正則解析外掛程式、分隔字元模式解析外掛程式、JSON解析外掛程式、Nginx模式解析外掛程式、Apache模式解析外掛程式或IIS模式解析外掛程式。

      • 從第二個處理外掛程式到最後一個處理外掛程式,最多包括1個時間解析處理外掛程式,1個過濾處理外掛程式和多個脫敏處理外掛程式。

    • 對於解析失敗時保留原始欄位解析成功時保留原始欄位參數,只有以下組合有效,其餘組合無效。

      • 只上傳解析成功的日誌:

        image

      • 解析成功時上傳解析後的日誌,解析失敗時上傳原始日誌:

        image

      • 解析成功時不僅上傳解析後的日誌,並且追加原始日誌欄位,解析失敗時上傳原始日誌。

        例如,原始日誌"content": "{"request_method":"GET", "request_time":"200"}"解析成功,追加原始欄位是在解析後日誌的基礎上再增加一個欄位,欄位名為重新命名的原始欄位(如果不填則預設為原始欄位名),欄位值為原始日誌{"request_method":"GET", "request_time":"200"}

        image