全部產品
Search
文件中心

Simple Log Service:資料過濾類外掛程式

更新時間:Nov 11, 2025

資料過濾類外掛程式用於根據條件過濾日誌,根據過濾結果選擇是否採集該日誌記錄。

資料過濾外掛程式概覽

Log Service提供以下多種類型的資料過濾外掛程式,請按需要進行選擇。

外掛程式名稱

類型

功能說明

過濾處理

原生

通過設定“白名單”Regex,僅採集欄位值完全符合指定正則條件的日誌。

過濾日誌

拓展

支援兩種過濾模式:

  • 正則過濾日誌(按值):通過Regex匹配欄位值,支援“採集條件” + “丟棄條件”組合控制。

  • 正則過濾日誌(按鍵):通過Regex匹配欄位名稱(Key) ,根據“欄位是否存在”進行過濾。

功能入口

當您需要使用Logtail外掛程式處理日誌時,您可以在建立或修改Logtail配置時,添加外掛程式。具體操作,請參見原生與拓展處理外掛程式使用說明

原生外掛程式與拓展外掛程式的區別

原生外掛程式:C++實現,效能更強。

拓展外掛程式:Go實現,生態豐富且靈活,當業務日誌過於複雜,無法使用原生外掛程式處理時,可以考慮使用拓展外掛程式。

  • 拓展外掛程式效能限制

    • 使用拓展外掛程式進行Tlog時,LoongCollector會消耗更多的資源(以CPU為主),如有需求可以調整LoongCollector參數配置進行日誌傳輸延時過長最佳化

    • 當未經處理資料量的產生速度超過5 MB/s時,不建議使用過於複雜的外掛程式組合來處理日誌,可以使用拓展外掛程式進行簡單處理,再通過資料加工完成進一步處理。

  • 日誌採集限制

    • 拓展外掛程式對文本日誌的處理採用行模式,即檔案層級的中繼資料(例如__tag__:__path____topic__等)會被存放到每一條日誌中。

    • 添加拓展外掛程式後會影響和Tag相關的功能:

      • 上下文查詢和LiveTail功能不可用。如果要使用這些功能,需要額外添加aggregators配置。

      • __topic__欄位會被重新命名為__log_topic__。如果添加了aggregators配置,日誌中將同時存在__topic__欄位和__log_topic__欄位。如果您不需要__log_topic__欄位,可使用丟棄欄位外掛程式刪除該欄位。

      • __tag__:__path__等欄位不再具備原生欄位索引,需要建立欄位索引

過濾處理外掛程式(原生)

過濾處理外掛程式支援根據日誌欄位值來進行日誌過濾。

配置說明

參數名稱

說明

白名單

只採集符合白名單條件的日誌,您需要設定目標欄位名稱和用於過濾的Regex。此處的Regex僅支援全文匹配,不支援關鍵詞部分匹配。如何配置Regex,請參見Regex入門教程

各個白名單之間為與關係。相關樣本如下:

  • 過濾出合格日誌。

    • 設定欄位名level欄位值WARNING|ERROR,表示只採集level欄位值為WARNINGERROR的日誌。

    • 設定欄位名content欄位值.*05\/Jan\/2023.*,表示只採集content欄位值包含05/Jan/2023的日誌。

  • 過濾掉不合格日誌。

    • 設定欄位名level欄位值^(?!.*(INFO|DEBUG)).*,表示不採集level欄位值中包含INFODEBUG的日誌。

    • 設定欄位名level欄位值^(?!(INFO|DEBUG)$).*,表示不採集level欄位值為INFODEBUG的日誌。

    • 設定欄位名url欄位值.*^(?!.*(healthcheck)).*,表示不採集url欄位值中包含healthcheck的日誌。

過濾日誌外掛程式(拓展)

使用processor_filter_regex外掛程式或processor_filter_key_regex外掛程式過濾日誌。此處介紹各個外掛程式的參數說明和配置樣本。

使用限制

  • 文本日誌和容器標準輸出只支援表單配置方式,其餘輸入源只支援JSON配置方式。

  • Go語言的Regex引擎基於RE2實現,相比PCRE引擎存在以下限制:

    • 命名分組文法差異

      Go使用(?P<name>...)文法,而非PCRE的(?<name>...)文法。

    • 不支援的正則模式

      • 斷言(?=...)(?!...)(?<=...)(?<!...)

      • 條件運算式(?(condition)true|false)

      • 遞迴匹配(?R)(?0)

      • 子程式引用(?&name)(?P>name)

      • 原子組(?>...)

    建議使用Regex101等調試正則時,避免使用以上不支援的正則模式,否則外掛程式將無法處理。

processor_filter_regex(按值正則過濾)

通過Regex匹配日誌欄位的值,從而實現日誌過濾。

表單配置方式

  • 參數說明

    配置處理器類型正則過濾日誌(匹配日誌欄位的值),相關參數說明如下表所示。

    說明

    日誌欄位的值完全符合採集日誌中的Regex,且不匹配丟棄日誌中的Regex時,日誌才會被採集,否則直接丟棄。

    參數

    說明

    採集日誌

    輸入日誌欄位名和該欄位值匹配的Regex。如果原始日誌中的目標欄位值符合對應的Regex,則採集該日誌。

    支援添加多個索引值對,索引值對之間為與關係。

    丟棄日誌

    輸入日誌欄位和該欄位值匹配的Regex。如果日誌中任意一個欄位的值符合對應的Regex,則丟棄該日誌。

    支援添加多個索引值對,索引值對之間為或關係。

  • 配置樣本

    只採集ip10開頭、methodPOSTbrowser不為aliyun.*的日誌,配置樣本如下:

    • 原始日誌

      • 日誌1

        "ip" : "10.**.**.**"
        "method" : "POST"
        "browser" : "aliyun-sdk-java"
      • 日誌2

        "ip" : "10.**.**.**"
        "method" : "POST"
        "browser" : "chrome"
      • 日誌3

        "ip" : "192.168.*.*"
        "method" : "POST"
        "browser" : "ali-sls-ilogtail"
    • Logtail外掛程式處理配置

      image

    • 處理結果

      日誌

      是否採集

      原因

      日誌1

      不採集

      browser欄位的值匹配丟棄日誌中的Regex。

      日誌2

      採集

      符合條件。

      日誌3

      不採集

      ip欄位的值不匹配採集日誌中的Regex。

