0
^(?:%{LOGLEVEL:level}):\s*%{DATA:message}\s*(?:%{JAVACLASS:caller_class})\s+\[%{WORD:loglevel}\]\s+(\[\s*\S+\s+%{BASE10NUM:tstamp}.*?\]\s+)+(\[\s*\S+\s+%{BASE10NUM:memory}\S*\s+\S+\s+%{BASE10NUM:total}.*?\]) 

これは私の grok パターンですhttps://regex101.com/r/yMq9J1/1

そして今、フィルターのlogstash構成でこれを使用したかったのですが、エラーが発生しました

指定された構成は無効です。理由: フィルタ { grok { match => { "message" => "^(?:%{LOGLEVEL:level}):\s*% の後の 12 行目、19 列目 (バイト 341) に #、=> のいずれかが必要です{DATA:message}\s*(?:%{JAVACLASS:caller_class})\s+[%{WORD:loglevel}]\s+([\s*\S+\s+%{BASE10NUM:tstamp}. ?]\s+ )+([\s \S+\s+%{BASE10NUM:メモリ}\S*\s+\S+\s+%{BASE10NUM:合計}.*?])" } } 出力 { elasticsearch

ここの状況を理解するのを手伝ってくれませんか?

4

1 に答える 1

0

grok パターンは問題ではありません。構成には}、grok フィルターの一致設定を閉じる a がありません。

%{BASE10NUM:total}.*?])"次のように、 の後に追加する必要があります。

      ...%{BASE10NUM:total}.*?])" 
    }  # missing accolade
  } 
}   

output { 
  elasticsearch
  ...
于 2016-12-06T13:24:59.997 に答える