LoginSignup
2

More than 1 year has passed since last update.

SplunkのデータをPower BIで

Last updated at Posted at 2020-12-08

はじめに

@maroon さんのQiita Excel から Splunkデータにアクセスするには? - Qiitaを参考に、SplunkとPower BIを接続して可視化してみました。

利用環境等

 以下の内容は、Splunk Enterprise無料版をPCにインストールして実行したものです。有料版のSplunkでも同様のことができます。
Splunk ODBC Driverは、Splunk ODBC | Splunkbaseより、Windows 64bit版をダウンロードしてインストールします。

サンプルログの準備

Splunkにログイン後、Splunk自体のログをサンプルとするため、サーチで

index="_internal" 

とし、右上から「テーブルビューの作成」とします。
image.png

Power BIから接続して見せる項目を決定します。最終的に私は以下のようにしました。
保存したテーブルビューは上部メニューの「データセット」から呼び出せます。

image.png

Power BI DesktopkからSplunkのテーブルに接続

データを取得でODBCに接続します。
image.png

「ODBCからインポート」で「Splunk」を指定します。
image.png

ナビゲーターで対象のテーブルを特定し、([読み込み]ではなく)[データの変換]を選択し、Power Query エディターを立ち上げます。
各項目のnull値等の部分を除くクリーニングを行います。
image.png

カレンダーテーブルの作成

 計算テーブル「カレンダー」を新しいテーブルとして作成します。

カレンダーテーブル
カレンダー =  // テーブル名は「カレンダー」
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のテーブルと紐付け等を行います。

image.png

Power BIで可視化する

 あとはいつも通りの可視化です。例として以下のようなビジュアルを作成しました。

image.png

可視化したビジュアルをWebで共有することもできます。

image.png

おわりに

 SIEMの代表格であるSplunkの非構造データを、構造データ等を扱うBIの代表格であるPower BIで可視化するのは便利です。
 SPL疲れしたとき(私?w)で代表的なフィールドで概要をつかむ、ちょっと別方法で可視化をしたい、というときにはPower BIで見るとよいかなぁと考えています。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2