2017-02-25 6 views
0

Ich benutze Logastash zum Sammeln von Daten von MySQL. Json Ergebnis sieht:Extrahieren bestimmter Schlüssel und Wert in Logstash

"_source" : { 
      "username" : "[email protected]", 
      "timestamp" : 1481785195811703, 
      "peer" : "[email protected]/1596084304715518942270426", 
      "bare_peer" : "[email protected]", 
      "xml" : "<message to='[email protected]' type='groupchat' from='[email protected]'><body>msg</body><jid>456-345</jid></message>", 
      "txt" : "msg", 
      "id" : 6452, 
      "kind" : "groupchat", 
      "nick" : "user", 
      "created_at" : "2016-12-15T06:59:55.000Z", 
      "@version" : "1", 
      "@timestamp" : "2017-02-25T12:17:52.043Z" 
      } 

Ich brauche extrahieren Wert von "xml" Schlüssel als separaten Wert. Wie dieser "jid": 456-345

Danke

Antwort

1

Grok kann damit umgehen.

grok { 
    match => { 
    "xml" => "<jid>(?<jid>[-0-9]{4,9})</jid>" 
    } 
} 

wird dies ein gleich den Wert jid Feld erstellen Sie geliefert. Der Wert im JID-Tag im XML-Code kann zwischen 4 und 9 Zeichen lang sein. Passen Sie es nach Bedarf an.

Verwandte Themen