2016-06-01 7 views
1

私は自分のELKスタックをlog4jを使って設定して実行しています。私ができるようにしたいのは、すべての例外をタイプ別にグループ化することです。たとえば、用語グラフを作成し、FileNotFound、NullPointerExceptionなどの各例外タイプの用語を使用します。私はすでに、最初の行に例外の種類が含まれているstack_traceフィールドを持っていて、完全なスタックトレースを持っています。私はこのようなオンラインの何かが見つかりました:フィールドの最初の行を取り出し、Logstash 1.4.0の新しいフィールドとして追加します。

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

をしかし、それは私が欲しいものではありません最初の行、だとこれは単なるstack_traceフィールドをオーバーライドします。 stack_traceフィールドの最初の行、例外タイプを取り出す新しいフィールドを追加します。

答えて

3

スタックトレースフィールドのコピーを作成し、その

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

EDITであなたのGSUBを実行します。this questionを指摘し@Alphaのおかげで、あなたは二つの別々の突然変異しを使用する必要があります。

+0

実際には明らかな解決策のハハ、ありがとう! – user1137582

+0

問題はありません:)時々、誰かが新鮮な表情をして "明白な答え"を与えるだけです。 –

+1

複数の変異が必要な場合があります。 http://stackoverflow.com/questions/34596364/logstash-mutate-gsub-not-workingを参照してください。 – Alpha

関連する問題