Splunk: CSVファイルをルックアップとして登録し検索条件として使用する


たびたび必要となるのでメモ。

実施環境: Splunk Free 8.2.2

ルックアップは一般的には既存のデータに情報を追加するために使用しますが、本体がリストデータであることから、検索条件としても使用できます。
例えば、以下のような2つの条件を OR でつないで検索を行いたいとします。

  • STR が AAA かつ NUM が 1 であるもの
  • STR が BBB かつ NUM が 2 であるもの

まずは、以下のような CSV ファイルを準備します。

STR NUM
AAA 1
BBB 2

用意した CSV ファイルをルックアップテーブルファイルとして登録します。
登録したルックアップテーブルファイルは、以下のように inputlookup コマンドと format コマンドを組み合わせて使用します。
条件によっては、 format コマンドの代わりに return コマンドを使用することも可能です。

Splunk
| makeresults count=10
| streamstats count AS CNT
| eval NUM = CNT % 3
| eval STR = if(CNT % 2 = 1, "AAA", "BBB")
| where
    [
      | inputlookup "testsearch.csv" 
      | format
    ]

ここでは where コマンドの引数として指定しましたが、先頭の search コマンドの引数として利用することも可能ですし、サブサーチ内で加工すれば複雑な条件を処理することもできます。

また、 Splunk のアドオンである Lookup Editor と合わせると、検索条件を簡単に変更できるようになるため便利です。