Logstash:grokで複数のパターンを指定する

messageを複数指定することで上から順番にマッチするかどうかを判定していきます。

 

Logstash:grokのパターン解析便利サイト

Grok Constructor

なるサイトがあります。
上のウィンドウにログをペースト、下に構文をペーストしてGoを押すと定義した正規表現パターンが正しいかどうかチェックできます。

Automatic Construction」では元ログを貼り付けると、自動的にそのGrokパターンを出力してくれます。

Logstash:grokフィルタって何さ

Grokとは、直訳すると「意味を捉える」という意味。取得したログデータのフィルタリング、抽出、加工を行う際のとても重要なフィルタです。
grokフィルタを使うと、非構造データを正規表現によって構造データ化することができます。つまり、
Apache logやSyslogなど様々なログの出力文字列を定型的なパターンと化して、各パートの抽出ができるようになります。

ここ に予め用意されているGrokパターンが記載されています。
例えばApacheのログだと、COMMONAPACHELOGという名前でアクセスログが定義されています。

Logstash:ファイルをどこまで読み込んだかを保持するsincedbという仕組み

Logstashでは、sincedbなるもので、ファイルをどこまで読み込んだかという情報を保持しています。

logstash.confに下記の記載がありますが、ここに前回どこまで読み込んだかの情報が記録されます。

同じファイルを最初から読み込みたい場合などは、こちらのファイルを一旦削除するなどの対応が必要です。

その他のsincedb関連のパラメータ
start_position・・・ファイルの読み込み開始位置をこのパラメータで指定。ただし、このパラメータは、マニュアルに記載されているように対象ファイルに”first contact” 時のみ有効となります。つまり一度でも
sincedbに記録されると、このパラメータはなんの影響も与えず、sincedbで記録されている位置から読み込まれるという挙動になります。マニュアルを見るとbeginningかendのどちらかを指定できます。デフォルトは「end」、つまり対象ファイルの最終行から読み込むという形になります。tail -fのようなものです。対象ファイルへのこれ以降の書き込み分から読み込みを始めるということです。対象ファイルの最初からの読み込みを示すのは「begining」です。対象ファイルの過去の書き込み分も読み込みたい場合に指定します。
sincedb_write_interval・・・sincedbを更新する頻度を指定(単位は秒)

IIS Logstash Grok

IISのアクセスログをLogstashのGrokパターンで表したものは下記。