Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Splunk Appのつくりかた / How to create Splunk App
Search
Yoshiki Eguchi
February 14, 2020
0
2.2k
Splunk Appのつくりかた / How to create Splunk App
Splunk Appの作り方をざっくり紹介します。
Yoshiki Eguchi
February 14, 2020
Tweet
Share
More Decks by Yoshiki Eguchi
See All by Yoshiki Eguchi
AI事業者ガイドラインから読み解く、企業が意識すべきAI活用のポイント
yoshikieguchi
0
490
AIサービス利用ガイドライン策定のすすめ
yoshikieguchi
0
1.1k
社内でChatGPTを利用するためのガイドラインを整備した話
yoshikieguchi
1
2.2k
ビジネスライティング講座
yoshikieguchi
2
12k
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Building Applications with DynamoDB
mza
91
6.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
How STYLIGHT went responsive
nonsquared
95
5.2k
BBQ
matthewcrist
85
9.4k
A Tale of Four Properties
chriscoyier
157
23k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Building an army of robots
kneath
302
44k
Transcript
Splunk Appの作りかた クラスメソッド株式会社 AWS事業本部 オペレーション部 江⼝佳記
2 About me 江⼝佳記(@mochigumi07) • クラスメソッド AWS事業本部 オペレーション部所属(2019年⼊社) • 最近の主業務は品質管理/監査対応
• Blog(Developers.io): https://dev.classmethod.jp/author/eguchi-yoshiki/ • 最近の興味: Chaos Engineering
3 著作 • 「Splunk Appのつくりかた」(2019年3⽉刊⾏) • この発表のベースです •
4 きょうのおはなし はなすこと︓ ・Splunk Appとはなんぞや ・ものすごく簡単なAppの作成⼿順の紹介 はなさないこと︓ ・細かい実装の話 ・クエリの書き⽅など
5 Splunk Appとはなんぞや
6 Splunk Appとは Splunkに追加で インストールできるアプリケーション
7 Splunk Appとは • Splunkの機能を拡張する • 可視化・分析を助けるもの、データ収集の⽅法を追加する ものなど多彩なアプリケーションが提供されている • Splunkbase(
https://splunkbase.splunk.com/ )から公開され ているアプリをダウンロード可能 • ざっくり、可視化・分析を⾏うものは「App(s)」、データ 収集の機能を追加するものは「アドオン」と呼ばれる
8 App(s)とアドオン 公式サイトでの説明 https://www.splunk.com/ja_jp/products/apps-and-add-ons.html
9 Splunk Appは誰でも作れる • ダッシュボードを集めたAppであればほぼブラウザ 上だけで作成できる • アドオンもAdd-on Builder(これもSplunk App)を使うとブラウザ上で開発可能
10 ⾃前のAppをつくるメリット • ダッシュボードを集めたApp︓ • ある情報に関する複数のダッシュボードをAppにまとめ ることで、情報へアクセスしやすくする • アドオン︓ •
既存のアドオンでは対応していない任意のデータの取得 • REST API、Shell Script、Python • 取得したデータをSplunkに記録する前に任意に加⼯
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スクリプト編
12 ものすごく簡単なAppの作成
13 ものすごく簡単なAppの作成の流れ • 必要なダッシュボードを集めたAppの場合︓ 1. Splunk Web UIからAppを作成 2. 作成したApp上でダッシュボードを作成
3. 必要に応じてその他編集 • ナビゲーションバーの編集 • カスタマイズしたソースタイプetc、ダッシュボードの クエリに必要な定義をAppディレクトリ内に配置 4. パッケージング
14 Appの作成 • Splunk Web UI - [Appの管理]画⾯の「Create app」から作成 できる
• 作成時点でApp⽤のディレクトリと最低限のファイルが⽣成される • 配置されるパス︓$SPLUNK_HOME/etc/apps/[App名]
15 ディレクトリ構成 bin default ui nav local metadata ←初期状態で利⽤されるコンテンツを配置 他にもカスタマイズ⽤jsやcssを格納するappserver、画像などの静的なコンテンツを配置するstaticなども必要に応じ
て配置 ※前スライドの⼿順で作成した際に⽣成されるもの ←Web UI上でカスタマイズしたコンテンツが配置される ダッシュボードのデータ ダッシュボード上部のナビゲーションの データ app.conf ←アプリケーションの基本情報の設定ファイル data
16 ダッシュボードの種類 • 現在の標準はSimple XML • XMLベース • グリッドに沿ってパネルを並べる形式 •
最近新しいダッシュボードのβ版が登場 • 2019年12⽉に発表 • ダッシュボードのレイアウトをより柔軟に作成できる • JSONベース • β版はSplunk Appとして提供 今回はSimple XMLをベースに話します
17 ダッシュボードの作成 • 作成したAppのナビゲーションバーから [Dashboards] – [新しいダッシュボードの作成] • この時、「権限」で「App内で共有」にしないと Appのディレクトリに配置されないので注意
(「プライベート」の場合、ユーザ⽤のディレクトリに配置されます)
18 ダッシュボードの開発 • ダッシュボードの開発はDashboard EditorでWeb UI上で⾏える • パネルの作成・配置はWYSIWYGで⾏える • XMLコードを直接編集できるので、細かい部分は⾃
分で書く • 例︓複数のパネルで共通で利⽤する共通サーチ(Base Search)など
19 リッチなダッシュボードを作るには︖ ⼊⼒フォームとドリルダウンを使いこなす
20 ⼊⼒フォームとドリルダウンを使いこなすには︖ トークンを使いこなす
21 トークン • ダッシュボードでは「トークン」を使⽤できる • 通常のプログラムでいうところの変数 • トークンはパネル内で利⽤するサーチクエリで使⽤ 可能($[token名]$でトークンの値を参照できる) •
⼊⼒フォームの値をサーチ結果に反映させたり、ド リルダウンに利⽤したりできる
22 ⼊⼒フォームでのトークン使⽤例 • ⼊⼒フォームで指定した値でフィルタ 選択した値がトークン$myyokenに代⼊される Index=test key1=$mytoken$ | 〜 パネル上のサーチクエリ︓
23 ドリルダウン • あるパネルの情報を詳しく⾒るために「深堀り」す る機能 • 外部Webページや別のダッシュボードへのリンクや ダッシュボード内連携が可能 • パネル内をクリックした際に、任意の情報(クリッ
クした系列の値など)を取得し、渡すことができる • 外部Webページ︓Getパラメータで取得した値を利⽤ • ダッシュボード内連携︓任意のトークンに取得した情報 を格納
24 ダッシュボードの実装の話をしてると 時間が⾜りないので 省略 ダッシュボードの機能を知るには、 とりあえずDashboard Examples (https://splunkbase.splunk.com/app/1603/) を⼊れて触ってみるとよいです
25 各種設定ファイル • 各種設定をUIで実⾏すると、内部では設定ファイルが作成 される • レポート/アラート︓savedserch.conf • マクロ︓macros.conf •
フィールド定義︓props.conf / transform.conf • ダッシュボード同様、各設定の権限を「App内で共有」に 設定するとAppのディレクトリに配置される • 逆に⾔うと明⽰的に「App内で共有」に変更しなければAppディ レクトリに⼊らないので、パッケージに⼊れる定義をUIで作成し た際は必ずこの点をチェックしましょう
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/
27 参考︓Splunkのレイヤ https://dev.splunk.com/enterprise/docs/welcome/
28 アドバンスドなことがしたい場合(2) • データを表現するグラフを⾃作したい(Custom Visualization) →下記リンクでCustom visualization⽤テンプ レートと開発⼿順が紹介されています • https://docs.splunk.com/Documentation/Splunk/lat
est/AdvancedDev/CustomVizTutorial
29 パッケージング • Appのディレクトリをtar.gzにアーカイブすることで別のSplunk環 境へインストールが可能となる • [Install app from file]からインストール可能
• アーカイブ前の準備︓ • Appで必要なファイル(ダッシュボードや各種設定)がAppディレクトリ ($SPLUNK_HOME/etc/apps/[APP名])にすべて格納されていることを確認 • Localディレクトリに配置されたファイルをglobalディレクトリに移動 • globalディレクトリに移動することで、ユーザが変更を加えても原本がこの ディレクトリに残る
30 パッケージング • パブリックに配布しないのであれば、前ページの状態で tar.gzにアーカイブするだけで他Splunk環境でのインス トールは可能となる • Splunkbaseでパブリックに配布したい場合は適切な処理 が必要 •
参照︓ https://dev.splunk.com/enterprise/docs/releaseapps/packagingtoolki t
31 まとめ • Splunk AppはSplunkの機能を拡張してくれる • Splunk Appをとりあえず作ってみるのは簡単 • ダッシュボードを集めたAppならほぼWeb
UIだけで作る ことができる • それでいて⾼度な機能追加にも対応していて奥が深い ということで、気軽にAppを作ってみましょう︕
32