我将json消息发送给logstash,由elasticsearch进行索引,并设法在Kibana中设置UI仪表板。我希望通过消息字段对数据进行过滤,但无法确定如何或在何处进行此操作。我的信息的一个例子:
{"message":"{"pubDate":"2014-02-25T13:09:14",
"scrapeDate":"2014-02-5T13:09:26",
"Id":"78967",
"query":"samsung S5",
"lang":"en"}现在,它会计算所有传入的消息,但我需要通过字段本身过滤每条消息,例如Id、lang或query。这必须在配置文件中完成,还是可以在Kibana接口中创建。
发布于 2014-02-26 01:39:13
首先,我假设您的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中显示这些数据时,您可以使用字段名:value来查询和过滤所需的内容。例如,可以使用lang:en查询所有消息。
https://stackoverflow.com/questions/22027698
复制相似问题