2014-10-10 45 views
1

我試圖使用logstash將文檔提供給elasticsearch,然後我可以使用kibana Web界面進行查詢。我目前正在運行一個由logstash提供的單個彈性搜索節點,用於測試目的的apache訪問日誌,以便我可以學習如何在擴展到羣集中的多個elasticsearch節點之前使用logstash和elasticsearch,並通過logstash在多個主機和服務之間記錄聚合。重新啓動彈性搜索節點後找不到「(key)字段[@timestamp]」

昨晚我能夠通過使用logstash提供文檔來成功構建ES數據庫,並且能夠使用kibana查詢它。然而,今天,當我再次開始了我的ES節點,我看到下面的錯誤嘗試運行查詢時:(完整的日誌可用here

[2014-10-10 13:11:53,437][DEBUG][action.search.type  ] [Madam Slay] All shards failed for phase: [query] 

我節點的健康狀況似乎要很好:

[pitserver ~/local/tmp/elasticsearch-1.3.4]% curl -XGET "http://localhost:9200/_cluster/health?pretty=true" 
{ 
    "cluster_name" : "elasticsearch", 
    "status" : "yellow", 
    "timed_out" : false, 
    "number_of_nodes" : 1, 
    "number_of_data_nodes" : 1, 
    "active_primary_shards" : 2520, 
    "active_shards" : 2520, 
    "relocating_shards" : 0, 
    "initializing_shards" : 0, 
    "unassigned_shards" : 2520 
} 

我試着重新啓動節點幾次。 data目錄表面上包含與昨天相同的數據。

後學習更多的有關查詢如何kibana對elasticsearch,我認爲,在日誌文件中的最相關的錯誤是這個:

(key) field [@timestamp] not found 

我瞭解到,這個錯誤彈出時試圖提取包含與elasticsearch中現有logstash索引不相對應的日期的柱狀圖。我找到了一個(closed) issue report on kibana's GitHub page that describes the problem I am having。解決方法是隻繪製一個直方圖,對應於我的elasticsearch數據庫中現有logstash索引的日期。

對我來說沒什麼意義的是我昨天能夠通過時間戳字段查詢。但是在重新啓動elasticsearch集羣之後,彈性搜索在當前不存在的時間戳字段中存在問題。

爲什麼在重新啓動elasticsearch後只能看到這個問題?

回答

0

您有相等數量的unassigned_shards,這些看起來像副本?嘗試禁用副本以恢復到綠色羣集狀態,然後重試是我的建議。

+0

你能解釋一下如何做到這一點,爲什麼你認爲刪除副本碎片會有幫助?我對elasticsearch很陌生。 – jayhendren 2014-10-13 17:47:41

+0

捲曲-XPUT的 'localhost:9200/my_index/_settings' -D ' { 「指數」:{ 「number_of_replicas」:0 }} ' – 2014-10-13 22:51:58

+1

我假設將禁用所有副本碎片?爲什麼你認爲運行這將有助於我的問題?看起來問題更多的是從kibana運行的查詢,而不是我的elasticsearch數據庫中的碎片。 – jayhendren 2014-10-14 16:47:08