CnOps 智能运维与可观测社区
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题

CnOps 智能运维与可观测社区

愿景

CnOps 智能运维与可观测社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页/开源项目/LoongCollector/键值对
文档目录
概览版本管理
什么是处理插件
添加字段追加字段添加云资产信息原始数据数据脱敏字段值映射处理丢弃字段字段加密条件字段处理日志过滤时间提取(Go 时间格式)GrokJson日志转SLS Metricotel Metric格式转换otel Trace格式转换字段打包日志限速正则重命名字段分隔符键值对多行切分字符串替换时间提取(strptime 格式)

LoongCollector

键值对

processorsplitkeyvalue processor插件可以通过切分键值对的方式提取字段。 Stable 推荐版本:iLogtail v1.5.0 及以上 | 参数 | 类型 | 是否必选 | 说明 ...

键值对

简介

processor_split_key_value processor插件可以通过切分键值对的方式提取字段。

版本

Stable

版本说明

  • 推荐版本:iLogtail v1.5.0 及以上

配置参数

参数 类型 是否必选 说明
Type string 是 插件类型。
SourceKey string 否 原始字段名。
Delimiter string 否 键值对之间的分隔符。如果未添加该参数,则默认使用制表符\t。
Separator string 否 单个键值对中键与值之间的分隔符。如果未添加该参数,则默认使用冒号(:)。
KeepSource bool 否 是否保留原始字段。如果未添加该参数,则默认使用true,表示保留。
ErrIfKeyIsEmpty bool 否 当key为空字符串时是否告警。如果未添加该参数,则默认使用true,表示告警。
EmptyKeyPrefix string 否 如果key是空字符串,可通过该参数设置key的前缀,默认为"empty_key_",最终key的格式为前缀+序号,比如"empty_key_0"。
DiscardWhenSeparatorNotFound bool 否 无匹配的原始字段时是否丢弃该键值对。如果未添加该参数,则默认使用false,表示不丢弃。
NoSeparatorKeyPrefix bool 否 无匹配的原始字段时,如果保留该键值对,可通过该参数设置key的前缀,默认为"no_separator_key_", 最终保存下来的格式为前缀+序号:报错键值对,比如"no_separator_key_0":"报错键值对"
ErrIfSourceKeyNotFound bool 否 无匹配的原始字段时是否告警。如果未添加该参数,则默认使用true,表示告警。
ErrIfSeparatorNotFound bool 否 当指定的分隔符(Separator)不存在时是否告警。如果未添加该参数,则默认使用true,表示告警。
Quote string 否 引用符,当设定后若值被引用符包含,就提取引用符内的值。
注意引用符若为双引号,需要加转义符\。
当引用符内包含\字符与引用连用的情况,作为值的一部分输出。
引用符支持多字符。
默认不开启引用符功能。

样例

切分键值对1

采集/home/test-log/路径下的key_value.log文件,并按照键值对间分隔符为制表符\t,键值对中的分隔符为冒号: 的格式进行日志解析。

  • 输入
echo -e 'class:main\tuserid:123456\tmethod:get\tmessage:\"wrong user\"' >> /home/test-log/key_value.log
  • 采集配置
enable: true
inputs:
  - Type: input_file
    FilePaths: 
      - /home/test-log/*.log
processors:
  - Type: processor_split_key_value
    SourceKey: content
    Delimiter: "\t"
    Separator: ":"
flushers:
  - Type: flusher_stdout
    OnlyStdout: true
  • 输出
{
    "__tag__:__path__": "/home/test_log/key_value.log",
    "class": "main",
    "userid": "123456",
    "method": "get",
    "message": "\"wrong user\"",
    "__time__": "1657354602"
}

包含引用符的切分键值对

采集/home/test-log/路径下的key_value.log文件,并按照键值对间分隔符为制表符\t,键值对中的分隔符为冒号: 的格式进行日志解析。

  • 输入
echo -e 'class:main http_user_agent:"User Agent" "中文" "hello\t\"loongcollector\"\tworld"' >> /home/test-log/key_value.log
  • 采集配置
enable: true
inputs:
  - Type: input_file
    FilePaths: 
      - /home/test-log/*.log
processors:
  - Type: processor_split_key_value
    SourceKey: content
    Delimiter: " "
    Separator: ":"
    Quote: "\""
flushers:
  - Type: flusher_stdout
    OnlyStdout: true
  • 输出
{
    "__tag__:__path__": "/home/test_log/key_value.log",
    "class": "main",
    "http_user_agent": "User Agent",
    "no_separator_key_0": "中文",
    "no_separator_key_1": "hello\t\"loongcollector\"\tworld",
    "__time__": "1657354602"
}

包含多字符引用符的切分键值对

采集/home/test-log/路径下的key_value.log文件,并按照键值对间分隔符为制表符\t,键值对中的分隔符为冒号: 的格式进行日志解析。

  • 输入
echo -e 'class:main http_user_agent:"""User Agent""" """中文"""' >> /home/test-log/key_value.log
  • 采集配置
enable: true
inputs:
  - Type: input_file
    FilePaths: 
      - /home/test-log/*.log
processors:
  - Type: processor_split_key_value
    SourceKey: content
    Delimiter: " "
    Separator: ":"
    Quote: "\"\"\""
flushers:
  - Type: flusher_stdout
    OnlyStdout: true
  • 输出
{
    "__tag__:__path__": "/home/test_log/key_value.log",
    "class": "main",
    "http_user_agent": "User Agent",
    "no_separator_key_0": "中文",
    "__time__": "1657354602"
}

文章大纲