在FluentD中将字符串解析为JSON

在FluentD中将字符串解析为JSON,json,parsing,fluentd,Json,Parsing,Fluentd,我有这个日志字符串: 2019-03-18 15:56:57.5522 | HandFarm | ResolveDispatcher | start resolving msg: 8 请告诉我如何在fluentd.conf中将此字符串解析为JSON格式?我需要以下格式: { "timestamp" : "2019-03-18 15:56:57.5522", "system" : "HandFarm", "module": "ResolveDispatcher", "mess

我有这个日志字符串:

2019-03-18 15:56:57.5522 | HandFarm | ResolveDispatcher | start resolving msg: 8
请告诉我如何在fluentd.conf中将此字符串解析为JSON格式?我需要以下格式:

{
  "timestamp"  : "2019-03-18 15:56:57.5522",
  "system"  : "HandFarm",
  "module": "ResolveDispatcher",
  "message": "start resolving msg: 8",
}
我尝试使用标准的格式化程序,但没有结果。

您可以使用解析器将事件格式化为JSON。这里是我的一个例子,我从日志文件tail读取输入(与您的输入相同),然后输出到stdout。让我知道

<source>
  @type tail
  path /tailsource/t.log
  pos_file /tailpos/t.log.pos
  read_from_head true
  tag temp
  <parse>
    @type regexp
    expression /^(?<timestamp>.*?)\s\| (?<system>.*?)\s\| (?<module>.*?)\s\| (?<message>.*)$/
  </parse>
</source>

<match>
  @type stdout
</match>

@型尾
路径/尾源/t.log
pos_文件/tailpos/t.log.pos
从你的头上读出来是真的
标签温度
@类型regexp
表达式/^(?.*?\s\|(?.*?\s\|(?.*?\s\|(?.*))$/
@类型标准输出
下面是示例输出-

{“时间戳”:“2019-03-18 15:56:57.5522,“系统”:“手农场”,“模块”:“ResolveDispatcher”,“消息”:“启动” 解析消息:8“}

您可以使用解析器将事件格式化为JSON。这里是我的一个例子,我从日志文件tail读取输入(与您的输入相同),然后输出到stdout。让我知道

<source>
  @type tail
  path /tailsource/t.log
  pos_file /tailpos/t.log.pos
  read_from_head true
  tag temp
  <parse>
    @type regexp
    expression /^(?<timestamp>.*?)\s\| (?<system>.*?)\s\| (?<module>.*?)\s\| (?<message>.*)$/
  </parse>
</source>

<match>
  @type stdout
</match>

@型尾
路径/尾源/t.log
pos_文件/tailpos/t.log.pos
从你的头上读出来是真的
标签温度
@类型regexp
表达式/^(?.*?\s\|(?.*?\s\|(?.*?\s\|(?.*))$/
@类型标准输出
下面是示例输出-

{“时间戳”:“2019-03-18 15:56:57.5522,“系统”:“手农场”,“模块”:“ResolveDispatcher”,“消息”:“启动” 解析消息:8“}


这对我来说毫无意义。JSON配置在哪里?@shadfc我相信解析器默认将其格式化为JSON。我正在尝试查找支持此功能的文档,但尚未找到。此链接介绍了regexp解析器plugin@MikaRiekkinen谢谢你,米卡。用新链接更新了答案。这对我来说没有意义。JSON配置在哪里?@shadfc我相信解析器默认将其格式化为JSON。我正在尝试查找支持此功能的文档,但尚未找到。此链接介绍了regexp解析器plugin@MikaRiekkinen谢谢你,米卡。用新链接更新了答案。