2017-01-31 98 views
0

我正在使用logstash從sql數據庫中獲取數據。有一種被稱爲「代碼」字段,其中內容有 這種結構:使用logstash修改字段的內容

PO0000001209

ST0000000909

而我想要做的是字母后,除去6個零,以獲得結果如下:

PO1209

ST0909

我會把結果另一個名爲「code_short」的字段並將其用於elasticsearch中的查詢。我已經配置了輸入 和輸出logstash,但我不知道如何使用grok或可能使用mutate過濾器

我已經閱讀了一些示例,但我對此很陌生,而且有點卡住了。

任何幫助,將不勝感激。謝謝。

回答

0

你可以使用一個mutate/gsub過濾器這一點,但將取代code字段的值:

filter { 
    mutate { 
    gsub => [ 
     "code", "000000", "", 
    ] 
    } 
} 

另一種選擇是使用grok過濾器是這樣的:

filter { 
    grok { 
    match => { "code" => "(?<prefix>[a-zA-Z]+)000000%{INT:suffix}" } 
    add_field => { "code_short" => "%{prefix}%{suffix}"} 
    } 
} 
+0

非常感謝你很多爲你的幫助Val,它完美的工作! – Ubbi099

+0

太棒了,很高興它的工作!出於好奇,您選擇了哪種解決方案? – Val

+0

我已經使用了第二個,它完全符合我所尋找的,謝謝! – Ubbi099