我正在发送json
消息以logstash
获取索引,elasticsearch
并设法在中设置UI仪表板Kibana
。我想按消息字段过滤数据,但无法弄清楚如何或在何处执行此操作。我的信息示例:
{"message":"{"pubDate":"2014-02-25T13:09:14",
"scrapeDate":"2014-02-5T13:09:26",
"Id":"78967",
"query":"samsung S5",
"lang":"en"}
现在,它会统计所有这些传入的消息,但是我需要通过字段本身(例如Id
或lang
或)过滤每条消息query
。这是必须在配置文件中完成还是可以在Kibana
界面中创建。
首先,我假设您的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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句