2014-10-02 89 views
0

我有一套日誌文件,其中每個文件日誌是針對特定的機器。logstash個人日誌分析與多行

我想要實現的是使用multiline{}過濾器來加入每個文件中的多行消息,因爲我想每個文件都有一個單獨的@timestamp。在日誌文件中

例如數據

標題

描述

TEST1

測試通過

測試端

filter { 
    multiline { 
    pattern => "from_start_line to end of line" 
    what => "previous" 
    negate => true 
    } 
} 

我只想將日誌文件中的所有數據作爲單個事件使用,而不使用該模式。

非常像告訴logstash進行多線事件直到EOF

回答

0

你不能這樣做。因爲logstash將始終保持對文件的監視。因此EOF對它毫無意義。

您可以做的另一種方法是在日誌的末尾添加一些模式。例如,將log_end添加到每個日誌輸出的末尾。

title 

description 

test1 

test pass 

test end-log_end 

然後,您可以使用此模式來多行顯示所有日誌。

multiline { 
    pattern => "log_end$" 
    negate => true 
    what => "next" 
} 

希望這可以幫助你。

+0

我只知道我可以在多行之前通過mutate {gsub => ['message','任何單詞','替換字']}來替換消息內容,但是如何僅在最後一行添加log_end作爲你建議? – 2014-10-02 07:04:03

+0

我的意思是你必須添加輸出日誌的程序/代碼。 – 2014-10-02 08:04:06

+1

我只能訪問日誌,猜測這意味着我需要從服務器下載所有日誌,並使用C++/python腳本將該模式附加到日誌中,然後將其提供給logstash。 = / – 2014-10-02 08:28:22