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
440
AIサービス利用ガイドライン策定のすすめ
yoshikieguchi
0
1.1k
社内でChatGPTを利用するためのガイドラインを整備した話
yoshikieguchi
1
2.2k
ビジネスライティング講座
yoshikieguchi
2
12k
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Fireside Chat
paigeccino
33
3k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
We Have a Design System, Now What?
morganepeng
50
7.2k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Faster Mobile Websites
deanohume
305
30k
Why Our Code Smells
bkeepers
PRO
334
57k
Producing Creativity
orderedlist
PRO
341
39k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
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