SplunkでCSVベースのLookup Tableを使ってみる

これはなに?

Splunkでログ分析した際に、ログの出力結果と外部にある情報を結合したいことがあり、Lookup Tableがめちゃくちゃ便利だったので、設定方法を備忘録として記載します。

Lookup Tableとは

Splunkの検索結果と結合するためのテーブル。イメージとしては、マスターテーブルのようなものです。 ログに含まれている商品IDを、別で管理している商品マスタと結合して、商品名を取ってくるようなことができます。

Lookup TableはCSVによるファイルベースによるものだけでなくて、RDBやKVストアなども利用することができます。

今回やること

以前SplunkにAWSのコスト情報を取り込んだので、Nameタグの情報とLookup Table上に作成した管理情報を結合しようと思います。

f:id:ykoomaru:20210211202358p:plain

↑ がNameタグの一覧です。NameとLookup Tableを結合して追加の情報(部署、管理者名、連絡先)を表示できるようにします。

Lookup Table作成&結合

Lookup Tableの作成し、ログとの結合までやってみます。 大まかな手順としては、以下となります。

  1. Lookup Table用 CSVファイル作成
  2. CSVをLookupTableに登録
  3. 検索結果とLookup Tableを結合

1. Lookup Table用 CSVファイル作成

以下のようなCSVを作成します。
先頭行がヘッダーとなります。

f:id:ykoomaru:20210211203125p:plain

2. CSVをLookupTableに登録

1.で作成したCSVをLookupTableに登録します。

① Splunk にログインし、[設定- ルックアップ - ルックアップテーブルファイル - 新しいルックアップテーブルファイル] をクリック
② 以下の情報を入力し、[保存] をクリック

項目
宛先App search
ルックアップファイルをアップロード 1.で作成したCSV
宛先ファイル名 <任意> .csv

f:id:ykoomaru:20210211214706p:plain

③[設定- ルックアップ - ルックアップ定義 - 新しいルックアップ定義] をクリック
④ 以下の情報を入力し、[保存] をクリック

項目
宛先App search
Name 任意 ※
タイプ ファイルベース
ルックアップファイル ②で登録した <任意> .csv

※ SearchからLookup Tableを呼び出す際のテーブル名になります。

f:id:ykoomaru:20210211204823p:plain

⑤ Searchを開き、Lookup Tableが正常に登録されているか確認

<書式>
|inputlookup <Lookup Table名>

f:id:ykoomaru:20210211203546p:plain

Lookup Tableが作成されたことを確認できました。

3. 検索結果とLookup Tableを結合

最後にホスト名をキーにして、ログの出力結果とLookupTableを結合します。

lookup コマンドを使って外部テーブルとログを結合します。
lookup - Splunk Documentation

<書式>
| lookup <Lookup Table名> <キー名> OUTPUT <出力したい項目> ... 
<例>
| lookup server_info HostName OUTPUT Dept Administrator Contact

結合前 f:id:ykoomaru:20210211210219p:plain

結合後 f:id:ykoomaru:20210211215856p:plain

Lookup Tableと結合することで、部署、管理者名、連絡先の情報を追加で表示することができるようになりました。

www.cloudnotes.tech