2016-09-08 5 views
1

Ich bin mit dem kv-Filter in meiner logstash Konfiguration und ich habe eine Zeichenfolge, die etwa wie folgt aussieht:Logstash kv Filter Problem mit leeren Werten

key1="value1" key2="" key3= key4=1 

Beachten Sie, dass key3 keinen Wert hat; das bewirkt, dass key3 einen Wert von "key4=1" zugewiesen bekommen Wie kann ich das beheben?

+1

Diese Antwort sollte helfen: http://stackoverflow.com/questions/38989998/how-to-deal-with-empty-fields-in-logstash – Val

+0

Wahr. Ich hätte es vor der Beantwortung der Frage lieber gesehen. – baudsp

+0

@Val sollte eine der beiden Fragen (diese oder jene, die Sie verlinkt haben) als doppelt markiert sein? – baudsp

Antwort

1

Es ist nicht die beste Lösung sein könnte, sind da wir blind ersetzen:

mutate { 
    gsub => [ 
     "message", "= ", '="" ' 
    ] 
    } 

Mit diesem Filter vor dem Filter kv, werden alle leeren Raum nach einem Gleichheitszeichen mit zwei Anführungszeichen ersetzt, um dieses Ergebnis zu geben :

"key1": "value1", 
"key2": "\"\"", 
"key3": "\"\"", 
"key4": "1\r"