【问题标题】:Parse string to JSON in FluentD在 FluentD 中将字符串解析为 JSON
【发布时间】:2019-03-19 08:59:21
【问题描述】:

我有这个日志字符串:

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 parsing fluentd


    【解决方案1】:

    您可以使用 regexp 解析器并将事件格式化为 JSON。这是我的一个示例,我正在从日志文件尾部读取输入(与您的输入相同)并输出到标准输出。告诉我。

    <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>
    

    这是示例输出 -

    {"时间戳":"2019-03-18 15:56:57.5522","system":"HandFarm","module":"ResolveDispatcher","message":"开始 解析味精:8"}

    【讨论】:

    • 这对我来说没有意义。 JSON 配置在哪里?
    • @shadfc 我相信解析器默认将其格式化为 JSON。我正在尝试找到可以支持这一点但还没有找到的文档。
    • 此链接docs.fluentd.org/parser/regexp 描述了正则表达式解析器插件
    • @MikaRiekkinen 谢谢米卡。用新链接更新了答案。
    猜你喜欢
    • 2011-03-14
    • 2020-07-31
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多