我正在处理ELK堆栈以处理Apache访问日志。花了很多时间了解查询DSL格式,以便可以编写更复杂的查询。目前我正面临着在kibana界面中运行查询的问题,但是当从命令行使用curl发布时,相同的查询工作正常。
Kibana版本:4.1.0
Elasticsearch版本:1.6.0
Java:1.8.0_45
使用curl(工作):
curl -XGET http://localhost:9200/cars/transactions/_search?search_type=count -d '{
"aggs" : {
"colors" : {
"terms" : {
"field" : "color"
}
}
}
}
来自here的已使用数据。
使用kibana(不工作):
{ "aggs" : { "colors" : { "terms" : { "field" : "color" } } } }
错误:
org.elasticsearch.index.query.QueryPassingException:[。kibana]没有为[aggs]注册查询
以下是我在kache中使用查询DSL在apache访问日志数据上成功运行的一些查询:
{"filtered":{"filter":{"bool":{"must":{"terms":{"verb":["get"]}}}}}}
{"filtered":{"filter":{"bool":{"must_not":{"terms":{"agent":["crawler","spider","nagios"]}}}}}}
我已经搜索了谷歌几个小时,但没有运气。
答案 0 :(得分:1)
我不确定您是否可以这样做,因为Discovery部分已经使用了时间戳聚合。
你能解释一下你想做什么吗?有一些方法可以在可视化中添加客户聚合。如果在可视化文件中打开聚合的高级部分,则可以看到输入包含其他聚合或其他参数的json的功能。
如果你给我一个你想要做的事情的例子我可以尝试帮助 - 你给出的例子可以用Kibana UI轻松完成。