2016-06-01 4 views
1

Ich habe meine ELK-Stack konfiguriert und läuft mit log4j und alles funktioniert gut. Was ich gerne tun könnte ist, alle Ausnahmen nach ihrem Typ zu gruppieren, zum Beispiel - erstelle ein Terms-Graph und habe einen Begriff für jeden Ausnahmetyp wie FileNotFound, NullPointerException und so weiter. Ich habe bereits ein stack_trace-Feld, das den Ausnahmetyp in der ersten Zeile und dann den vollständigen Stack-Trace enthält. Ich fand etwas online wie folgt aus:Nehmen Sie die erste Zeile eines Feldes und fügen Sie es als neues Feld in Logstash 1.4.0

filter{ 
    mutate { 
    gsub => [ 
     "stack_trace", "\n.*", "" 
    ] 
    } 
} 

aber dies würde nur die stack_trace Feld außer Kraft setzen damit erste Zeile ist, das nicht das, was ich will. Ich möchte ein neues Feld hinzufügen, das die erste Zeile, den Ausnahmetyp des stack_trace-Felds, ausschließt.

Antwort

3

eine Kopie des Feldes Stack-Trace Stellen und Ihre gsub führen an diesem

filter{ 
    mutate { 
    add_field => { 
     "exception" => "%{stack_trace}" 
    } 
    } 
    mutate { 
    gsub => [ 
     "exception", "\n.*", "" 
    ] 
    } 
} 

EDIT: Dank @Alpha für this question den Hinweis auf, müssen Sie möglicherweise zwei separate mutiert verwenden.

+0

Das ist eigentlich die offensichtliche Lösung haha, danke! – user1137582

+0

Kein Problem :) manchmal braucht es nur jemand anderen, um ein neues Aussehen zu bekommen und die "offensichtliche Antwort" –

+1

Beachten Sie, dass Sie mehrere Mutationen benötigen. Siehe http://stackoverflow.com/questions/34596364/logstash-mutate-gsub-not-working – Alpha