devo linee di registro nel seguente formato e vuole estrarre i campi:Logstash filtro Grok - campi di nome dinamicamente
[field1: content1] [field2: content2] [field3: content3] ...
io non conosco i nomi dei campi, né il numero di campi.
ho provato con backreference e il formato sprintf ma non ottenne i risultati:
match => [ "message", "(?:\[(\w+): %{DATA:\k<-1>}\])+" ] # not working
match => [ "message", "(?:\[%{WORD:fieldname}: %{DATA:%{fieldname}}\])+" ] # not working
Questo sembra funzionare per un solo campo, ma non di più:
match => [ "message", "(?:\[%{WORD:field}: %{DATA:content}\] ?)+" ]
add_field => { "%{field}" => "%{content}" }
Il filtro kv non è anche adeguato perché il contenuto dei campi può contenere spazi bianchi.
Esiste un plugin/strategia per risolvere questo problema?