全部產品
Search
文件中心

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

更新時間:Nov 13, 2024

本文介紹如何使用Logtail採集主機文本日誌。

背景資訊

本文介紹Logtail採集配置的詳細配置步驟,對於常見類型的日誌採集,請參見最佳實務:

前提條件

  • 已建立Logtail機器組並添加相應伺服器,建立機器組的步驟,請參見建立使用者自訂標識機器組(推薦)建立IP地址機器組

  • 安裝Logtail的主機需要在出口方向開放80(HTTP)連接埠和443(HTTPS)連接埠。ECS執行個體的連接埠由安全性群組規則控制,添加安全性群組規則的步驟請參見添加安全性群組規則

  • 伺服器日誌的內容持續新增。Logtail只採集增量日誌,如果下發Logtail配置後記錄檔無更新,則Logtail不會採集該檔案中的日誌。更多資訊,請參見讀取日誌

操作步驟

  1. 登入Log Service控制台

  2. 接入資料地區中,根據需要選擇包含文本日誌尾碼的入口。本文以採集主機中的多行文本日誌為例。

    image

  3. 選擇日誌空間頁面,按照選擇目標Project和Logstore,單擊下一步

    image

  4. 機器組配置頁面,配置機器組。

    1. 根據實際需求,選擇使用情境和安裝環境。

      重要

      無論是否已有機器組,都必鬚根據實際需求正確選擇使用情境和安裝環境,這將影響後續的頁面配置。

    2. 確認目標機器組已在應用機器組地區,單擊下一步

      已有機器組

      源機器組列表選擇目標機器組。

      image

      沒有可用機器組

      單擊建立機器組,在建立機器組面板設定相關參數。機器組標識分為IP地址使用者自訂標識,更多資訊請參見建立使用者自訂標識機器組(推薦)建立IP地址機器組

      重要

      建立機器組後立刻應用,可能因為串連未生效,導致心跳為FAIL,您可單擊重試。如果還未解決,請參見Logtail機器組無心跳進行排查。

  5. 建立Logtail配置,單擊下一步,建立Logtail配置。Logtail配置生效時間最長需要3分鐘,請耐心等待。

    • 全域配置

      配置項

      說明

      配置名稱

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

      日誌主題類型

      選擇日誌主題(Topic)的產生方式。更多資訊,請參見日誌主題

      • 機器組Topic:設定為機器組的Topic屬性,用於明確區分不同機器組產生的日誌。

      • 檔案路徑提取:設定為檔案路徑正則,則需要設定自訂正則,用Regex從路徑裡提取一部分內容作為Topic。用於區分不同源產生的日誌。

      • 自訂:自訂日誌主題。

      進階參數

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

    • 輸入配置

      配置項

      說明

      檔案路徑

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

      • 如果目標主機是Linux系統,則日誌路徑必須以正斜線(/)開頭,例如/apsara/nuwa/**/app.Log

      • 如果目標主機是Windows系統,則日誌路徑必須以盤符開頭,例如C:\Program Files\Intel\**\*.Log

      目錄名和檔案名稱均支援完整模式和萬用字元模式,檔案名稱規則請參見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~10485760,單位為KB。

      採集黑名單

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

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

        例如您配置檔案路徑/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目錄下的檔案被採集。

      允許檔案多次採集

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

      進階參數

      其它可選的與檔案輸入外掛程式相關的進階功能參數,請參見建立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

  6. 建立索引預覽資料,然後單擊下一步。Log Service預設開啟全文索引。您也可以根據採集到的日誌,手動建立欄位索引,或者單擊自動產生索引,Log Service將自動產生欄位索引。更多資訊,請參見建立索引

    重要

    如果需要查詢日誌中的所有欄位,建議使用全文索引。如果只需查詢部分欄位、建議使用欄位索引,減少索引流量。如果需要對欄位進行分析(SELECT語句),必須建立欄位索引。

  7. 單擊查詢日誌,系統將跳轉至Logstore查詢分析頁面。

    您需要等待1分鐘左右,待索引生效後,才能在原始日誌頁簽中,查看已採集到的日誌。查詢和分析日誌的詳細步驟,請參見查詢和分析日誌

相關文檔