オープンソース

一覧へ

10. ログを抽出・分割して保存するには

Graylogでは、テキストのログから、内容を抽出・分解することができます。 この機能のことをextractorと呼びます。

10.1. extractorとは

extractorは、テキストのログメッセージを分割するための機能です。 正規表現などのルールを使い、ログのフィールド分割を行なうことができます。

Graylogのログ分割

分割して登録したフィールドは、検索やグラフの作成に活用できます。

10.2. extractor設定画面への遷移

extractorの設定画面には、複数の画面から遷移できます。

10.2.1. 検索画面から

メニューの Search をクリックすると検索画面が表示されます。

Graylogの検索画面

検索画面の All Messages に表示されているログをクリックすると、ログが展開されます。 次の図は、 message フィールドに表示されているログをクリックした場合の図です。

Graylogのmessageフィールド

Create extractor をクリックすると、Extractor の種類を選択する画面が表示されます。

Graylogのextractorへの遷移

Hint

Extractor の種類については extractorの種類 を参照してください

10.2.2. Input設定画面から

メニューからInputsの画面に遷移します。

GraylogのInputへの遷移

次に Manage extractors をクリックするとextractorの管理画面が表示されます。

Graylogのextractorの管理画面

さらに、 Create extractor をクリックし、 Load Message をクリックすると、最近のログを読み込むことができます。

Graylogのログの読み込み

読み込んだログの分割したいフィールド右側にある Select extractor type からExtractor の種類を選択して、設定画面に遷移します。

Graylogのextractorへの遷移

Hint

Extractor の種類については extractorの種類 を参照してください

10.3. extractorの種類

10.3.1. Copy input

Copy inputは、特定のフィールドの値を、別のフィールドに登録するためのextractorです。

GraylogのCopyInput

入力値の説明は次のとおりです。

  • Source field : extractorを適用するフィールドです。
  • Condition
    • Always try to extract :常にこのextracterを適用する
    • Only attempt extraction if field contains string :フィールドに特定の文字列が含まれている場合にこのextractorを適用する
    • Only attempt extraction if matches regular expression :フィールドの値と正規表現がマッチする場合にこのextractorを適用する

Note

フィールドの値とマッチングする選択肢の場合、マッチさせる文字列や正規表現を入力するフォームが表示されます。

  • Store as field : コピーしたデータを保存するフィールド名を指定します。
  • Extraction strategy
    • Copy : パターンにマッチした情報を、別のフィールドにコピーする
    • Cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する
  • Extractor title : extractorの設定のタイトルを指定します。
  • Add Converter : データを変換するコンバータを指定します。

Hint

コンバータについては コンバータ(converter) を参照してください

10.3.2. Grok pattern

Grok patternは、メッセージをGrok patternと呼ばれる正規表現のルールの集合で分割するextractorです。

GraylogのGrokpattern

入力値の説明は次のとおりです。

  • Source field : extractorを適用するフィールドです。
    • Named captures only :チェックすると下記の Grok pattern の中で、明示的にフィールド名が指定されているデータのみ、保存されます。

Note

Grok patternは、1つのパターンの中で、複数のパターンを利用するという入れ子の形になっています。上記をチェックしないと、入れ子になっている全てのパターンについて、マッチしたデータのフィールドが作成されます。

  • Grok pattern : Grok patternと呼ばれる正規表現をまとめたパターンを入力します。いくつかのGrok patternは、既に準備されています。現在利用できるGork patternは、 Filter pattern で確認できます。
  • Try against example : ボタンをクリックすると、ログ解析のテスト結果を表示します。

Note

例えば、Apache HTTP Serverのログであれば、COMMONAPACHELOGというパターンが既に用意されています。これを上記に設定する場合、%{COMMONAPACHELOG}のように設定をします。なお上記フィールドに直接正規表現を記載することもできます。

Hint

パターンの作成方法については、ログ分析パターンの管理方法 を参照してください。

  • Condition
    • Always try to extract :常にこのextracterを適用する
    • Only attempt extraction if field contains string :フィールドに特定の文字列が含まれている場合にこのextractorを適用する
    • Only attempt extraction if matches regular expression :フィールドの値と正規表現がマッチする場合にこのextractorを適用する

Note

フィールドの値とマッチングする選択肢の場合、マッチさせる文字列や正規表現を入力するフォームが表示されます。

  • Extraction strategy
    • Copy : パターンにマッチした情報を、別のフィールドにコピーする
    • Cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する

Note

source や message フィールドにextractorを適用する場合、cutを選択しても元の情報を削除できません。

  • Extractor title : extractorの設定のタイトルを指定します。

10.3.3. JSON

JSONは、JSON形式のメッセージを分割するためのextratorです。

GraylogのJSON

入力値の説明は次のとおりです。

  • Source field : extractorを適用するフィールドです。
    • Flatten structures :チェックすると入れ子になっているJSONデータを展開しません
  • List item separator : JSONの配列の区切り文字を指定します。
  • Key separator : 入れ子になっているJSONデータのフィールド名の区切り文字を指定します。 Flatten structures のチェックが無い場合に利用されます。
  • Key/Value separator : 入れ子になっているJSONデータを解析した結果の、フィールドと値の区切り文字を指定します。Flatten structures のチェックがある場合に利用されます。

