Как извлечь данные из цели в корневой каталог? - PullRequest
0 голосов
/ 06 сентября 2018

После того, как я использую плагин kv для разбора журнала, я хочу отфильтровать значение дальше. Я хочу дополнительно обработать значение cmd. Замените \ "на". Как использовать фильтр ruby ​​для обхода пар k, v?

Я использовал цель в плагине kv, используя ruby, чтобы подобрать цель для анализа и фильтрации, но цель изменила исходное имя поля.

мои данные выглядят так:

level="2" treatment="3" cmd1="\"D:\Program Files (x86)\a\safe\modules\setup.exe\" /s /smartsilence" type="sys"

конфигурация logstash выглядит следующим образом:

kv {
  source => "message"
  field_split => "[,\s]"
  value_split => "="
  trim_key => "\s"
  trim_value => "\""
  target => "kv"
}
ruby {
  code => "
    event = event.get('kv')
    event.each { |key,value|
      if value.include? '\"' 
        event[key] = value.gsub!('\"', '')
      end
    }
  "
}

результат:

kv {
  level="2"
  treatment="3"
  cmd="D:\Program Files (x86)\a\safe\modules\setup.exe /s /smartsilence"
  type="sys"
}

Исходное имя поля может быть cmd, но теперь оно становится kv.cmd. Что мне делать, если я не использую target как соединение? Или после использования цели в ruby ​​, как извлечь данные из цели в корневой каталог?

...