$30 off During Our Annual Pro Sale. View Details »

Splunk Appのつくりかた / How to create Splunk App

Yoshiki Eguchi
February 14, 2020
1.8k

Splunk Appのつくりかた / How to create Splunk App

Splunk Appの作り方をざっくり紹介します。

Yoshiki Eguchi

February 14, 2020
Tweet

Transcript

  1. Splunk Appの作りかた
    クラスメソッド株式会社
    AWS事業本部 オペレーション部
    江⼝佳記

    View Slide

  2. 2
    About me
    江⼝佳記(@mochigumi07)
    • クラスメソッド AWS事業本部 オペレーション部所属(2019年⼊社)
    • 最近の主業務は品質管理/監査対応
    • Blog(Developers.io):
    https://dev.classmethod.jp/author/eguchi-yoshiki/
    • 最近の興味: Chaos Engineering

    View Slide

  3. 3
    著作
    • 「Splunk Appのつくりかた」(2019年3⽉刊⾏)
    • この発表のベースです

    View Slide

  4. 4
    きょうのおはなし
    はなすこと︓
    ・Splunk Appとはなんぞや
    ・ものすごく簡単なAppの作成⼿順の紹介
    はなさないこと︓
    ・細かい実装の話
    ・クエリの書き⽅など

    View Slide

  5. 5
    Splunk Appとはなんぞや

    View Slide

  6. 6
    Splunk Appとは
    Splunkに追加で
    インストールできるアプリケーション

    View Slide

  7. 7
    Splunk Appとは
    • Splunkの機能を拡張する
    • 可視化・分析を助けるもの、データ収集の⽅法を追加する
    ものなど多彩なアプリケーションが提供されている
    • Splunkbase( https://splunkbase.splunk.com/ )から公開され
    ているアプリをダウンロード可能
    • ざっくり、可視化・分析を⾏うものは「App(s)」、データ
    収集の機能を追加するものは「アドオン」と呼ばれる

    View Slide

  8. 8
    App(s)とアドオン
    公式サイトでの説明
    https://www.splunk.com/ja_jp/products/apps-and-add-ons.html

    View Slide

  9. 9
    Splunk Appは誰でも作れる
    • ダッシュボードを集めたAppであればほぼブラウザ
    上だけで作成できる
    • アドオンもAdd-on Builder(これもSplunk
    App)を使うとブラウザ上で開発可能

    View Slide

  10. 10
    ⾃前のAppをつくるメリット
    • ダッシュボードを集めたApp︓
    • ある情報に関する複数のダッシュボードをAppにまとめ
    ることで、情報へアクセスしやすくする
    • アドオン︓
    • 既存のアドオンでは対応していない任意のデータの取得
    • REST API、Shell Script、Python
    • 取得したデータをSplunkに記録する前に任意に加⼯

    View Slide

  11. 11
    ちなみに
    この本はダッシュボードのApp
    の作り⽅が中⼼
    Add-on Builderを使ったアドオ
    ンの作り⽅はDevelopers.ioに
    記事を上げてます(2本)
    https://dev.classmethod.jp/etc/splunk-add-on-builder-rest-api/
    https://dev.classmethod.jp/etc/splunk-add-on-builder-python/
    REST API編
    Pythonスクリプト編

    View Slide

  12. 12
    ものすごく簡単なAppの作成

    View Slide

  13. 13
    ものすごく簡単なAppの作成の流れ
    • 必要なダッシュボードを集めたAppの場合︓
    1. Splunk Web UIからAppを作成
    2. 作成したApp上でダッシュボードを作成
    3. 必要に応じてその他編集
    • ナビゲーションバーの編集
    • カスタマイズしたソースタイプetc、ダッシュボードの
    クエリに必要な定義をAppディレクトリ内に配置
    4. パッケージング

    View Slide

  14. 14
    Appの作成
    • Splunk Web UI - [Appの管理]画⾯の「Create app」から作成
    できる
    • 作成時点でApp⽤のディレクトリと最低限のファイルが⽣成される
    • 配置されるパス︓$SPLUNK_HOME/etc/apps/[App名]

    View Slide

  15. 15
    ディレクトリ構成
    bin
    default
    ui
    nav
    local
    metadata
    ←初期状態で利⽤されるコンテンツを配置
    他にもカスタマイズ⽤jsやcssを格納するappserver、画像などの静的なコンテンツを配置するstaticなども必要に応じ
    て配置
    ※前スライドの⼿順で作成した際に⽣成されるもの
    ←Web UI上でカスタマイズしたコンテンツが配置される
    ダッシュボードのデータ
    ダッシュボード上部のナビゲーションの
    データ
    app.conf ←アプリケーションの基本情報の設定ファイル
    data

    View Slide

  16. 16
    ダッシュボードの種類
    • 現在の標準はSimple XML
    • XMLベース
    • グリッドに沿ってパネルを並べる形式
    • 最近新しいダッシュボードのβ版が登場
    • 2019年12⽉に発表
    • ダッシュボードのレイアウトをより柔軟に作成できる
    • JSONベース
    • β版はSplunk Appとして提供
    今回はSimple XMLをベースに話します

    View Slide

  17. 17
    ダッシュボードの作成
    • 作成したAppのナビゲーションバーから
    [Dashboards] – [新しいダッシュボードの作成]
    • この時、「権限」で「App内で共有」にしないと
    Appのディレクトリに配置されないので注意
    (「プライベート」の場合、ユーザ⽤のディレクトリに配置されます)

    View Slide

  18. 18
    ダッシュボードの開発
    • ダッシュボードの開発はDashboard EditorでWeb
    UI上で⾏える
    • パネルの作成・配置はWYSIWYGで⾏える
    • XMLコードを直接編集できるので、細かい部分は⾃
    分で書く
    • 例︓複数のパネルで共通で利⽤する共通サーチ(Base
    Search)など

    View Slide

  19. 19
    リッチなダッシュボードを作るには︖
    ⼊⼒フォームとドリルダウンを使いこなす

    View Slide

  20. 20
    ⼊⼒フォームとドリルダウンを使いこなすには︖
    トークンを使いこなす

    View Slide

  21. 21
    トークン
    • ダッシュボードでは「トークン」を使⽤できる
    • 通常のプログラムでいうところの変数
    • トークンはパネル内で利⽤するサーチクエリで使⽤
    可能($[token名]$でトークンの値を参照できる)
    • ⼊⼒フォームの値をサーチ結果に反映させたり、ド
    リルダウンに利⽤したりできる

    View Slide

  22. 22
    ⼊⼒フォームでのトークン使⽤例
    • ⼊⼒フォームで指定した値でフィルタ
    選択した値がトークン$myyokenに代⼊される
    Index=test key1=$mytoken$ | 〜
    パネル上のサーチクエリ︓

    View Slide

  23. 23
    ドリルダウン
    • あるパネルの情報を詳しく⾒るために「深堀り」す
    る機能
    • 外部Webページや別のダッシュボードへのリンクや
    ダッシュボード内連携が可能
    • パネル内をクリックした際に、任意の情報(クリッ
    クした系列の値など)を取得し、渡すことができる
    • 外部Webページ︓Getパラメータで取得した値を利⽤
    • ダッシュボード内連携︓任意のトークンに取得した情報
    を格納

    View Slide

  24. 24
    ダッシュボードの実装の話をしてると
    時間が⾜りないので
    省略
    ダッシュボードの機能を知るには、
    とりあえずDashboard Examples
    (https://splunkbase.splunk.com/app/1603/)
    を⼊れて触ってみるとよいです

    View Slide

  25. 25
    各種設定ファイル
    • 各種設定をUIで実⾏すると、内部では設定ファイルが作成
    される
    • レポート/アラート︓savedserch.conf
    • マクロ︓macros.conf
    • フィールド定義︓props.conf / transform.conf
    • ダッシュボード同様、各設定の権限を「App内で共有」に
    設定するとAppのディレクトリに配置される
    • 逆に⾔うと明⽰的に「App内で共有」に変更しなければAppディ
    レクトリに⼊らないので、パッケージに⼊れる定義をUIで作成し
    た際は必ずこの点をチェックしましょう

    View Slide

  26. 26
    アドバンスドなことがしたい場合
    • Simple XMLよりも複雑なフロントエンドの処理を
    ダッシュボードに加えたい
    →JS StackによるJavaScript extensionsを利⽤
    しましょう
    • Modify dashboards using Simple XML extensions
    https://dev.splunk.com/enterprise/docs/developapps/webf
    ramework/usewebframework/modifydashboards
    • About Splunk JS Stack
    https://dev.splunk.com/enterprise/docs/developapps/webf
    ramework/usewebframework/aboutsplunkjsstack/

    View Slide

  27. 27
    参考︓Splunkのレイヤ
    https://dev.splunk.com/enterprise/docs/welcome/

    View Slide

  28. 28
    アドバンスドなことがしたい場合(2)
    • データを表現するグラフを⾃作したい(Custom
    Visualization)
    →下記リンクでCustom visualization⽤テンプ
    レートと開発⼿順が紹介されています
    • https://docs.splunk.com/Documentation/Splunk/lat
    est/AdvancedDev/CustomVizTutorial

    View Slide

  29. 29
    パッケージング
    • Appのディレクトリをtar.gzにアーカイブすることで別のSplunk環
    境へインストールが可能となる
    • [Install app from file]からインストール可能
    • アーカイブ前の準備︓
    • Appで必要なファイル(ダッシュボードや各種設定)がAppディレクトリ
    ($SPLUNK_HOME/etc/apps/[APP名])にすべて格納されていることを確認
    • Localディレクトリに配置されたファイルをglobalディレクトリに移動
    • globalディレクトリに移動することで、ユーザが変更を加えても原本がこの
    ディレクトリに残る

    View Slide

  30. 30
    パッケージング
    • パブリックに配布しないのであれば、前ページの状態で
    tar.gzにアーカイブするだけで他Splunk環境でのインス
    トールは可能となる
    • Splunkbaseでパブリックに配布したい場合は適切な処理
    が必要
    • 参照︓
    https://dev.splunk.com/enterprise/docs/releaseapps/packagingtoolki
    t

    View Slide

  31. 31
    まとめ
    • Splunk AppはSplunkの機能を拡張してくれる
    • Splunk Appをとりあえず作ってみるのは簡単
    • ダッシュボードを集めたAppならほぼWeb UIだけで作る
    ことができる
    • それでいて⾼度な機能追加にも対応していて奥が深い
    ということで、気軽にAppを作ってみましょう︕

    View Slide

  32. 32

    View Slide