Splunk CSV Lookup Tableを使ったログのフィルタリング(ルックアップ活用編)
SplunkでCSV Lookup Tableを使いログのフィルタリング(ブラックリスト/ホワイトリスト)をするためのルックアップの使い方をご紹介します。
前回の続きです。
lookupコマンド
以下はlookupコマンドの使用例です。
...| lookup <ルックアップテーブル名> <ルックアップフィールド名1> AS <イベントフィールド名1>, <ルックアップフィールド名2> AS <イベントフィールド名2> [OUTPUT|OUTPUTNEW] <ルックアップフィールド名3> AS <イベントフィールド名3>, <ルックアップフィールド名4> AS <イベントフィールド名4>
第一引数はルックアップテーブル名です。
OUTPUT/OUTPUTNEWの前に検索したいフィールド名、
OUTPUT/OUTPUTNEWの後にルックアップテーブルから参照したいカラム名を指定します。
具体的にはこのように使います。
lookupコマンドでlistを参照し、ルックアップのdomainカラムとイベントのdomainフィールドがマッチするか検索します。
マッチした場合、OUTPUTの後ろに記載した「listcategory details」カラムがフィールドとして出力されます。
index=squid | lookup list domain OUTPUT listcategory details | search listcategory=* | stats values(domain) values(details) by listcategory
ルックアップテーブル内のカラム名とイベントフィールド名が同一であればASを使用する必要はありません。
OUTPUT/OUTPUTNEWの違い
OUTPUTは後ろに指定したフィールドが存在していた場合に値を上書きします。
OUTPUTNEWは後ろに指定したフィールドが存在していた場合に値を上書きしません。
使用例
ルックアップテーブルとのデータマッチングができれば、
後はsearchコマンドでフィルタをするだけです。
ブラックリスト
この送信元がブラックリストのドメインにアクセスしてるのか。
といった使い方。
ホワイトリスト
全てのログを見るのは量が多くて大変なので、このドメインは除外する。
といった使い方。