Note

例えば、{"data": {"text": "abc"}}というデータの場合、チェックが無いとdata_textというフィールドにabcが登録されます。チェックをすると、dataフィールドにtest=abcなどのデータが登録されます。

  • Key prefix : JSON オブジェクトから抽出された各キーの先頭に追加するテキストを指定します。
    • Replace whitespaces in Keys : チェックをすると、JSONのキーにスペースが入っている場合に、他の文字に置き換えます。
  • Key whitespace replacement : スペースを置き換える文字を指定します。
    • Try : ボタンをクリックすると、ログ解析のテスト結果を表示します。
  • Condition
    • Always try to extract :常にこのextracterを適用する
    • Only attempt extraction if field contains string :フィールドに特定の文字列が含まれている場合にこのextractorを適用する
    • Only attempt extraction if matches regular expression :フィールドの値と正規表現がマッチする場合にこのextractorを適用する

Note

フィールドの値とマッチングする選択肢の場合、マッチさせる文字列や正規表現を入力するフォームが表示されます。

  • Extraction strategy
    • Copy : パターンにマッチした情報を、別のフィールドにコピーする
    • Cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する

Note

source や message フィールドにextractorを適用する場合、cutを選択しても元の情報を削除できません。

  • Extractor title : extractorの設定のタイトルを指定します。

10.3.4. Regular expression(正規表現)

Regular expressionは、正規表現によってメッセージを分割するためのextratorです。

GraylogのRegularexpression

入力値の説明は次のとおりです。

  • Source field : extractorを適用するフィールドです。
  • Regular expression :正規表現を指定します。
    • Try : ボタンをクリックすると、ログ解析のテスト結果を表示します。
  • Condition
    • Always try to extract :常にこのextracterを適用する
    • Only attempt extraction if field contains string :フィールドに特定の文字列が含まれている場合にこのextractorを適用する
    • Only attempt extraction if matches regular expression :フィールドの値と正規表現がマッチする場合にこのextractorを適用する

Note

フィールドの値とマッチングする選択肢の場合、マッチさせる文字列や正規表現を入力するフォームが表示されます。

  • Store as field : 正規表現にマッチしたデータを登録するフィールド名を指定します。
  • Extraction strategy
    • Copy : パターンにマッチした情報を、別のフィールドにコピーする
    • Cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する

Note

source や message フィールドにextractorを適用する場合、cutを選択しても元の情報を削除できません。

  • Extractor title : extractorの設定のタイトルを指定します。
  • Add Converter : データを変換するコンバータを指定します。

Hint

コンバータについては コンバータ(converter) を参照してください

10.3.5. Replace with regular expression(正規表現による分割と置換)

Replace with regular expressionは、正規表現によってメッセージを分割/置換するためのextratorです。

GraylogのReplacewithregularexpression

入力値の説明は次のとおりです。

  • Source field : extractorを適用するフィールドです。
  • Regular expression : 正規表現を指定します。
  • Replacement : 置換後の文字列を指定します。正規表現でグルーピングした値は$1..などの変数を使って参照できます。
    • Try : ボタンをクリックすると、ログ解析のテスト結果を表示します。
  • Condition
    • Always try to extract :常にこのextracterを適用する
    • Only attempt extraction if field contains string :フィールドに特定の文字列が含まれている場合にこのextractorを適用する
    • Only attempt extraction if matches regular expression :フィールドの値と正規表現がマッチする場合にこのextractorを適用する

Note

フィールドの値とマッチングする選択肢の場合、マッチさせる文字列や正規表現を入力するフォームが表示されます。

  • Store as field : 正規表現にマッチしたデータを登録するフィールド名を指定します。
  • Extraction strategy
    • Copy : パターンにマッチした情報を、別のフィールドにコピーする
    • Cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する

Note

source や message フィールドにextractorを適用する場合、cutを選択しても元の情報を削除できません。

  • Extractor title : extractorの設定のタイトルを指定します。
  • Add Converter : データを変換するコンバータを指定します。

Hint

コンバータについては コンバータ(converter) を参照してください

10.3.6. Split & Index (文字列の分割)

Split & Indexは、特定の区切り文字によって、ログを分割するextractorです。

GraylogのSplitIndex

入力値の説明は次のとおりです。

  • Source field : extractorを適用するフィールドです。
  • Split by : 区切り文字を指定します。
  • Target index : 区切り文字で分割した後、抽出するデータのインデックスを指定します。
    • Try : ボタンをクリックすると、ログ解析のテスト結果を表示します。

Note

[aaa bbb ccc]というデータの場合に、2を指定すると、[aaa bbb]が下記のStore as fieldに指定したフィールドに保存されます。

  • Condition
    • Always try to extract :常にこのextracterを適用する
    • Only attempt extraction if field contains string :フィールドに特定の文字列が含まれている場合にこのextractorを適用する
    • Only attempt extraction if matches regular expression :フィールドの値と正規表現がマッチする場合にこのextractorを適用する

