在FluentD中将字符串解析为JSON

时间:2019-03-19 08:59:22

标签: 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",
  "message": "start resolving msg: 8",
}

我试图使用标准格式化程序,但没有任何结果。

1 个答案:

答案 0 :(得分:1)

您可以使用regexp解析器并将事件格式化为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>

这是示例输出-

  

{“ timestamp”:“ 2019-03-18   15:56:57.5522“,”系统“:” HandFarm“,”模块“:” ResolveDispatcher“,”消息“:”开始   解决味精:8“}