JSON配置方式

  • 參數說明

    配置typeprocessor_filter_regexdetail說明如下表所示。

    說明

    日誌欄位的值完全符合Include中的Regex,且不匹配Exclude中的Regex時,日誌才會被採集,否則直接丟棄。

    參數

    類型

    是否必選

    說明

    Include

    JSON Object

    Key為日誌欄位,Value為該欄位值匹配的Regex。索引值對之間為與關係。如果日誌欄位的值符合對應的Regex,則採集該日誌。

    Exclude

    JSON Object

    Key為日誌欄位,Value為該欄位值匹配的Regex。索引值對之間為或關係。如果日誌中任意一個欄位的值符合對應的Regex,則丟棄該日誌。

  • 配置樣本

    只採集ip10開頭、methodPOSTbrowser不為aliyun.*的日誌,配置樣本如下:

    • 原始日誌

      • 日誌1

        "ip" : "10.**.**.**"
        "method" : "POST"
        "browser" : "aliyun-sdk-java"
      • 日誌2

        "ip" : "10.**.**.**"
        "method" : "POST"
        "browser" : "chrome"
      • 日誌3

        "ip" : "192.168.*.*"
        "method" : "POST"
        "browser" : "ali-sls-ilogtail"
    • Logtail外掛程式處理配置

      {
         "type" : "processor_filter_regex",
          "detail" : {
               "Include" : {
                  "ip" : "10\..*",
                  "method" : "POST"
               },
               "Exclude" : {
                  "browser" : "aliyun.*"
               }
          }
      }
    • 處理結果

      日誌

      是否採集

      原因

      日誌1

      不採集

      browser欄位的值匹配Exclude中的Regex。

      日誌2

      採集

      符合條件。

      日誌3

      不採集

      ip欄位的值不匹配Include中的Regex。

processor_filter_key_regex(按鍵正則過濾)

通過Regex匹配日誌欄位名稱,從而實現日誌過濾。

表單配置方式

  • 參數說明

    配置處理器類型正則過濾日誌(匹配日誌欄位名),相關參數說明如下表所示。

    說明

    存在日誌欄位名稱完全符合採集日誌中的Regex,且不匹配丟棄日誌中的Regex時,日誌才會被採集,否則直接丟棄。

    參數

    說明

    採集日誌

    設定為日誌欄位的Regex,欄位之間為與關係。如果日誌欄位符合對應的Regex,則採集該日誌。

    丟棄日誌

    設定為日誌欄位的Regex,欄位之間為或關係。如果日誌中任意一個欄位符合對應的Regex,則丟棄該日誌。

  • 配置樣本

    採集包含欄位名是以request開頭的日誌,配置樣本如下:

    • 原始日誌

      • 日誌1

        "request_time" : 20
        "request_length": 2314
        "request_method" : "POST"
        "browser" : "aliyun-sdk-java"
      • 日誌2

        "request_time" : 70
        "request_method" : "GET"
        "ip" : "192.168.**.**"
      • 日誌3

        "browser" : "ali-sls-ilogtail"
        "status" : 200
    • Logtail外掛程式處理配置 過濾日誌

    • 處理結果

      日誌

      是否採集

      原因

      日誌1

      採集

      request_time欄位、request_length欄位和request_method欄位符合採集日誌中的Regex。

      日誌2

      採集

      request_time欄位和request_length欄位符合採集日誌中的Regex。

      日誌3

      不採集

      日誌中沒有符合採集日誌中的Regex的欄位。

JSON配置方式

  • 參數說明

    配置typeprocessor_filter_key_regexdetail說明如下表所示。

    說明

    存在日誌欄位名稱完全符合Include中的Regex,且不匹配Exclude中的Regex時,日誌才會被採集,否則直接丟棄。

    參數

    類型

    是否必選

    說明

    Include

    string[]

    設定為日誌欄位的Regex,欄位之間為與關係。如果日誌欄位符合對應的Regex,則採集該日誌。

    Exclude

    string[]

    設定為日誌欄位的Regex,欄位之間為或關係。如果日誌中任意一個欄位符合對應的Regex,則丟棄該日誌。

  • 配置樣本

    採集包含欄位名是以request開頭的日誌,配置樣本如下:

    • 原始日誌

      • 日誌1

        "request_time" : 20
        "request_length": 2314
        "request_method" : "POST"
        "browser" : "aliyun-sdk-java"
      • 日誌2

        "request_time" : 70
        "request_method" : "GET"
        "ip" : "192.168.**.**"
      • 日誌3

        "browser" : "ali-sls-ilogtail"
        "status" : 200
    • Logtail外掛程式處理配置

      {
         "type" : "processor_filter_key_regex",
          "detail" : {
               "Include" : [
                  "request.*"
               ]
          }
      }
    • 處理結果

      日誌

      是否採集

      原因

      日誌1

      採集

      request_time欄位、request_length欄位和request_method欄位符合Include中的Regex。

      日誌2

      採集

      request_time欄位和request_length欄位符合Include中的Regex。

      日誌3

      不採集

      日誌中沒有符合Include中的Regex的欄位。

相關文檔