2016-05-19 12 views
1

最近、ログ処理用のELKスタックの解析を開始しました。ここでは、ログを生産性の高いものにするために、ログメッセージからいくつかのデータをフィールドとして取得する必要があります。 サンプルログメッセージ:私はGROKを使用してフィールドにKEY2の値を取得できますか
ログメッセージからデータを抽出するためのgrokパターン

05:25:11,405 DEBUG ClassName:? - Start of some data like ^Akey1=value1^Akey2=value2^Akey3=value3....keyN=valueN 

。 belowsのよう
私の試み:

%{TIME:timestamp}\s+%{LOGLEVEL:level}.*key2.* 

私は おかげで、事前にKEY2の値を保存する必要がありますかわかりません!

+0

は、フォーマットcom.example.classnameであなたのクラス名であり、あなたが疑問符 –

答えて

1

あなたはちょうどあなたが使用することができますVALUE2取得したい場合:

%{TIME:timestamp}\s+%{LOGLEVEL:level}%{GREEDYDATA}key2=%{GREEDYDATA:key2}\^A 

あなたがここでそれを試すことができます:http://grokdebug.herokuapp.com/

+0

が必要なのかおかげでvalue2が英数字の混在文字であれば、WORDの代わりに何を使用すべきですか?基本的にキー値の間の区切りは "^ A"文字で指定されます –

+0

私の答えが更新されました。 GREEDYDATAは^ A – alpert

+0

まですべてをマッチさせます。最後までkey3 = value3を含めて最後まですべてを取るようにします。 –

関連する問題