Splunk Appを作ってみました。まずは、Splunk Appの構造を見てみましょう!

Splunk Appを作れるようになると、Splunkが持つ力を最大限に活用できるようになるため、ぜひ習得しておきたいスキルです。Splunk Appの構造から見てみましょう。
2022.11.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

データアナリティクス事業本部の藤川です。 Splunk Appを作ってみました。Splunk Appを作成できるようになると、カスタムダッシュボードやカスタムサーチを作成できるようになります。 カスタムサーチでは、Pythonを実行できるので、分析の幅が広がります。さらに、カスタムダッシュボードと組み合わせることで、可視化の種類が増えます。 Splunk Appを作れるようになると、Splunkが持つ力を最大限に活用できるようになるため、ぜひ習得しておきたいスキルです。

Splunk Appを作成

Splunk Appを新規作成

SplunkでSplunk Appを新規作成できます。 空のSplunk Appを新規作成できますが、ここでは、Splunk Appの構造を知るために、サンプルダッシュボード付きのSplunk Appを作成してみます。

  1. Splunkのホーム画面を表示します。
  2. 歯車アイコンをクリックし、Appの一覧画面を表示します。
  3. Appの作成ボタンをクリックします。
  4. 新規追加画面で、次のように設定します。
    テンプレートは、barebones、または、sample_appから選べますが、ここでは、sample_appを選択します。

    項目
    名前 Sample App
    フォルダー名 sample-app
    表示 はい
    テンプレート sample_app
  5. 保存ボタンをクリックします。

  6. 作成したSplunk AppがAppの一覧画面に表示されます。
  7. Splunkのホーム画面を表示します。
  8. 作成したSplunk Appが一覧に並ぶようになります。
  9. Sample Appをクリックしてみましょう。
  10. 各タブにも遷移できるよう、予め設定されています。

Splunk Appの構造について

Splunk Appの構造を見てみましょう。

ナビゲーションメニュー

画面上部に表示されるナビゲーションメニューです。作成したSplunk Appでは、次のメニューが表示されます。

サーチ ※デフォルト表示
Analytics
データセット
レポート
アラート
ダッシュボード

ナビゲーションメニューの設定ファイルを表示してみます。

  1. Splunkのホーム画面を表示します。
  2. 歯車アイコンをクリックし、Appの一覧画面を表示します。
  3. 作成したSplunk Appのオブジェクトの表示リンクをクリックします。Splunk Appを構成するファイルが一覧表示されます。
  4. 環境設定タイプ=navのファイルがナビゲーションメニューです。作成したSplunk Appでは、defaultというナビゲーションメニューが用意されています。
  5. すべての環境設定画面で、defaultリンクをクリックします。
  6. ナビゲーションメニューXMLに、次のコードが表示されます。
<nav search_view="search">
  <view name="search" default='true' />
  <view name="analytics_workspace" />
  <view name="datasets" />
  <view name="reports" />
  <view name="alerts" />
  <view name="dashboards" />
</nav>

ビュー

ナビゲーションメニューに表示されたメニューをクリックすると、ビューが表示されます。 ビューの設定ファイルを表示してみます。

  1. Splunkのホーム画面を表示します。
  2. 歯車アイコンをクリックし、Appの一覧画面を表示します。
  3. 作成したSplunk Appのオブジェクトの表示リンクをクリックします。Splunk Appを構成するファイルが一覧表示されます。
  4. 環境設定タイプ=viewsのファイルがビューです。
  5. 次のファイルが表示されているかと思いますが、実はこれらは前述のdefaultナビゲーションメニューから参照されていません。
    sample_dashboard
    sample_dropdown
    sample_formsearch
    sample_radio
    sample_simple_dashboard

ナビゲーションメニューを編集

defaultナビゲーションメニューを編集し、作成したSplunk Appに組み込まれているビューを表示できるようにします。

  1. Splunkのホーム画面を表示します。
  2. 歯車アイコンをクリックし、Appの一覧画面を表示します。
  3. 作成したSplunk Appのオブジェクトの表示リンクをクリックします。
  4. defaultリンクをクリックし、defaultナビゲーションメニューのコードを表示します。
  5. 次のように5行追加し、default='true'を移動します。
<nav search_view="search">
  <view name="search" />
  <view name="analytics_workspace" />
  <view name="datasets" />
  <view name="reports" />
  <view name="alerts" />
  <view name="dashboards" />
  <view name="sample_dashboard" />
  <view name="sample_dropdown" />
  <view name="sample_formsearch" />
  <view name="sample_radio" />
  <view name="sample_simple_dashboard" default='true' />
</nav>
  1. 保存ボタンをクリックします。

ナビゲーションメニューを表示

  1. 画面最上部にあるAppプルダウンからSample Appをクリックします。
  2. 画面上部に表示されるナビゲーションメニューのメニューが増え、デフォルト表示されるビューが変更されました。
    サーチ
    Analytics
    データセット
    レポート
    アラート
    ダッシュボード
    サンプルダッシュボード
    サンプルドロップダウン
    サンプルフォームサーチ
    サンプルラジオ
    サンプルシンプルダッシュボード ※デフォルト表示

Splunk Appをパッケージング

作成したSplunk Appをパッケージングし、Splunkインスタンスから取り出すことができます。
主に次のような用途に使用できます。

  • Splunk Appを公開
  • Splunk Appを別の環境へ移行
  • Splunk Appのコードを管理
  • Splunk Appをバックアップ

