Я пытаюсь проанализировать некоторые JSON с logstash, в настоящее время файл, который я хотел бы ввести, имеет следующую структуру (упрощенно):
-4: {"audit":{"key1":"value1","key2":"value2"}}
-4: {"audit":{"key1":"value1","key2":"value2"}}
Поэтому мне нужно удалить префикс -4: чтобыПравильный анализ файла с помощью json.К сожалению, я не могу использовать кодек json для входного плагина, потому что он не в надлежащем формате json.Поэтому мои требования к конвейеру:
- Удалите префикс -4:
- Кодируйте событие в json
- Сделайте правильную мутацию
Я пробовал использовать следующий конвейер, который выдает ошибку синтаксического анализа:
input {
tcp {
port => 5001
codec => multiline {
pattern => "^-\d:."
what => previous
}
#codec => json_lines
type => "raw_input"
}
}
filter {
if [type] == "raw_input" {
mutate {
gsub => ["message", "^-\d:.", ""]
}
}
json {
source => "message"
}
mutate {
convert => { "[audit][sequenceNumber]" => "integer" }
add_field => { "test" => "%{[audit][sequenceNumber]}"}
}
}
output {
file {
path => "/var/log/logstash/debug-output.log"
codec => line { format => "%{message}" }
}
}
Можно ли этого добиться с помощью logstash?Есть предложения как это сделать?