はじめてのSplunk ― 概要から応用までを体系的に学ぶ

5-5 ダッシュボードの作成

前節では、Buttercup GamesのアクセスログをいろいろなSPLで分析しました。 しかし、そのつどSPLを打ち込むのは大変です。 よく見る集計はダッシュボードにまとめておき、 開くだけで最新の状況が分かるようにしておきましょう。 この節では、5-4で作ったサーチをパネルとして並べ、 対話的に絞り込める1枚のダッシュボードに仕上げていきます。

1. サーチをパネルとして保存する

まずは、5-4で作った売上ランキングのサーチをダッシュボードのパネルにします。 手順は次のとおりです。

  1. サーチバーに5-4のSPL(例: lookupで売上を集計するサーチ)を入力して実行する。
  2. 結果画面の右上にある「名前を付けて保存(Save As)」をクリックし、 メニューから「ダッシュボードパネル(Dashboard Panel)」を選ぶ。
  3. 「新規(New)」を選んでダッシュボード名(例: 「Buttercup Games 分析」)を入力する。
  4. パネルのタイトル(例: 「売上ランキング」)を入力し、 表示形式を統計テーブルや棒グラフなど見せたい形に選ぶ。
  5. 「Save(保存)」を押すと、パネル入りの新しいダッシュボードが作成される。

ダッシュボードは複数のパネルを並べた1枚の画面で、1つのパネルが1つのサーチ結果(表やグラフ)に対応します。 まずは1枚の土台を作り、そこにパネルを足していくイメージです。

2. 複数のパネルを追加する

土台ができたら、他の集計も同じダッシュボードに追加していきます。 2枚目以降は、保存時に「新規」ではなく「既存(Existing)」を選び、 さきほど作ったダッシュボードを指定します。

  1. 別のサーチ(例: timechartによるアクセス推移)を実行する。
  2. 「名前を付けて保存 > ダッシュボードパネル」を開き、「既存」から対象のダッシュボードを選ぶ。
  3. パネルのタイトルと表示形式(折れ線グラフなど)を決めて保存する。

この要領で、たとえば次のようなパネルを並べると、状況をひと目で把握できます。

パネル もとにするサーチ 表示形式
総アクセス数 stats count 単一値(統計値)
アクセス推移 timechart span=1h count 折れ線グラフ
カテゴリ別件数 stats count by categoryId 棒グラフ
売上ランキング lookupで売上を集計 統計テーブル

パネルの配置は、ダッシュボードの編集(Edit)画面でドラッグして 自由に並べ替えたり、大きさを変えたりできます。

3. 入力を付けて対話的に絞り込む

固定のサーチだけでは、毎回同じ結果しか見られません。 入力(Input)を付けると、閲覧者が画面上で条件を選んで 表示を切り替えられるようになります。よく使うのは次の2つです。

  1. ダッシュボードを編集モードにし、上部の「入力を追加(Add Input)」を開く。
  2. 時間ピッカー(Time)を追加すると、対象期間を画面上で切り替えられる。
  3. ドロップダウン(Dropdown)を追加し、たとえば商品カテゴリを選べるようにする。
  4. 追加した入力にトークン名(例: cat)を付ける。
  5. 各パネルのサーチを編集し、トークンを埋め込んで絞り込みに使う。

たとえばカテゴリ用のドロップダウンにトークンcatを設定したら、 パネルのサーチを次のように書き換えます。

SPL ― 入力のトークンで絞り込む
index=main sourcetype=access_combined_wcookie categoryId=$cat$
        | timechart span=1h count

$cat$の部分に、ドロップダウンで選んだ値が差し込まれます。 これで、閲覧者がカテゴリを選ぶだけでグラフが切り替わる、対話的な画面になります。

トークンを使うパネルは、入力で値が選ばれるまで結果が出ないことがあります。 ドロップダウンに「すべて」に相当する選択肢(例: *)を用意しておくと、初期表示でつまずきません。

4. 権限を設定して共有する

作ったダッシュボードは、はじめは作成者だけが見られる状態です。 チームで使うには権限を設定して共有します。

  1. ダッシュボード一覧、または編集画面から「権限(Permissions)」を開く。
  2. 表示範囲を「このアプリのみ(App)」または「すべてのアプリ(Global)」に変更する。
  3. ロールごとにRead(閲覧)/ Write(編集)の権限を割り当てる。
  4. 保存すると、指定した範囲のユーザーがダッシュボードを開けるようになる。

共有範囲と編集権限は分けて考えます。多くの人に見せたいが勝手に書き換えられたくない場合は、 Readは広く、Writeは限られたロールだけに与えるのがおすすめです。

5. まとめ

  • サーチは「名前を付けて保存 > ダッシュボードパネル」でパネルとして保存できる
  • 2枚目以降は「既存」を選んで同じダッシュボードにパネルを足していく
  • 統計値・折れ線・棒グラフなど、複数のパネルを1枚に並べて状況を可視化する
  • 時間ピッカーやドロップダウンなどの入力とトークン($名前$)で対話的に絞り込める
  • 権限を設定すれば、ロールごとに閲覧・編集を分けてチームで共有できる