yml plugin pipelines mutate multiple example logstash logstash-configuration

plugin - pipeline logstash



cheque logstash si el campo existe (3)

Tengo archivos de registro que llegan a una pila de ELK. Quiero copiar un campo (foo) para realizar varias mutaciones en él. Sin embargo, el campo (foo) no siempre está presente.

Si foo no existe, entonces la barra aún se crea, pero se le asigna la cadena literal "%{foo}"

¿Cómo puedo realizar una mutación solo si existe un campo?

Estoy tratando de hacer algo como esto.

if ["foo"] { mutate { add_field => "bar" => "%{foo} } }


"foo" es una cadena literal.

[foo] es un campo.

# technically anything that returns ''true'', so good for numbers and basic strings: if [foo] { } # contains a value if [foo] =~ /.+/ { }


En Logstash 2.2.2, la construcción ("" in [field]) no parece funcionar para mí.

if ![field] { }

Hace, para un campo no numérico.


Para comprobar si el campo foo existe:

1) Para los campos de tipo numérico use:

if ([foo]) { ... }

2) Para tipos que no sean numéricos como booleano, uso de cadenas:

if ("" in [foo]) { ... }