2016-04-13 14 views
0

logstashですべてのログを解析するために、すべてのログに対して正しいgrokパターンを見つけるのに問題があります。私のログのpgpoolログのLogstash grokパターン

例:

1)2016年4月13日19時55分40秒:PID 21950:ログ:pool_send_and_wait:バックエンドからのエラーまたは通知メッセージ:DBノードID:4バックエンドPID:65156ステートメント: "UPDATE certname ......"(残りのログは関係ありません)

2)2016-04-13 19:55:40:pid 17555:FATAL:失敗しました(部分的に動作する)バックエンドから一種読み取る

マイGROKパターン:

GROK { 一致=> { "メッセージ" => "%{GREEDYDATA:LOGDATE}:のPID%{NUMBER:PID}:%{LOGLEVEL:ログレベル}:%{GREEDYDATA:LogMessageに}"} }

これらを見ることができるようにメッセージ自体は、I上記のパターンから除き

も使用して日付を指定しようとしました 1)ログ 2日)PID 3)ログレベル 4)\:私は気に物事がされています%{TIMESTAMP_ISO8601:timestamp}パターン(grokデバッガが私に示唆したように)。

私の前提は、 "log"という単語が2回あるので問題のあるログの種類です.2度目はコロンの後に表示されません(私のgrokパターンとは異なります)だから私はそれがなぜ構文解析操作に失敗するのか分かりません。

実際、「ログ」という単語が含まれていないログは2回正常に解析されました。パターンは部分的に機能します。

感謝:)

+0

パターンの最後にGREEDYDATAを使用するようにしてください。 datetimeと一致するようにISO8601に切り替えて、それがどうなるかを見てください。 –

+0

私は試しました、それは動作しませんでした –

答えて

0

トリックGROKパターンを作るための設定が完了しているまで、左から開始最初の作業を取得し、右方向にゆっくりと移動することです。

これを実行すると、%{LOGLEVEL}を追加すると動作を停止することがわかります。どうして? "LOG"はLOGLEVELに有効な有効なものではないためです。それはDEBUGなどのものを期待しています。代わりに%{WORD}のようなものを使用してください。うまくいきます。

+0

ありがとう、それは働いた! –

関連する問題