Note

フィールドの値とマッチングする選択肢の場合、マッチさせる文字列や正規表現を入力するフォームが表示されます。

  • Store as field : 正規表現にマッチしたデータを登録するフィールド名を指定します。
  • Extraction strategy
    • Copy : パターンにマッチした情報を、別のフィールドにコピーする
    • Cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する

Note

source や message フィールドにextractorを適用する場合、cutを選択しても元の情報を削除できません。

  • Extractor title : extractorの設定のタイトルを指定します。
  • Add Converter : データを変換するコンバータを指定します。

Hint

コンバータについては コンバータ(converter) を参照してください

10.3.7. Substring (文字数による抽出)

Substringは、文字数によって、ログを抽出するextractorです。

GraylogのSubstr

入力値の説明は次のとおりです。

  • Source field : extractorを適用するフィールドです。
  • Begin index : 抽出する文字の開始位置を指定します。
  • End index : 抽出する文字の開始位置を指定します。
    • Try : ボタンをクリックすると、ログ解析のテスト結果を表示します。

Note

test dataというログの場合、 Begin index を6、 End index を4にした場合、dataという文字列が抽出できます。

  • Condition
    • Always try to extract :常にこのextracterを適用する
    • Only attempt extraction if field contains string :フィールドに特定の文字列が含まれている場合にこのextractorを適用する
    • Only attempt extraction if matches regular expression :フィールドの値と正規表現がマッチする場合にこのextractorを適用する

Note

フィールドの値とマッチングする選択肢の場合、マッチさせる文字列や正規表現を入力するフォームが表示されます。

  • Store as field : 正規表現にマッチしたデータを登録するフィールド名を指定します。
  • Extraction strategy
    • Copy : パターンにマッチした情報を、別のフィールドにコピーする
    • Cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する

Note

source や message フィールドにextractorを適用する場合、cutを選択しても元の情報を削除できません。

  • Extractor title : extractorの設定のタイトルを指定します。
  • Add Converter : データを変換するコンバータを指定します。

Hint

コンバータについては コンバータ(converter) を参照してください

10.3.8. Lookup table

Lookup tableは、登録済みのLookup tableルールによってメッセージを分割するためのextratorです。

GraylogのLookuptable

入力値の説明は次のとおりです。

  • Source field : extractorを適用するフィールドです。
  • Lookup table : Lookup tableを選択します。
    • Try : ボタンをクリックすると、ログ解析のテスト結果を表示します。

Hint

Lookup tableについては 値のマッピングによるログの加工方法(Lookup tableの設定) を参照してください

  • Condition
    • Always try to extract :常にこのextracterを適用する
    • Only attempt extraction if field contains string :フィールドに特定の文字列が含まれている場合にこのextractorを適用する
    • Only attempt extraction if matches regular expression :フィールドの値と正規表現がマッチする場合にこのextractorを適用する

Note

フィールドの値とマッチングする選択肢の場合、マッチさせる文字列や正規表現を入力するフォームが表示されます。

  • Store as field : 正規表現にマッチしたデータを登録するフィールド名を指定します。
  • Extraction strategy
    • Copy : パターンにマッチした情報を、別のフィールドにコピーする
    • Cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する

Note

source や message フィールドにextractorを適用する場合、cutを選択しても元の情報を削除できません。

  • Extractor title : extractorの設定のタイトルを指定します。
  • Add Converter : データを変換するコンバータを指定します。

Hint

コンバータについては コンバータ(converter) を参照してください

10.4. コンバータ(converter)

コンバータは、extractorによって分解されたデータを、さらに加工するための機能です。 以下のコンバータを利用することができます。

  • Numeric : 値を数値に変換します
  • Date : 値を下記のオプションに従って、任意の日付フォーマットに変換します。
    • Format string : 日付のフォーマットを指定します。
    • Time Zone : タイムゾーンを選択します。
    • Locale : ロケールを選択します。
  • Hash : 値をMD5ハッシュに変換します。
  • Split & Count : 任意の値でデータを分割した数に変換します。
  • Anonymize IPv4 addresses : IPv4アドレスの最後のオクテットを隠します。
  • Syslog Level from PRI : SyslogプロトコルのPRI部をsyslogレベルに変換します。
  • Syslog Facility from PRI : SyslogプロトコルのPRI部をsyslog facilityに変換します。
  • Key = Value Pairs to Field : キー = 値のペアをフィールドに登録します。
  • CSV to fields : CSV形式のデータをフィールドに登録します。
    • Field names : field1, field2のようにCSVのカラムと対応するフィールド名を指定します。
    • Separator character : 区切り文字を指定します。
    • Quote character : 囲い文字を指定します。
    • Escape character : エスケープ文字を指定ます。
  • Lowercase : 値を小文字に変換します。
  • Uppercase : 値を大文字に変換します。
  • Flexible Date : 設定したタイムゾーンに合うよう、柔軟に日付フォーマットを変換します
  • Lookup Table : Lookup tableで値を変換します。

Hint

Lookup tableについては 値のマッピングによるログの加工方法(Lookup tableの設定) を参照してください

一覧へ