2016-03-15 3 views
0

В моих журналах я могу видеть пароль базы данных. Я хочу удалить поля, когда они соответствуют одному конкретному методу. Ниже приведен пример формата журнала.Logstash mutate filters

Date = 2016-02-23: 00: 36: 29: 242, Level = 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

удалить поле просто удалить поле из pass.In моём случае мне нужно значение поля, но должно замаскировать –

+0

Затем используйте mutate-> replace, чтобы изменить значение поля. –

0

нашел ответ, мы можем использовать GSUB фильтр

например:
GSUB => [ "сообщение", "значение =% {Value}", ""]

+0

Вы сказали, что хотите «удалить поля». Вы не удаляете поле, но удаляете часть поля [сообщение]. –

+0

Да, вместо удаления поля мы можем замаскировать значение. Мы можем скрыть фактическое значение, которое присутствует. –

Смежные вопросы