После того, как я использую плагин 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 , как извлечь данные из цели в корневой каталог?