2

我正在发送json消息以logstash获取索引elasticsearch并设法在Kibana. 我想按消息字段过滤数据,但无法弄清楚如何或在哪里执行此操作。我的消息的一个例子:

{"message":"{"pubDate":"2014-02-25T13:09:14",
 "scrapeDate":"2014-02-5T13:09:26",
 "Id":"78967",
 "query":"samsung S5",
 "lang":"en"}

现在它计算所有这些消息,但我需要让每条消息都按字段本身过滤,例如 like Idor langor query。这必须在配置文件中完成还是可以在Kibana界面中创建。

4

1 回答 1

4

首先,我假设您的 json 消息是

{
   "pubDate":"2014-02-25T13:09:14",
   "scrapeDate":"2014-02-5T13:09:26",
   "Id":"78967",
   "query":"samsung S5",
   "lang":"en"
}

当您将消息发送到 logstash 时,您需要将编解码器指定为 json。如以下配置所示:

input {
    stdin {
            codec => json
    }
}

output {
    elasticsearch {
            cluster => "abc"
    }
}

Logstash 会将您的消息解析到不同的字段,例如输出:

{
   "pubDate" => "2014-02-25T13:09:14",
"scrapeDate" => "2014-02-5T13:09:26",
        "Id" => "78967",
     "query" => "samsung S5",
      "lang" => "en",
  "@version" => "1",
"@timestamp" => "2014-02-26T01:36:15.336Z",
      "host" => "AAAAAAAAAA"
 } 

当您在 Kibana 中显示这些数据时,您可以使用 fieldname:value 来查询和过滤您需要的内容。例如,您可以使用 查询所有消息lang:en

于 2014-02-26T01:39:13.230 回答