分隔符

简介

processor_split_char processor插件可以通过单字符的分隔符提取字段,该方式支持使用引用符对分隔符进行包裹。

processor_split_string processor插件可以通过多字符的分隔符提取字段,该方式不支持使用引用符对分隔符进行包裹。

版本

Stable

配置参数

processor_split_char配置

参数类型是否必选说明

Type

String

插件类型

SourceKey

String

原始字段名

SplitSep

String

分隔符。必须为单字符,可设置为不可见字符,例如\u0001。

SplitKeys

String数组

分割日志后设置的字段名,例如["ip", "time", "method"]。

QuoteFlag

Boolean

是否使用引用符。如果未添加该参数,则默认使用false,表示不使用。

Quote

String

仅当QuoteFlag配置为true时有效。

NoKeyError

Boolean

无匹配的原始字段时是否报错。如果未添加该参数,则默认使用false,表示不报错。

NoMatchError

Boolean

分隔符不匹配时是否报错。如果未添加该参数,则默认使用false,表示不报错。

KeepSource

Boolean

是否保留原始字段。如果未添加该参数,则默认使用false,表示不保留。

processor_split_string配置

参数类型是否必选说明

Type

String

插件类型

SourceKey

String

原始字段名

SplitSep

String

分隔符。可以设置不可见字符,例如\u0001\u0002。

SplitKeys

String数组

分割日志后设置的字段名,例如["ip", "time", "method"]。

PreserveOthers

Boolean

如果待分割的字段长度大于SplitKeys参数中的字段长度时是否保留超出部分。如果未添加该参数,则默认使用false,表示不保留。

ExpandOthers

Boolean

是否解析超出部分。如果未添加该参数,则默认使用false,表示不继续解析。

ExpandKeyPrefix

String

超出部分的命名前缀。例如配置expand_,则Key为expand_1、expand_2。

NoKeyError

Boolean

无匹配的原始字段时是否报错。如果未添加该参数,则默认使用false,表示不报错。

NoMatchError

Boolean

分隔符不匹配时是否报错。如果未添加该参数,则默认使用false,表示不报错。

KeepSource

Boolean

是否保留原始字段。如果未添加该参数,则默认使用false,表示不保留。

样例

采集/home/test-log/路径下的delimiter.log文件,使用竖线(|)分隔符提取日志的字段值。

  • 输入

echo "127.0.0.1|10/Aug/2017:14:57:51 +0800|POST|PutData?Category=YunOsAccountOpLog|0.024|18204|200|37|-|aliyun-sdk-java" >> /home/test-log/delimiter.log
  • 采集配置

enable: true
inputs:
  - Type: file_log
    LogPath: /home/test-log/
    FilePattern: delimiter.log
processors:
  - Type: processor_split_char
    SourceKey: content
    SplitSep: "|"
    SplitKeys:
      - ip
      - time
      - method
      - url
      - request_time
      - request_length
      - status
      - length
      - ref_url
      - browser
flushers:
  - Type: flusher_sls
    Endpoint: cn-xxx.log.aliyuncs.com
    ProjectName: test_project
    LogstoreName: test_logstore
  - Type: flusher_stdout
    OnlyStdout: true
  • 输出

{
    "__tag__:__path__": "/home/test-log/delimiter.log",
    "ip": "127.0.0.1",
    "time": "10/Aug/2017:14:57:51 +0800",
    "method": "POST",
    "url": "PutData?Category=YunOsAccountOpLog",
    "request_time": "0.024",
    "request_length": "18204",
    "status": "200",
    "length": "37",
    "ref_url": "-",
    "browser": "aliyun-sdk-java",
    "__time__": "1657361070"
}

Last updated