2016-08-25 121 views
0

我正在使用logstash將我的應用程序日誌輸出存儲到彈性搜索中。logstash作爲代理解析併發送到集中式logstash服務器

最初我想到了應用服務器1和2將日誌發送到集中式logsatsh的體系結構,我們將在該體系結構中解析輸入並將其發送到彈性搜索。

但是,集中式logstash服務器正在被許多應用程序使用。我們不希望它與日誌混雜在一起。

Centralized Logstash Parsing

因此,我在尋找一些實用程序或可解析在應用服務器本身的輸入,並將其發送到中央logstash這將進一步向前彈性搜索的程序。

我不確定Logstash是否適用於某種代理。我想到的架構如下。

Each application has logstash

相反日誌運送到集中的服務器和解析它。是否有可能在應用程序服務器本身中運行logstash,它將解析日誌並將其發送到集中式logstash。

僅用於示例conf文件。

在應用服務器

input{ 
file{ 
path => "/tmp/test.log" 
start_position => "beginning" 
} 
} 
filter{ 
parsing logic here with grok 
} 
output{ 
Centralized logstash IP 
} 

集中logstash節點

input{ 
application server IP 
} 

output{ 
elastic search IP 
} 

是否有可能實現這樣的或有任何其他簡單的方法來這樣做。

+1

像這樣分佈logstash是將負載分配到一組機器而不創建特定於logstash的機器的好方法。不足之處在於維護 - 將logstash配置發佈到一組機器會變得很痛苦(即使有可靠的等等)。我喜歡使用集中式logstash(es)的遠程機器上的filebeat。 –

回答

0

可以使用這種架構。

但是,使用logstash在應用程序服務器上執行解析的問題是Logstash可能會消耗大量資源,尤其是在您使用Grok解析時,會影響您的應用程序。由於必須解析長消息,有時Logstash可能會吃掉高達99%的CPU時間。
在應用程序服務器上使用簡單的託運人(如海狸或filebeat)並在專用服務器上安裝Logstash會更好。