2016-04-13 11 views
1

i ein Protokoll Druck haben wie folgtLogstash Parse-Feld Ausgabe

"message" => "....", 
"host" => "10.10.12.13", 
"@version" => "1", 
"@timestamp" => "2016-04-13T01:52:43.535Z", 
"DISMAN-EVENT-MIB::sysUpTimeInstance" => "22 days, 16:33:23.24", 
"SNMP-MIB::OID_0" => "example::bgpPeerState", 
"source_ip" => "10.10.12.13" 

Ich möchte die Zeichenfolge analysieren, die auf dem Präfix „spezifischen“ und fügen Sie ein Feld für diese und entfernen Sie die ursprüngliche

basiert

"SNMP-MIB::OID_0" => "example::bgpPeerState"

es sollte wie wie unten aussieht,

"message" => "....", 
"host" => "10.10.12.13", 
"@version" => "1", 
"@timestamp" => "2016-04-13T01:52:43.535Z", 
"type" => "snmptrap", 
"DISMAN-EVENT-MIB::sysUpTimeInstance" => "22 days, 16:33:23.24", 
"example" => "bgpPeerState", 
"source_ip" => "10.10.12.13" 

mein conf,

filter 
{ 
     if "example" in [SNMP-MIB::OID_0] { 
       # I don't how to parse it and add a field ??? 

       } 
     else 
     { 
       ....... 
     } 

} 

Wie immer vielen Dank für Ihre Hilfe!

Antwort

0

Verwendung kv Filter:

filter { 
    if "example" in [SNMP-MIB::OID_0] { 
     kv { 
      source => "SNMP-MIB::OID_0" 
      value_split => ":" 
      trim => ":" 
      remove_field => "SNMP-MIB::OID_0" 
     } 
    } 
} 

}