2017-08-25 93 views
0

我有一個Logstash進程在一個節點中運行,消耗在Redis列表中,但是恐怕只有一個進程無法在沒有很大延遲的情況下處理數據吞吐量。從Redis讀取的許多Logstash實例

我想知道如果我在同一臺機器上運行一個Logstash進程會更好一些,但我不確定。我知道我的ES指數不是瓶頸。

如果我使用相同的列表,Logstash會複製我的數據嗎?這種做法似乎是正確的做法?

謝謝!

這裏我輸入的配置:

input { 
    redis { 
     data_type => "list" 
     batch_count => 300 
     key => "flight_pricing_stats" 
     host => "my-redis-host" 
    } 
} 
+1

'會Logstash複製我的數據,如果我消耗相同的列表'沒有也不會。當logstash從redis列表中提取消息時,消息將從redis中刪除。 (我們在生產中使用多個logstash從一個redis中提取消息)。 – baudsp

回答

1

你可以嘗試調整logstash輸入線程,如果你要在同一臺機器上運行另一個logstash過程。默認值爲1.

input { 
    redis { 
     data_type => "list" 
     batch_count => 300 
     key => "flight_pricing_stats" 
     host => "my-redis-host" 
     threads => 2 
    } 
} 

您可以對同一個redis運行多個logstash,不應該重複發生事件。但我不確定這會有幫助。

如果您不確定發生了什麼,我推薦logstash monitoring API。它可以幫助你縮小真正的瓶頸。

而且還從彈性的有趣的帖子關於這個問題:Logstash Lines Introducing a benchmarking tool for Logstash