はじめに
@maroon さんのQiita Excel から Splunkデータにアクセスするには? - Qiitaを参考に、SplunkとPower BIを接続して可視化してみました。
利用環境等
以下の内容は、Splunk Enterprise無料版をPCにインストールして実行したものです。有料版のSplunkでも同様のことができます。
Splunk ODBC Driverは、Splunk ODBC | Splunkbaseより、Windows 64bit版をダウンロードしてインストールします。
サンプルログの準備
Splunkにログイン後、Splunk自体のログをサンプルとするため、サーチで
index="_internal"
Power BIから接続して見せる項目を決定します。最終的に私は以下のようにしました。
保存したテーブルビューは上部メニューの「データセット」から呼び出せます。
Power BI DesktopkからSplunkのテーブルに接続
ナビゲーターで対象のテーブルを特定し、([読み込み]ではなく)[データの変換]を選択し、Power Query エディターを立ち上げます。
各項目のnull値等の部分を除くクリーニングを行います。
カレンダーテーブルの作成
計算テーブル「カレンダー」を新しいテーブルとして作成します。
カレンダー = // テーブル名は「カレンダー」
var BaseCalendar = CALENDARAUTO()
RETURN
GENERATE(
BaseCalendar,
var BaseDate = [Date]
var YearNumber = YEAR(BaseDate)
var MonthNumber = MONTH(BaseDate)
var DateNumber = DAY(BaseDate)
var DayNumber = WEEKDAY(BaseDate, 1)
RETURN ROW(
"年_番号", YearNumber,
"年", FORMAT(BaseDate, "yyyy年"),
"月_番号", MonthNumber,
"月", FORMAT(BaseDate, "mm月"),
"年月_番号", FORMAT(BaseDate, "yyyymm"),
"年月", FORMAT(BaseDate, "yyyy年mm月"),
"日_番号", DateNumber,
"日", FORMAT(BaseDate, "dd日"),
"曜日_番号", DayNumber,
"曜日", SWITCH(DayNumber, 1, "日", 2, "月", 3, "火", 4, "水", 5, "木", 6, "金", 7, "土",""),
"相対月数", DATEDIFF(TODAY(), BaseDate, MONTH)
)
)
フィールドの表記を整えたりし、列で並べ替えを指定したり、日付テーブルとしてマークします。
モデリングビューで、Splunkのテーブルと紐付け等を行います。
Power BIで可視化する
あとはいつも通りの可視化です。例として以下のようなビジュアルを作成しました。
可視化したビジュアルをWebで共有することもできます。
おわりに
SIEMの代表格であるSplunkの非構造データを、構造データ等を扱うBIの代表格であるPower BIで可視化するのは便利です。
SPL疲れしたとき(私?w)で代表的なフィールドで概要をつかむ、ちょっと別方法で可視化をしたい、というときにはPower BIで見るとよいかなぁと考えています。