2016-03-15 153 views
0

在我的日誌中,我能夠看到數據庫的密碼。我想刪除字段,當它匹配一個特定的方法。下面是樣本日誌格式。Logstash變種過濾器

日期= 2016年2月23日:00:36:29:242,級別= INFO,類= abc_class,方法= abc_method,行= 266,名稱= dataSourceUser,消息=返回屬性,值=密碼

下面

是樣品logstashclient濾波器正在使用,但仍是能夠看到值字段(密碼)

filter { 
    grok { 
      match => {"message"=>"Date=(?<LogTime>%{YEAR:Year}-%{MONTHNUM:Month}-%{MONTHDAY:Day}:%{TIME:Time}), (Level=)(?<SeverityLevel>[A-Z]*)(\s)?, %{GREEDYDATA:message}"} 
      break_on_match => false 
    } 
    date { 
      match => ["LogTime", "YYYY-MM-dd:HH:mm:ss:SSS"] 
      target => "@timestamp" 
    } 
    if[method=="abc_method"]{ 
     mutate { 
      remove_field => ["%{Value}"] 
     } 
    } 

ETA:當過它方法相匹配= abc_method它不應該傳遞值字段,用於其它metods它應該通過

+0

GSUB解決了問題: –

回答

0

嘗試:

remove_field => [ "value" ] 
+0

我們可以使用gsub過濾器:gsub => [「message」,「value =%{Value}」,「」] –

+0

刪除字段只是將字段從傳遞中刪除。在我的情況下,我需要值字段,但應該被屏蔽 –

+0

然後使用mutate-> replace來更改該字段的值。 –

0

發現我們可以使用GSUB過濾答案

例如:
GSUB => [ 「消息」, 「值=%{值}」, 「」]

+0

你說你想「刪除字段」。你不是刪除一個字段,而是刪除[message]字段的一部分。 –

+0

是的,我們可以屏蔽該值,而不是刪除字段。我們可以隱藏存在的實際值。 –