雲のメモ帳

猫とクラウドと旅行が好きなインフラエンジニアです。 日々の調べたことや興味が持ったことをこのブログにアウトプットします。

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