オープンソース

一覧へ

12. 値のマッピングによるログの加工方法(Lookup tableの設定)

12.1. Lookup tableとは

Lookup tableとは、特定の値をキーにして別の値を検索・マッピングするための機能です。 最も簡単な例として、CSVファイルでのマッピングが挙げられます。 例えばログの情報に192.168.1.10が存在した場合、以下のCSVを検索して、host01.example.comをホスト名のフィールドに登録することができます。

ipaddr,hostname
192.168.1.10,host01.example.com
192.168.1.11,host02.example.com
192.168.1.12,host03.example.com

12.2. コンポーネント

Lookup tableは、4つのコンポーネントで構成されています。

  • データアダプタ
  • キャッシュ
  • ルックアップテーブル
  • 検索結果

12.2.1. データアダプタ

データアダプタは、値の検索を行なうためのコンポーネントです。データアダプタには、CSVファイルから情報を検索するものや、HTTP経由でCSVを取得して情報を検索するものなどが存在しています。データアダプタは、プラグインで追加が可能です。

12.2.2. キャッシュ

キャッシュは、検索のパフォーマンスを上げたり、データベースやAPIの過負荷を回避するためのコンポーネントです。 データアダプタとは別にキャッシュの設定が可能であるため、Lookup tableの設定毎にどの程度のデータをキャッシュするかを決めることができます。

Note

CSVファイルアダプタは、ファイル全体をメモリに読み込み、ファイルが変更された場合に内容を更新します。キャッシュが削除された後、CSVファイルの再読み込みが行われてるまでの間、期限切れの値を返すことがあります。

12.2.3. Lookup table

データアダプタ・キャッシュのセットがLookup tableです。Lookup table自体は、converter, decoraterなどの機能から使用できます。

12.2.4. 検索結果

Lookup tableによって返される検索結果は、シングル・マルチの2つの種類に分けられます。 シングルの場合、値は文字列や数値・ブール値などです。 マルチの場合、値はJSONのようなデータ構造です。

この2つの値の良い例として、Geolocationプラグインの機能を利用してIPアドレスの情報を検索した時の結果があります。

以下は、IPアドレス「211.5.215.228」の国情報をLookup tableのテスト機能で調べた結果の一部です。

GraylogのLookup例

single_value には国コード「JP」のみが入っています。対して multi_value には、様々な情報が登録されていることがわかります。

12.3. Lookup tableの設定

Lookup tableの設定は、次の流れで行ないます。

  1. データアダプタの作成
  2. キャッシュの作成
  3. Lookup tableの作成

Lookup tableの管理画面には、メニューの Lookup tables のリンクから遷移します。

GraylogのLookupTables設定画面遷移

Lookup tableを作成する前に、データアダプタとキャッシュをそれぞれ作成する必要があります。

12.3.1. Data Adapters(データアダプタ)の設定

Lookup tableの管理画面の右上 Data Adapters のリンクからデータアダプタの管理画面に遷移します。 この画面から新しいデータアダプタの作成や、データアダプタの設定変更・削除を行なうことができます。

GraylogのLookupTables設定

Create data adapter からデータアダプタの作成画面に遷移します。

ここでは、 データアダプタのタイプとして、CSV File を選択した場合の解説を行ないます。

Note

類似のデータアダプタとして、DSV File from HTTPが存在します。このデータアダプタは、HTTP経由、つまりURLからCSVを取得する以外は、CSV Fileデータアダプタと同じ動きをします。

GraylogのLookupTables設定

入力値の説明は以下の通りです。

  • Title : データアダプタの名前です。
  • Description : データアダプタの説明です。
  • Name : データアダプタと紐づくユニークなIDです。
  • Custom Error TTL : エラーをキャッシュする時間です。デフォルトは5秒です。
  • File path : CSVファイルのパスです。Graylogの実行ユーザで参照できる必要があります。
  • Check interval : CSVファイルを再読み込みする間隔(秒)です。
  • Separator : CSVファイルの区切り文字です。
  • Quote character : データの囲い文字です。
  • Key column : 検索を行なうカラムのヘッダ名を指定します。
  • Value column : 検索結果となるカラムのヘッダを指定します。

Note

CSVファイルの一行目は、画像のExample1やExample2のように、ヘッダ情報になっている必要があります。 またCSVファイルの文字コードはUTF-8である必要があります。 Graylogを複数のノードで実行している場合、全てのノードでCSVファイルが参照できる必要があります。

12.3.2. Caches(キャッシュ)の設定

キャッシュの設定には、Lookup tableの管理画面の右上 Caches のリンクから遷移することができます。

GraylogのCaches設定

Create cache から、キャッシュの作成画面に遷移します。

デフォルトの状態では、以下の2つのキャッシュタイプを選択することができます。

  • Do not cache values : キャッシュをしないためのキャッシュタイプ
  • Node-local, in-memory cache : Graylogノードのメモリにキャッシュするタイプ

ここでは Node-local, in-memory cache を選択した場合の例を解説します。

GraylogのCaches設定

入力値は以下の通りです。

  • Title : キャッシュの名前です。
  • Description : キャッシュの説明です。
  • Name : キャッシュと紐づくユニークなIDです。
  • Maximum entries : キャッシュエントリの最大数を指定します。
  • Expire after access : アクセスがあってからキャッシュを削除するまでの期間を指定します
  • Expire after write : キャッシュが作成されてからを削除するまでの期間を指定します

12.3.3. Lookup Tablesの設定

Lookup tableの管理画面から、新しいLookup tableを作成します。

GraylogのLookupTable新規作成

Create lookup table から、Lookup tableの作成画面に遷移します。

GraylogのLookupTable新規作成

入力値は以下の通りです。

  • Title : Lookup tableの名前です。
  • Description : Lookup tableの説明です。
  • Name : Lookup tableと紐づくユニークなIDです。
  • Enable single default value : チェックするとシングルのデフォルト値を設定できます。
  • Enable multi default value : チェックするとマルチのデフォルト値を設定できます。
  • Data Adapter : データアダプタを選択します。
  • Cache : キャッシュを選択します。

12.3.4. Lookup Tablesの確認

Lookup table作成後、管理画面に表示されているタイトルのリンクから、Lookup tableのテスト画面に遷移できます。

Lookup tableのタイトルをクリックします。

GraylogのLookupTable管理画面

テスト画面が表示されます。

GraylogのLookupTableテスト画面

この画面の Key に値を入れて Look up ボタンを押すことで、値の検索の確認を行なうことができます。

一覧へ