3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Splunk: ルックアップについてのあれこれ

Posted at

よく使用するのでメモ。

実施環境: Splunk Free 8.2.2
ルックアップの概要

Splunk には、ルックアップという機能が存在します。
ルックアップに登録した内容は単なるデータとしても使用できますが、一般的には「特定のキーから一意な値を抽出する」ために使用します。

といわれてもよくわからないので、1つ例をあげて見ます。
例えば、 EC サイトの購入履歴について以下のようなデータがあるとします。

日付 ユーザID 商品ID
1/7 u001 A001

この商品 ID に対し、商品の価格や種別を一意に特定するデータが存在するとします。

商品ID 商品価格 商品種別
A001 3000 B01

このデータをルックアップとして登録、参照することで、価格や種別のデータが付与できます。

日付 ユーザID 商品ID 商品価格 商品種別
1/7 u001 A001 3000 B01

ユーザ ID に対しても同様にすると、年齢や性別といったデータを付与できます。

日付 ユーザID 年齢 性別 商品ID 商品価格 商品種別
1/7 u001 20 M A001 3000 B01

このデータを集計すれば、年齢ごとにどの種別の商品が売れているか、といった統計を取得することができます。

年齢 商品種別
20 B01
ルックアップテーブルファイルの登録

試しに、以下のような CSV ファイルをルックアップテーブルファイルとして登録してみます。

スクリーンショット 2022-01-25 20.35.53.png

まずは、「設定」→「ルックアップ」を選択します。

スクリーンショット 2022-01-30 20.14.42.png

次に、「ルックアップテーブルファイル」を選択します。

スクリーンショット 2022-01-30 20.15.07.png

ルックアップファイルテーブルの一覧が表示されるので、「新しいルックアップテーブルファイル」を選択します。

スクリーンショット 2022-01-30 20.15.31.png

ルックアップテーブルファイルの追加画面に移動するので、ルックアップテーブルファイルを使用する App 名(今回は search )と Splunk 上でのルックアップテーブルファイル名を指定し、 CSV ファイルをアップロードして「保存」を押します。

スクリーンショット 2022-01-30 20.17.24.png

これで、 CSV ファイルをルックアップテーブルファイルとして登録できました。

スクリーンショット 2022-01-30 20.17.37.png

この時点で、アップロードしたルックアップテーブルファイルはルックアップとして使用できます。

ルックアップテーブルファイルを使用する

登録したルックアップテーブルファイルを実際に使用してみましょう。
ルックアップテーブルファイルをルックアップとして使用するには lookup コマンドを使用します。
引数は以下のように指定します。

lookup <ルックアップテーブルファイル名> <項目名A1> AS <項目名B1>, <項目名A2> AS <項目名B2>, ... OUTPUT <項目名C1> AS <項目名D1>, <項目名C2> AS <項目名D2>, ...

各項目名は、

  • 項目名A : キーとして使用する項目の、ルックアップテーブルファイル上でのフィールド名
  • 項目名B : キーとして使用する項目の、現在のサーチ上でのフィールド名
  • 項目名C : 抽出する項目の、ルックアップテーブルファイル上でのフィールド名
  • 項目名D : 抽出する項目の、現在のサーチ上でのフィールド名

となります。
キーの値がルックアップテーブルファイル上に存在しない場合、抽出される値は NULL となります。

Splunk
| makeresults count=3
| streamstats count AS CNT
| eval TEST_ID = "A0" + CNT
| lookup "test_lookup.csv" ID AS TEST_ID OUTPUT VALUE AS TEST_VALUE

スクリーンショット 2022-01-30 20.19.05.png

ルックアップテーブルファイルをそのまま参照する

inputlookup コマンドを使用すれば、ルックアップテーブルファイルのデータをそのまま参照できます。
ルックアップテーブルファイルを通常のデータとして使用する際などに便利です。

Splunk
| inputlookup "test_lookup.csv"

スクリーンショット 2022-01-30 20.19.28.png

自動的なルックアップの適用

登録したルックアップテーブルファイルをきちんとルックアップとして定義すると、ルックアップ適用を自動でさせることもできます。
適用の有無はログのソースタイプ名やホスト名を基準としますので、先の CSV ファイルとは別のファイルを使用して試してみましょう。

まずは、以下のような CSV ファイルを先ほどと同様、ルックアップテーブルファイルとして登録してみます。

スクリーンショット 2022-01-30 20.31.18.png

先ほど「ルックアップテーブルファイル」を選択した画面で、今度は「ルックアップ定義」を選択します。

スクリーンショット 2022-01-30 20.15.07 2.png

ルックアップ定義の一覧が開くので、「新しいルックアップ定義」を選択します。

スクリーンショット 2022-01-30 20.21.01.png

ルックアップ定義の追加画面に移動するので、まずはルックアップを使用する App 名(今回は search )と Splunk 上でのルックアップ定義名を指定します。
今回はルックアップテーブルファイルを使用するので、タイプを「ファイルベース」にした後、対象のルックアップテーブルファイルを選択して「保存」を押します。

スクリーンショット 2022-01-30 20.32.56.png

これで、ルックアップを定義できました。

スクリーンショット 2022-01-30 20.33.05.png

さて、いよいよ自動適用の設定をしていきます。
またまた先ほどの画面に戻り、「自動ルックアップ」を選択します。

スクリーンショット 2022-01-30 20.15.07 3.png

自動ルックアップの一覧が表示されるので、「新しい自動ルックアップ」を選択します。

スクリーンショット 2022-01-30 20.22.29.png

自動ルックアップの追加画面に移動するので、まずはルックアップを使用する App 名(今回は search )と Splunk 上での自動ルックアップ名を指定します。
次に自動ルックアップを使用するログの条件を指定します。
今回は「ソースタイプがsplunkd」であるログを対象としました。
そして、先ほど作成したルックアップ定義を指定し、キーとなる項目を入力フィールドに、抽出する項目を出力フィールドに指定します。
=の前が「ルックアップ上でのフィールド名」、=の後ろが「ログ上でのフィールド名」となるように注意してください。
最後に「保存」を押して完了です。

スクリーンショット 2022-01-30 20.36.37.png

これで、自動ルックアップを設定できました。

スクリーンショット 2022-01-30 20.36.51.png

試しに以下の SPL を実行すると、ルックアップが自動的に適用されていることがわかります。

Splunk
index="_internal" sourcetype="splunkd"
| table log_level, log_level_num

スクリーンショット 2022-01-30 20.37.44.png

Lookup File Editor

以上のようにすればルックアップを登録できますが、もっと手軽にルックアップの作成をしたい場合もあるかと思います。
そのような時に便利な App として、 Lookup File Editor を紹介しておきます。

スクリーンショット 2022-01-30 20.40.31.png

細かい説明は省きますが、この App を使用すると、以下のように GUI 上で CSV の作成・編集ができます。

スクリーンショット 2022-02-06 17.08.32.png

なお、この App でのルックアップの登録は上記の「ルックアップテーブルファイルの登録」と同等の扱いとなります。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?