2015-06-15 95 views
0

我正在致力於處理Apache訪問日誌的ELK堆棧。花費大量時間瞭解Query DSL格式,以便編寫更復雜的查詢。目前,我正面臨着在kibana界面中運行查詢的問題,但當使用curl從命令行發佈時,相同的查詢工作得很好。如何使用查詢DSL爲Elasticsearch聚合編寫基本查詢搜索查詢

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] No query registered for [aggs]

下面是一些我設法在Apache訪問日誌數據使用查詢DSL在kibana成功運行的查詢:

  • {"filtered":{"filter":{"bool":{"must":{"terms":{"verb":["get"]}}}}}}
  • {"filtered":{"filter":{"bool":{"must_not":{"terms":{"agent":["crawler","spider","nagios"]}}}}}}

我已經搜索谷歌了幾個小時,但沒有運氣。

回答

1

我不確定你可以這樣做,因爲Discovery部分已經使用時間戳聚合。

你能解釋一下你想做什麼嗎?可以在可視化中添加客戶聚合。如果您打開可視化中聚合的高級部分,則可以看到輸入包含其他聚合或其他參數的json的能力。

如果你給我一個你正在嘗試做的例子,我可以嘗試和幫助 - 你給的例子可以很容易地用Kibana UI完成。

+0

作爲新來的ELK我沒有一個適當的想法聚合。我明白agg在發現選項卡中是不可能的,並且正在學習在可視化中使用它。我的疑問已被清除。 –