2017-06-02 82 views
0

我在機器上運行kibana和elasticsearch實例。 Logstash和filebeat正在其他機器上運行。瞭解logstash重試策略

流程工作得很好。我有一個疑問,我需要明白這一點。我讓elasticsearch停下來,讓logstash將一些日誌泵入彈性體。由於彈性搜索不良,我希望數據會丟失。但是當我提出elasticsearch服務時,Kibana能夠顯示elasticsearch停機時發送的日誌。

當我在網上搜索,我知道logstash重試連接在elasticsearch是關閉。

請容我知道如何設置這個參數

回答

0

的原因是elasticsearch output實現使用兩個參數指數退避稱爲:

  • retry_initial_interval
  • retry_max_interval

如果批量調用失敗,Logstash將等待retry_initial_interval秒,然後重試。如果仍然失敗,它將等待2 * retry_initial_interval並重試。等到等待時間達到retry_max_interval,此時它會一直持續嘗試每個retry_max_interval秒。

請注意,此重試策略僅適用於ES無法訪問時。如果還有其他錯誤,例如映射錯誤(HTTP 400)或衝突(HTTP 409),則批量調用將不會重試。

+0

好的..謝謝你的信息。應該在Logstash或ElasticSearch中設置這些參數(** retry_initial_interval和retry_max_interval **)。 –

+0

顯然在你的Logstash配置中。 ES不知道Logstash是批量發送文檔給它的。 – Val

+0

嗨纈氨酸,對不起,我是在一些東西。我正在嘗試爲kibana,elasticsearch和logstash設置x-pack,並且我正面臨着這些問題。反正我加入retry_initial_interval&retry_max_interval如下,輸出{ elasticsearch {主機=> [ 「本地主機:9200」] \t \t \t \t用戶=> [ 「彈性」] \t \t \t \t密碼=> [ 「changeme」 ] \t \t \t \t retry_initial_interval => 5 \t \t \t \t retry_max_interval => 50 \t \t \t \t} stdout {codec => ruby​​debug} }當我開始logstash服務時,我沒有看到任何錯誤。希望它的工作正常。我無法測試,因爲我處於x-pack的中間。 –