Nuestro team redactor ha estado mucho tiempo investigando la resolución a tus dudas, te ofrecemos la resolución y nuestro objetivo es servirte de gran apoyo.
Solución:
El complemento Logstash Ruby puede ayudarlo. 🙂
Aquí está la configuración:
input
stdin
filter
ruby
code => "
fieldArray = event['message'].split('] [')
for field in fieldArray
field = field.delete '['
field = field.delete ']'
result = field.split(': ')
event[result[0]] = result[1]
end
"
output
stdout
codec => rubydebug
Con sus registros:
[field1: content1] [field2: content2] [field3: content3]
Esta es la salida:
"message" => "[field1: content1] [field2: content2] [field3: content3]",
"@version" => "1",
"@timestamp" => "2014-07-07T08:49:28.543Z",
"host" => "abc",
"field1" => "content1",
"field2" => "content2",
"field3" => "content3"
He probado con 4 campos, también funciona.
Tenga en cuenta que el event
en el código ruby está el evento logstash. Puede usarlo para obtener todo su campo de evento, como message, @timestamp
etc.
¡¡¡Disfrútala!!!
Encontré otra forma de usar expresiones regulares:
ruby
code => "
fields = event['message'].scan(/(?<=[)w+: .*?(?=](?:
Aquí tienes las comentarios y calificaciones
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)