2017-01-20 33 views
0

我有一個字符串字段「origin_message」。這是相當大的一個(使用多獲得郵件內容「origin_message」的例子:如何在logstash中使用grok或gsub在特定單詞之前刪除部分字符串?

Delivered-to: [email protected] A LOT OF OTHER CONTENT Subject: Subject goes here AND THE REST OF THE MESSAGE 

期望的結果:

Subject goes here AND THE REST OF THE MESSAGE 

有沒有辦法修剪之前「主題:」一切短語?

我都試過,沒有運氣以下過濾器:

filter { 
mutate { 
    add_field => { "original_message" => "%{message}" } 
    convert => { 
     "original_message" => "string" 
    } 

    gsub => [ 
     "original_message", "^(.*)Subject", " " 
    ] 
} 
} 
+0

使用'gsub'是正確的。當我使用這種模式'「^(。*)主題:」',我得到以下輸出'「主題去這裏和消息的其餘部分」' – Val

+0

不幸的是,在我的情況下不起作用。可能是因爲多行代碼被用來輸入數據?我仍然有完整的原始信息。 – AlexG

+0

但是當事件碰到'gsub'過濾器時,一切都在一行上,對嗎? – Val

回答

0

不知道爲什麼,但使用GSUB在複製之前在「消息」字段中分隔「original_message」字段解決了問題。

filter { 
mutate { 
    gsub => ["message", "^(.*)Subject", " "] 
    add_field => { "original_message" => "%{message}" } 

    convert => { 
     "original_message" => "string" 
    } 
} 
} 

@Val,謝謝驗證。問題似乎與模式無關。

相關問題