はじめに
Splunkにたまったデータを、普段使い慣れた Excelで使ってみたいと思ったことありませんか? データをSplunkから csvなどで Exportして、Excelに取り込む方法もありますが、今回は Excelから直接 Splunkにアクセスしてデータを取得してみたいと思います。
仕組み
Splunk ODBC Driver を Windows PCにインストールすることで、ODBCドライバを利用してSplunkにアクセスして、データを取得します。
取得できるデータは、saved search. つまりレポートとして保存されたデータもしくは Data Modelを指定して取得できます。
注意点としては、現在はODBC Driverが Windows版のみリリースされており、MACでは残念ながら利用できません。 (2020/9時点)
Updateがあり、ExcelとTableau に関しては、Mac版もリリースされました (2020/11時点)
同じ仕組みを使って、Excel以外にも、Tableau や PowerBIからもSplunkにアクセスできるようになります。
設定方法
1. Splunk ODBC インストール
まずは、こちらから Splunk ODBCをダウンロードしてお手元のWindowsPCにインストールしてください。(Splunkサーバではないです)
https://splunkbase.splunk.com/app/1606/
ダウンロードすると、32bit版(x86)と64bit版(x64)の2つのファイルがあるので、環境に合わせて適切なファイルをインストールします。
途中以下のように、Splunkサーバーと、ユーザ名/パスワードを設定する画面が表示されますが、こちらに接続するSplunkサーバ情報を入力します。こちらの情報は後から変更することも可能です。
2. ExcelからODBC接続の設定をする
Excelの [Data]タブ -> [Get Data] -> [From Other Sources] -> [From ODBC] を選択します。
ODBCの選択メニューから、先ほど設定した [Splunk ODBC]を選択します。
(うまく表示されない場合は、32bit/64bitの選択が間違っている可能性があります)
3. Splunk レポート (saved search)から対象のレポートを選択する。
正常に Splunkサーバに接続できると、以下のように Splunkレポート一覧が確認できます。Excelから利用するには、直接queryを投げるのではなく、このように予めExcelからアクセスできるデータをレポートとして保存しておく必要があります。
ちなみに、Splunkからレポート一覧を確認するには、「設定」ー「サーチ、レポート、アラート」を選択すると表示できます。
test11 というレポートをSplunkで開くとこんな感じです。
選択して、[Load]ボタンをクリックすると、しばらくすると Excel上でレポート結果がロードされて、Excel上で加工ができるようになります。
番外編
###Proxy設定
ExcelからSplunkには 8089ポートを利用します。そのため社内からアクセスしようとすると接続エラーになるかもしれません。
その場合はProxy設定をする必要があります。
https://docs.splunk.com/Documentation/ODBC/3.0.1/UseODBC/ProxyServerConfiguration
###ODBC設定変更またはSplunkサーバの追加
ODBC Install時に設定した Splunkサーバの情報を変更もしくはSplunkサーバを追加したい場合は、以下の方法でできます。
https://docs.splunk.com/Documentation/ODBC/3.0.1/UseODBC/Configuration
ただし、私の環境では32bit Driverの設定変更ができませんでした。そのためサーバ情報の変更をする場合はdriverの uninstallして再インストールしました。(たまたまかもしれませんが)
Data Model へのアクセス
先ほどはSplunkサーバのレポート情報 (saved search) のデータをロードしましたが、Splunkで作成したData Modelにもアクセスすることができます。
https://docs.splunk.com/Documentation/ODBC/3.0.1/UseODBC/HowtotakeadvantageofdatamodelsupportintheSplunkODBCDriver
さいごに
如何だったでしょうか? 様々な非構造化データをSplunkで収集して、社内レポートなど作成したい場合にこのような方法でデータをロードして見た目を整形する。
など、利用シーンは結構あると思います。是非お試しあれ