2017-06-07 7 views
1

grokパターンを使用してカスタムログラインを解析しようとしていますが、そのラインを完全に解析できません。カスタムログgrokパターン

カスタムログライン:

site 'TRT' : alias 'TRT,FAK,FAS,ATI,ONE,DVZ,TWO' : serveur 'Test10011' RAS : TRT/TRT serveur 'Test10011' OK 

GROKパターン:

%{DATA:site}\:%{DATA:alias}\:%{DATA:server}\:%{DATA:msg} 

結果:私は 'MSG' の最後のいくつかの項目を解析することはできませんよ

{ 
    "site": [ 
    [ 
     "site 'TRT' " 
    ] 
    ], 
    "alias": [ 
    [ 
     " alias 'TRT,FAK,FAS,ATI,ONE,DVZ,TWO' " 
    ] 
    ], 
    "server": [ 
    [ 
     " serveur 'Test10011' RAS " 
    ] 
    ], 
    "msg": [ 
    [ 
     "" 
    ] 
    ] 
} 

、 。私が間違っているところで助けてくれますか? MSGは、あなただけではなく、DATAパターンのGREEDYDATAを使用する必要があるようだ「TRT/TRTのserveur 『Test10011』 OK」

答えて

1

が含まれている必要があります

%{DATA:site}\s*:\s*%{DATA:alias}\s*:\s*%{DATA:server}\s*:\s*%{GREEDYDATA:msg} 

は私も大手を取り除くために周り:\s*を追加することをお勧め/末尾の空白。 enter image description here

+0

ありがとう@Wiktor。前にGREEDYDATAは考えていませんでした: – user3758867

+1

「GREEDYDATA」は '。*'パターン(貪欲なドットマッチングパターン)に変換され、 'DATA'は'。*? '(レイジードットマッチングパターン)。 [欲張りと怠け者の数量詞](http://www.rexegg.com/regex-quantifiers.html)の詳細を読むことができます。 –

+0

最後のこと。私が「msg」ラベルに「OK」だけを付ける場合、OKの前に文字を削除するにはどうすればいいですか? – user3758867

関連する問題