全部產品
Search
文件中心

Simple Log Service:日誌主題

更新時間:Nov 08, 2024

您可以通過設定不同的日誌主題(Topic)對採集到的文本日誌進行分類,例如按伺服器類型、使用者區分。

配置日誌主題

前提條件

操作步驟

您可通過控制台或API方式配置日誌主題。

控制台方式

  • Logtail配置頁面,單擊其他全域配置,並在展開的地區選取項目日誌主題類型。配置項說明如下:

    • 機器組Topic:選擇為機器組Topic時,在建立機器組時必須配置機器組Topic

    • 檔案路徑提取:選擇為檔案路徑提取時,必須配置相應的Regex。

    • 自訂:選擇為自訂時,須輸入customized:// + 自訂佈景主題名,使用自訂的靜態日誌主題。

    image

  • Simple Log ServiceProject中建立Logtail配置。更多資訊,請參見採集主機文本日誌

API方式

如果需要使用API建立Logtail採集配置,請使用CreateConfig。 日誌主題相關的參數,請參見Logtail配置topicFormat參數

日誌主題類型

  • 機器組Topic

    Simple Log ServiceProject支援將一個Logtail配置應用到多個機器組。使用機器組Topic可用於區分來自不同機器組的日誌。Logtail上報資料時,會將伺服器所在機器組的機器組Topic作為日誌主題上傳至Simple Log ServiceProject。使用者在查詢日誌時需要指定日誌主題作為查詢條件。

  • 檔案路徑提取

    檔案路徑提取方式用於區分不同使用者或應用產生的日誌資料。如果不同的使用者或應用將日誌儲存在不同的頂級目錄中,但是下級目錄和記錄檔名相同,Log Service在採集日誌時無法明確區分日誌是由哪個使用者或應用產生的。

    Logtail通過Regex來完整匹配檔案路徑,並將運算式匹配的結果(使用者名稱或應用程式名稱)作為日誌主題(Topic)上傳至Log Service。使用者在查詢日誌時需要指定日誌主題作為查詢條件。

    說明

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

    情境1:不同使用者將日誌記錄在不同目錄下,但是記錄檔名稱相同,目錄路徑如下所示。

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

    如果在Logtail配置中僅設定檔路徑為/data/logs且檔案名稱為service.log,Logtail會將三個service.log檔案中的內容採集至同一個Logstore中,因此無法區分日誌具體由哪個使用者產生。您可以使用Regex提取檔案路徑中的值,產生不同的日誌主題。

    • Regex

      \/data\/logs\/(.*)\/serviceA\/.*
    • 提取結果

      __topic__: userA
      __topic__: userB
      __topic__: userC

    情境2:如果單個日誌主題不足以區分日誌的來源,您可以在記錄檔路徑中配置多個正則擷取的群組來提取關鍵資訊。其中擷取的群組包括命名擷取的群組(?P<name>)或非命名擷取的群組。如果全是命名擷取的群組,則產生的tag欄位為__tag__:{name};如果全是非命名擷取的群組,則產生的tag欄位為__tag__:__topic_{i}__,其中{i}為擷取的群組的序號。

    說明

    當Regex中存在多個擷取的群組時,不會產生__topic__欄位。

    例如,檔案路徑為/data/logs/userA/serviceA/service.log,您可以通過以下方式提取檔案路徑中的多個值。

    • 樣本1:使用非命名擷取的群組進行正則提取。

      • Regex

        \/data\/logs\/(.*?)\/(.*?)\/service.log
      • 提取結果

        __tag__:__topic_1__: userA
        __tag__:__topic_2__: serviceA
    • 樣本2:使用命名擷取的群組進行正則提取。

      • Regex

        \/data\/logs\/(?P<user>.*?)\/(?P<service>.*?)\/service.log
      • 提取結果

        __tag__:user: userA
        __tag__:service: serviceA
  • 自訂

    輸入customized:// + 自訂佈景主題名,使用自訂的靜態日誌主題。

    重要

    Logtail 0.16.21(Linux系統)及以上版本支援該設定。

根據日誌主題查詢日誌

在日誌查詢分析頁面,輸入__topic__: userA__tag__:__topic_1__: userA查詢相應主題的日誌。更多資訊,請參見查詢文法