2016-06-21 11 views
0

Zum Beispiel beginnen Ich habe folgende JSON:Logstash Feldname mit

{ 
    params{ 
    firstname : value1, 
    .lastname : value2 
    } 
} 

Wie kann ich überprüfen, ob der Name eines Feldes (der Wert) mit "." starten und löschen?

B.R

+0

Könnten Sie uns bitte gültige JSON geben? Mit Anführungszeichen? Und der Rechte Doppelpunkt? – baudsp

+0

Auch Ihre vollständige Konfiguration wäre nützlich, um zu antworten, ohne viele Dinge darüber zu behaupten. – baudsp

+0

Aus vertraulichen Gründen kann ich Ihnen keine weiteren Details geben, aber stellen Sie sich vor, ich erhalte folgende Nachricht: 'timestamp = 11111 $ vorname = wert1 $ .lastname = wert2' ich suche einen Filter, der' .langname' in ' Nachname' Hoffe du verstehst mich. –

Antwort

0

Wenn Ihr das json Filter werden mit dem json analysieren Sie die mutieren Filter mit gsub entfernen können alle "." vor dem json-Filter. Aber nur, wenn Sie sicher sind, dass die Punkte nur am Anfang der Feldnamen stehen.

Es würde wie folgt aussehen:

# Removing all the dots from the field message 
mutate { 
    gsub => ["message", "\.", ""] 
} 

json { 
    source => "message" 
}  

Es gibt eine Alternative, die die de_dot Filter ist. Sie müssen es installieren und es ist offensichtlich teuer Ressource-weise.

de_dot filter documentation