オープンソース

一覧へ

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

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

11.1. extractorとは

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

_images/extract.png

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

11.2. extractor設定画面への遷移

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

11.2.1. 検索画面から

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

_images/extract_search.png

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

_images/extract_search2.png

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

_images/extract_search3.png

Hint

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

11.2.2. Input設定画面から

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

_images/input1.png

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

_images/extracter.png

さらに、 Get started をクリックし、 Load Message をクリックすると、最近のログを読み込むことができます。 読み込んだログの分割したいフィールド右側にある Select extractor type からExtractor の種類を選択して、設定画面に遷移します。

_images/extracter2.png

Hint

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

11.3. extractorの種類

11.3.1. Copy input

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

_images/extract_copy.png

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

  • 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
    • コピーしたデータを保存するフィールド名を指定します
  • Extractor title
    • extractorの設定のタイトルを指定します
  • Add Converter
    • データを変換するコンバータを指定します

Hint

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

11.3.2. Grok pattern

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

_images/extract_grok.png

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

  • 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の設定のタイトルを指定します

11.3.3. JSON

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

_images/extract_json.png

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

  • 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などのデータが登録されます。

  • 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
    • cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する
    • copy : パターンにマッチした情報を、別のフィールドにコピーする

Note

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

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

11.3.4. Regular expression(正規表現)

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

_images/extract_regex.png

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

  • 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
    • cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する
    • copy : パターンにマッチした情報を、別のフィールドにコピーする

Note

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

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

Hint

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

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

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

_images/extract_regexr.png

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

  • 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
    • cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する
    • copy : パターンにマッチした情報を、別のフィールドにコピーする

Note

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

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

Hint

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

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

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

_images/extract_split.png

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

  • Source field : extractorを適用するフィールドです。
  • split by : 区切り文字を指定します。
  • Target index : 区切り文字で分割した後、抽出するデータのインデックスを指定します。

Note

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

  • 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
    • cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する
    • copy : パターンにマッチした情報を、別のフィールドにコピーする

Note

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

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

Hint

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

11.3.7. Substr (文字数による抽出)

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

_images/extract_substr.png

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

  • Source field : extractorを適用するフィールドです。
  • Begin index : 抽出する文字の開始位置を指定します。
  • End index : 抽出する文字の開始位置を指定します。

Note

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

  • 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
    • cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する
    • copy : パターンにマッチした情報を、別のフィールドにコピーする

Note

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

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

Hint

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

11.3.8. Lookup table

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

_images/extract_lookup.png

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

  • Source field : extractorを適用するフィールドです。
  • Lookup table : Lookup tableを選択します。

Hint

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

  • 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
    • cut : パターンにマッチした情報を、元のフィールドから削除して別のフィールドに移動する
    • copy : パターンにマッチした情報を、別のフィールドにコピーする

Note

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

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

Hint

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

11.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 : 値を大文字に変換します。
  • Flexibly parse date : 設定したタイムゾーンに合うよう、柔軟に日付フォーマットを変換します
  • Lookup table : Lookup tableで値を変換します。

Hint

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

一覧へ