Splunk Appをパッケージング

  1. AWSマネジメントコンソールからインスタンスダッシュボードを表示します。
  2. Splunkインスタンスにセッションマネージャ(または、SSH)で接続します。
  3. splunkユーザにスイッチします。
    sudo -iu splunk
  4. 次のコマンドを実行し、Splunk Appをパッケージングします。アプリケーション名にsample-appを指定します。
    ※Splunkがインストールされているパスが/opt/splunkの場合

    /opt/splunk/bin/splunk package app sample-app
  5. Splunkユーザのログインを求められますので、ユーザ名、パスワードを入力してください。
    Your session is invalid.  Please login.
    Splunk username: admin
    Password: ********
    Login successful, running command...
  6. 認証をパスすると、Splunk Appが/opt/splunk/share/splunk/app_packagesディレクトリにsample-app.splファイルという名称で保存されます。
    App 'sample-app' is packaged.
    Package location: /opt/splunk/share/splunk/app_packages/sample-app.spl
  7. *.splファイルはTGZ形式で保存されているようです。拡張子をtgzに変更して、解凍できました。
  8. ナビゲーションメニュービューdefaultディレクトリ配下に格納されています。
    sample-app
    ├── appserver/
    │   └── static/
    │       ├── application.css
    │       ├── appLogo_allblack.png
    │       ├── appLogo_allwhite.png
    │       ├── appLogo_black.gif
    │       ├── appLogo_black.png
    │       ├── appLogo_white.gif
    │       ├── appLogo_white.png
    │       ├── bg_hash_grey.gif
    │       ├── loader.gif
    │       ├── overlay_bottomgradient_10.png
    │       ├── overlay_bottomgradient_18.png
    │       ├── overlay_bottomgradient_large.png
    │       ├── overlay_bottomgradient_soft.png
    │       ├── overlay_glass_28.png
    │       ├── overlay_gloss_28.png
    │       ├── overlay_gradient_25.png
    │       ├── overlay_gradient_28.png
    │       ├── overlay_gradient_4.png
    │       ├── overlay_gradient_50.png
    │       ├── overlay_gradient.png
    │       ├── overlay_innerleftshadow.png
    │       ├── overlay_innershadow_4.png
    │       ├── overlay_reversegradient_28.png
    │       ├── overlay_reversegradient_4.png
    │       ├── overlay_reversegradient_light_28.png
    │       ├── overlay_reversegradientridge_28.png
    │       ├── overlay_softgradient_28.png
    │       ├── overlay_togradient_large.png
    │       ├── overlay_topgradient_beige_soft.png
    │       ├── overlay_topgradient.png
    │       ├── overlay_topgradient_soft.png
    │       ├── overlay_topInnerShadow_35.png
    │       ├── overlay_white_28.png
    │       ├── overlay_whiteridge_28.png
    │       └── splIcons.gif
    ├── bin/
    │   └── readme.txt*
    ├── default/
    │   ├── app.conf
    │   ├── data/
    │   │   └── ui/
    │   │       ├── nav/
    │   │       │   └── default.xml
    │   │       └── views/
    │   │           ├── sample_dashboard.xml
    │   │           ├── sample_dropdown.xml
    │   │           ├── sample_formsearch.xml
    │   │           ├── sample_radio.xml
    │   │           └── sample_simple_dashboard.xml
    │   ├── readme.txt
    │   └── savedsearches.conf
    └── metadata/
        ├── default.meta
        └── local.meta

Splunk Appを他の環境にインストール

*.splファイルをダウンロードすれば、他のSplunk環境にインストールすることも可能です。 *.splファイルを解凍すれば、ソースコードはテキストエディタで編集できます。 特別な開発環境を用意しなくても、簡単に開発ができます。また、ソースコードはGitリポジトリで管理できますので、大変便利です。

Splunk Appをインストール

開発したSplunk Appは、再度、TGZ形式でアーカイブすれば、他のSplunk Appと同様にインストールできます。 インストールする手順は次の通りです。

  1. Splunkのホーム画面を表示します。
  2. 歯車アイコンをクリックし、Appの一覧画面を表示します。
  3. ファイルからAppをインストールボタンをクリックします。
  4. Appのアップロード画面で、*.splファイルを選択し、アップロードボタンをクリックします。
  5. ページをリロードし、画面最上部にあるAppプルダウンからSample Appをクリックします。
  6. Splunk Appを他の環境にインストールできました。

Splunk Appをアンインストール

SplunkからSplunk Appをアンインストールする手順です。 SplunkのWeb UIからはアンインストールできないようです。

Splunk Appをアンインストール

  1. AWSマネジメントコンソールからインスタンスダッシュボードを表示します。
  2. Splunkインスタンスにセッションマネージャ(または、SSH)で接続します。
  3. splunkユーザにスイッチします。
    sudo -iu splunk
  4. 次のコマンドを実行し、Splunk Appをアンインストールします。アプリケーション名にsample-appを指定します。
    ※Splunkがインストールされているパスが/opt/splunkの場合

    /opt/splunk/bin/splunk remove app sample-app
  5. Splunkユーザのログインを求められますので、ユーザ名、パスワードを入力してください。
    Your session is invalid.  Please login.
    Splunk username: admin
    Password: ********
  6. 認証をパスすると、Splunk Appがアンインストールされます。
    App 'sample-app' removed

さいごに

今回は、ナビゲーションメニューとビューを中心に、Splunk Appの構造を見てきました。 カスタムダッシュボード、カスタムサーチの作成方法は別の機会にご紹介します。

あわせて読みたい