json - 将JSON文件解析为logstash

标签 json elasticsearch logstash kibana logstash-grok

嗨,我正尝试使用logstash将包含多个对象的json文件发送到elasticsearch,以便我可以使用kibana显示数据。我对此进行了广泛的研究,根本无法理解如何正确格式化数据以在kibana中使用。

我尝试使用不同的过滤器,例如:json,date和grok

问题可能是我如何使用这些过滤器,因为我不明白它的设置是否很好。

这是输入json文件的示例行:

{"time":"2015-09-20;12:13:24","bug_code":"tr","stacktrace":"543534"},

我想使用这种格式在kibana中显示数据并根据其“时间”对许多对象进行排序

以下是我当前的过滤器部分:
filter {
    date {
        match => ["time", "YYYY-MM-dd;HH:mm:ss Z" ]
        timezone => "America/New_York"
        locale => "en"
        target => "@timestamp"
    }
    grok {
        match => ["time", "%{TIMESTAMP_ISO8601:timestamp}"]
    }
}

在这一点上,我知道骗子是错误的,因为我得到了“_grokparsefailure”
但是我如何找出使用grok的正确方法,还是有一种简单的方法使用给定的时间戳而不是通过发送数据时给定的已处理时间戳对数据进行排序。

这是当前输出显示的内容:
"message" => "{\"time\":\"2015-09-20;12:13:24\",\"bug_code\":\"tr\",\"stacktrace\":\"543534\"},\r",
"@version" => "1",
"@timestamp" => "2015-11-23T09:54:50:274Z",
"host" => "<my_computer>",
"path" => "<path_to_.json>",
"type" => "json",
"tags" => [
[0] "_grokparsefailure"

任何建议将不胜感激

最佳答案

您快要准备好了,我可以通过一些调整使其工作。

首先,您需要在第一个位置添加json{}过滤器。然后,您需要将日期模式更改为YYYY-MM-dd;HH:mm:ss,最后可以在最后删除grok过滤器。您的过滤器配置如下所示:

filter {
    json {
        source => "message"
    }
    date {
        match => ["time", "YYYY-MM-dd;HH:mm:ss" ]
        timezone => "America/New_York"
        locale => "en"
        target => "@timestamp"
    }
}

然后,示例JSON行的解析事件将如下所示:
{
       "message" => "{\"time\":\"2015-09-20;12:13:24\",\"bug_code\":\"tr\",\"stacktrace\":\"543534\"}",
      "@version" => "1",
    "@timestamp" => "2015-09-20T16:13:24.000Z",
          "host" => "iMac.local",
          "time" => "2015-09-20;12:13:24",
      "bug_code" => "tr",
    "stacktrace" => "543534"
}

关于json - 将JSON文件解析为logstash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33868921/

相关文章:

logstash - 如何将临时数据从过滤器传递到logstash中的输出

java - 使用 Jackson 将带有下划线的 JSON 反序列化为 Java 中的驼峰式大小写?

json - 字词查询不支持多个字段

performance - Elasticsearch:数值数据类型,可在整数上获得最佳性能

sql-server - 如何在SQL Server数据库中使用 Elasticsearch

xml - 解析XML Filebeat> Logstash> Elasticsearch

elasticsearch - Elasticsearch:覆盖日志文件导致重复

ios - 将自定义对象序列化为包含NSMutableArray的JSON

javascript - Parse.com SendGrid 云模块 : Cannot send header param object

java hashmap 似乎允许 2 个重复键