【问题标题】:Having Logstash reading JSON让 Logstash 读取 JSON
【发布时间】:2014-02-20 12:04:36
【问题描述】:

我正在尝试使用 logstash 来分析包含 JSON 对象的文件,如下所示:

{"Query":{"project_id":"a7565b911f324a9199a91854ea18de7e","timestamp":1392076800,"tx_id":"2e20a255448742cebdd2ccf5c207cd4e","token":"3F23A788D06DD5FE9745D140C264C2A4D7A8C0E6acf4a4e01ba39c66c7c9cbd6a123588b22dc3a24"}}
{"Response":{"result_code":"Success","project_id":"a7565b911f324a9199a91854ea18de7e","timestamp":1392076801,"http_status_code":200,"tx_id":"2e20a255448742cebdd2ccf5c207cd4e","token":"3F23A788D06DD5FE9745D140C264C2A4D7A8C0E6acf4a4e01ba39c66c7c9cbd6a123588b22dc3a24","targets":[]}}
{"Query":{"project_id":"a7565b911f324a9199a91854ea18de7e","timestamp":1392076801,"tx_id":"f7f68c7fb14f4959a1db1a206c88a5b7","token":"3F23A788D06DD5FE9745D140C264C2A4D7A8C0E6acf4a4e01ba39c66c7c9cbd6a123588b22dc3a24"}}

理想情况下,我希望 Logstash 能够理解 JSON。 我使用了以下配置:

input {
 file {
    type => "recolog"

    format => json_event

    # Wildcards work, here :)
    path => [ "/root/isaac/DailyLog/reco.log" ]
  } 
}

output {
  stdout { debug => true }
  elasticsearch { embedded => true }
}

我基于这个Apache recipe构建了这个文件

当使用 debug = true 运行 logstash 时,它会读取如下对象: 我如何根据我的 JSON 文件在 kibana GUI 中查看统计信息,例如查询对象的数量,甚至基于时间戳的查询。 现在它看起来像是理解数据的一个非常基本的版本,而不是它的结构。

提前谢谢

【问题讨论】:

  • 你看this了吗?

标签: json logstash


【解决方案1】:

我发现logstash会使用文件输入中的codec字段自动检测JSON字节,如下所示:

input {
   stdin {
   type => "stdin-type"
 }

 file {
    type => "prodlog"

    # Wildcards work, here :)
    path => [ "/root/isaac/Mylogs/testlog.log"]

    codec => json
 }
}

output {
  stdout { debug => true }
  elasticsearch { embedded => true }
}

然后 Kibana 完美地展示了 JSON 的字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 2014-07-20
    相关资源
    最近更新 更多