FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Splunk その6

18. 簡易 XML の書式 - ダッシュボード編

今回は簡易 XML でのダッシュボードの作成について解説します。

① ダッシュボードの作成

<dashboard> タグでダッシュボードの枠を作成し、<label> タグでラベル名を付けます。
<dashboard>
<label>ラベル名</label>
</dashboard>

ラベル名は、ビューを選択する際にプルダウンメニューに表示され、ビュー選択後は左上に表示される名前になります。

splunk_setup_6-1.png

また、画面の自動更新を有効にする場合は、<dashboard> タグに refresh 属性を指定します。

refresh 属性の書式:

<dashboard refresh="s">
s … 画面の更新間隔 (秒数)


以下は30秒ごとに画面の自動更新を行う場合の例です。
<dashboard refresh="30">
<label>My Dashboard</label>
</dashboard>

② レイアウト行の追加

説明文などの静的 HTML や検索結果を表示するためのレイアウト行を <row> タグで追加します。
<dashboard>
<label>ラベル名</label>
<row>
</row>
</dashboard>

また、 <row> タグに grouping 属性を付加することで、行を複数の列に分割したり、一つの行に複数のパネルを配置できるよう設定することができます。

grouping 属性の書式:

<row grouping="n1,n2,n3">
n1 … 1 列目に配置するパネル数
n2 … 2 列目に配置するパネル数
n3 … 3 列目に配置するパネル数


以下は、grouping オプションで分割したレイアウト行に静的 HTML パネルを表示させた場合の例です。

記述例 1 : <row grouping="1,1">
<dashboard>
<label>My Dashboard</label>
<row grouping="1,1">
<html>
Panel 1
</html>

<html>
Panel 2
</html>

</row>
</dashboard>

表示例 1:
splunk_setup_6-2.png

記述例 2 : <row grouping="1,2">
<dashboard>
<label>My Dashboard</label>
<row grouping="1,2">
<html>
Panel 1
</html>

<html>
Panel 2
</html>
<html>
Panel 3
</html>

</row>
</dashboard>

表示例 2 :
splunk_setup_6-3.png

記述例 3 : <row grouping="2,3,1">
<dashboard>
<label>My Dashboard</label>
<row grouping="2,3,1">
<html>
Panel 1
</html>
<html>
Panel 2
</html>

<html>
Panel 3
</html>
<html>
Panel 4
</html>
<html>
Panel 5
</html>

<html>
Panel 6
</html>

</row>
</dashboard>

表示例 3 :
splunk_setup_6-4.png

なお、列数が多すぎて画面の幅に収まりきらない場合には、右側のパネルが自動的に折り返されて表示されます。レイアウト行を複数列に分割する場合は、Splunk Web を表示する PC の画面の解像度も考慮して適切な設定を行ってください(通常の環境では2列程度が適切でしょう)。

行が折り返される場合の表示例:
splunk_setup_6-5.png

③ パネルの追加

②で設定したレイアウト行にパネルを追加することで、ダッシュボードに検索結果や説明文を表示させることができます。

追加できるパネルには、HTML、チャート、テーブル、イベントリスト、リスト、シングルバリューの 6 種類があります。基本的に、HTML 以外のパネルでは指定した検索式の結果に基づいて表示を行います。パネルを定義するための詳細な書式については、こちらを参照してください。ここでは代表的なオプションについてのみ解説します。

まず、各種パネルで使用できる共通オプションは、以下の通りです。

<title>パネルの名前</title>
パネルの名前を指定します。ここで指定した名前は、パネルの先頭に表示されます。

<searchName>保存済み検索式の名前</searchName>
検索条件として、保存済み検索式を指定します。

<searchString>検索式</searchString>
検索条件として、インラインの検索式を定義します。

<fields>表示するフィールドのリスト</fields>
検索結果の中から、実際に表示するフィールドのリストを指定します。
チャートやテーブルパネルを定義する際に有用なオプションです。

<earliestTime>検索開始時間</earliestTime>
<latestTime>検索終了時間</latestTime>

検索の対象とする時間帯の絞込みを行います。時間の指定方法の詳細についてはこちらを参照してください。


a. HTML パネル

通常の HTML タグを使用することができるパネルで、説明文の表示や別のビューへのリンクなどに使用されます。
また、保存された検索式をリンクとして表示することもできます。

記述例:
<dashboard>
<label>My Dashboard</label>
<row>
<html>
Welcome to My Dashboard!<br />
This is a dashbord for <b>My App</b>.<br />
<br />
Search Link:
<ul>
<li>This is a link for <a href = "@go?s=MySavedSearch">My Saved Search</a>.</li>
</ul>
</html>
</row>
</dashboard>

表示例:
splunk_setup_6-6.png

b. チャートパネル

各種グラフを表示します。

使用可能なグラフの種類には、bar、line、column、area、pie、scatter、bubble の 7 種類があり、bar、column、area については積み上げ形式の表示も可能です。

それぞれのグラフの具体的な表示イメージについては、Splunk Tutorial! の Chart Gallery を参照してください。

チャートパネルで使用される代表的なオプションは、以下の通りです。
<option name="height">高さ</option>
パネルの高さの指定を CSS の height 属性と同じ形式で指定します。

<option name="charting.chart">チャート種別</option>
bar, line, column, area, pie, scatter, bubble のいずれかを指定します。

<option name="charting.legend.placement">凡例の表示位置</option>
top, left, bottom, right, none のいずれかを指定します。

<option name="charting.chart.stackMode">スタックモード</option>
チャート種別が bar, column, area だった場合に、積み上げ形式での表示を行います。
default(積み上げ形式での表示を行わない)、stacked(積み上げ形式での表示を行う)、stacked100(100を上限とした割合で積み上げ形式表示を行う)のいずれかの値を指定します。

<option name="charting.primaryAxisTitle.text">X軸のラベル</option>
X軸のラベルを指定します。

<option name="charting.secondaryAxisTitle.text">Y軸のラベル</option>
Y軸のラベルを指定します。

記述例:
<dashboard>
<label>ASA - Syslog</label>
<row>
<chart>
<title>Number of Syslog Messages</title>
<searchString>devicetype=asa | timechart span=1m count(devicetype) by host</searchString>
<earliestTime>-60m</earliestTime>
<option name="height">300px</option>
<option name="charting.chart">column</option>
<option name="charting.chart.stackMode">stacked</option>
<option name="charting.primaryAxisTitle.text">time</option>
<option name="charting.secondaryAxisTitle.text">msg_count</option>
</chart>
</row>
</dashboard>

表示例:
splunk_setup_6-7.png

c. テーブルパネル

各種フィールドの値を表形式で表示します。
サーバのパフォーマンスデータや Firewall のトラフィックログなど、正規化されたデータを表示する際に使用されます。

テーブルパネルで使用される代表的なオプションは、以下の通りです。
<option name="count">最大表示行数</option>
パネルに表示されるイベントの最大行数を指定します。

<option name="displayRowNumbers">行番号表示の有効化</option>
イベントの左側にイベントの通し番号を表示します。
true, false のいずれかの値を指定します。

<option name="showPager">ページ選択の有効化</option>
ページ選択を有効化することで、検索結果に最大表示行数を超えるイベントがあった場合でも、ページを切り替えてイベント表示を行うことができるようになります。
true, false のいずれかの値を指定します。

記述例:
<dashboard>
<label>ASA - Syslog</label>
<row>
<table>
<searchString>syslogtag="%ASA-*-106100" OR syslogtag="%ASA-*-106023"</searchString>
<title>Recent Firewall Events</title>
<earliestTime>-60m</earliestTime>
<fields>_time,timegenerated,host,priority,acl,action,protocol,src_if,src_addr,src_port,dst_if,dst_addr,dst_port,hit_count</fields>
<option name="count">10</option>
<option name="displayRowNumbers">false</option>
<option name="showPager">true</option>
<option name="drilldown">row</option>
</table>
</row>
</dashboard>

表示例:
splunk_setup_6-8.png

d. イベントリストパネル

検索条件式にマッチするイベントをそのまま表示します。
アプリケーションのログをそのまま表示する場合などに使用されます。

イベントパネルで使用される代表的なオプションは、以下の通りです。
<option name="count">最大表示行数</option>
パネルに表示されるイベントの最大行数を指定します。

<option name="entityName">表示形式</option>
イベントをそのまま表示する(events)か、各種フィールドの値も合わせて表示する(results)かを指定します。
events, results のいずれかを指定し、デフォルトは results です。

<option name="segmentation">セグメンテーションの有効化</option>
イベント内に含まれる単語のセグメンテーションの粒度を指定します。
選択可能な値には粒度が細かい方から、full, outer, inner, none(セグメンテーション無効)があります。

<option name="maxLines">最大読み込み行数</option>
1つのイベント当たりの最大表示行数を指定します。
コンフィグレーションファイルの内容など、多くの改行を含むイベントを表示する際に指定が必要になる場合があります。

<option name="showPager">ページ選択の有効化</option>
ページ選択を有効化することで、検索結果に最大表示行数を超えるイベントがあった場合でも、ページを切り替えてイベント表示を行うことができるようになります。
true, false のいずれかの値を指定します。

記述例:
<dashboard>
<label>ASA - Syslog</label>
<row>
<event>
<searchString>devicetype=asa</searchString>
<title>Recent Syslog Messages</title>
<earliestTime>-60m</earliestTime>
<option name="count">10</option>
<option name="entityName">results</option>
<option name="showPager">true</option>
</event>
</row>
</dashboard>

表示例:
splunk_setup_6-9.png

e. リストパネル

ラベルと値のペアをリスト形式で表示します。
表示時にラベルもしくは値に対してソート処理が適用され、昇順、降順の切り替えも簡単に行うことができます。
コンフィグファイルの変更件数や、ログ中のキーワードの出現回数などをカウントする用途に適しています。

リストパネルで使用される代表的なオプションは、以下の通りです。
<option name="labelField">フィールド名</option>
リストの左側に表示される、ラベルフィールドの名前を指定します。

<option name="valueField">フィールド名</option>
リストの右側に表示される、バリューフィールドの名前を指定します。

<option name="initialSort">フィールド名</option>
初期状態でソートの対象となるフィールドの名前を指定します。

<option name="initialSortDir">ソート方向</option>
初期状態でのソートの方向として、asc(昇順)もしくは desc(降順)を指定します。

<option name="labelFieldSearch">検索式</option>
labelFieldTarget オプションと組み合わせて指定することで、検索結果のラベルから外部のビューへのリンクを生成します(※)。

<option name="labelFieldTarget">ビュー名</option>
labelFieldSearch オプションと組み合わせて指定することで、検索結果のラベルから外部のビューへのリンクを生成します(※)。

※ 手元の環境では、リンク先のビューで検索条件にスペースや改行が挿入されてしまい、意図した動作になりませんでした。

記述例:
<dashboard>
<label>Top IPs</label>
<row grouping="1,1">
<list>
<title>Top Source IPs</title>
<searchString>devicetype=asa | top src_addr</searchString>
<earliestTime>-60m</earliestTime>
<option name="labelField">src_addr</option>
<option name="valueField">count</option>
<option name="initialSort">count</option>
<option name="initialSortDir">desc</option>
<option name="labelFieldSearch">devicetype=asa</option>
<option name="labelFieldTarget">flashtimeline</option>
</list>
<list>
<title>Top Destination IPs</title>
<searchString>devicetype=asa | top dst_addr</searchString>
<earliestTime>-60m</earliestTime>
<option name="labelField">dst_addr</option>
<option name="valueField">count</option>
<option name="initialSort">count</option>
<option name="initialSortDir">desc</option>
<option name="labelFieldSearch">devicetype=asa</option>
<option name="labelFieldTarget">flashtimeline</option>
</list>
</row>
</dashboard>

表示例:
splunk_setup_6-10.png

f. シングルバリューパネル

エラーメッセージの件数など、単一の数値をボタンとして表示します。

シングルバリューパネルで使用される代表的なオプションは、以下の通りです。
<option name="field">フィールド名</option>
表示対象となるフィールドの名前。

<option name="beforeLabel">前方ラベルテキスト</option>
検索結果の前方に表示されるテキスト。

<option name="afterLabel">後方ラベルテキスト</option>
検索結果の後方に表示されるテキスト。

<option name="classField">フィールド名</option>
ボタンに適用する CSS クラスを決定するためのフィールドの名前。ボタンの文字色と背景色を指定するためのクラスとしては、severe(赤), high(橙), elevated(黄), guarded(青), low(緑), None(灰)があらがじめ定義されています。
クラスを適用するには、rangemap コマンドを使って range フィールドに上記クラスをセットし、classField オプションに range を指定します。rangemap コマンドでは、クラスを静的に割り当てることも、検索結果に応じて動的に割り当てることも可能です。

静的なクラス割り当ての例:
rangemap field=priority default=severe

動的なクラス割り当ての例:
rangemap field=count low=0-10 elevated=11-100 default=severe

<option name="linkView">リンク先ビュー</option>
ボタンの中のテキストをクリックすることで表示される、リンク先となるビューを指定します。

<option name="linkSearch">検索式</option>
リンク先のビューで実行する検索式を指定します。
検索条件が自動で追加されるリストパネルとは異なり、シングルバリューパネルではここで指定した検索式がそのまま実行されます。

<option name="linkFields">リンク位置</option>
ボタンに表示されるテキストのどこにリンクを張るかを指定します。
result, beforeLabel, afterLabel のいずれかの値を指定します。

記述例:
<dashboard>
<label>Syslog Severities</label>
<row grouping="8">
<single>
<title>Number of events by severity</title>
<searchString>devicetype=asa priority="emerg" | stats count by priority | rangemap field=priority default=severe</searchString>
<earliestTime>-60m</earliestTime>
<option name="field">count</option>
<option name="beforeLabel">emerg: </option>
<option name="classField">range</option>
<option name="linkView">flashtimeline</option>
<option name="linkSearch">devicetype=asa priority="emerg"</option>
<option name="linkFields">beforeLabel</option>
</single>
<single>
<searchString>devicetype=asa priority="alert" | stats count by priority | rangemap field=priority default=severe</searchString>
<earliestTime>-60m</earliestTime>
<option name="field">count</option>
<option name="beforeLabel">alert: </option>
<option name="classField">range</option>
<option name="linkView">flashtimeline</option>
<option name="linkSearch">devicetype=asa priority="alert"</option>
<option name="linkFields">beforeLabel</option>
</single>
<single>
<searchString>devicetype=asa priority="crit" | stats count by priority | rangemap field=priority default=severe</searchString>
<earliestTime>-60m</earliestTime>
<option name="field">count</option>
<option name="beforeLabel">crit: </option>
<option name="classField">range</option>
<option name="linkView">flashtimeline</option>
<option name="linkSearch">devicetype=asa priority="crit"</option>
<option name="linkFields">beforeLabel</option>
</single>
<single>
<searchString>devicetype=asa priority="err" | stats count by priority | rangemap field=priority default=high</searchString>
<earliestTime>-60m</earliestTime>
<option name="field">count</option>
<option name="beforeLabel">err: </option>
<option name="classField">range</option>
<option name="linkView">flashtimeline</option>
<option name="linkSearch">devicetype=asa priority="err"</option>
<option name="linkFields">beforeLabel</option>
</single>
<single>
<searchString>devicetype=asa priority="warn" | stats count by priority | rangemap field=priority default=elevated</searchString>
<earliestTime>-60m</earliestTime>
<option name="field">count</option>
<option name="beforeLabel">warn: </option>
<option name="classField">range</option>
<option name="linkView">flashtimeline</option>
<option name="linkSearch">devicetype=asa priority="warn"</option>
<option name="linkFields">beforeLabel</option>
</single>
<single>
<searchString>devicetype=asa priority="notice" | stats count by priority | rangemap field=priority default=guarded</searchString>
<earliestTime>-60m</earliestTime>
<option name="field">count</option>
<option name="beforeLabel">notice: </option>
<option name="classField">range</option>
<option name="linkView">flashtimeline</option>
<option name="linkSearch">devicetype=asa priority="notice"</option>
<option name="linkFields">beforeLabel</option>
</single>
<single>
<searchString>devicetype=asa priority="info" | stats count by priority | rangemap field=priority default=low</searchString>
<earliestTime>-60m</earliestTime>
<option name="field">count</option>
<option name="beforeLabel">info: </option>
<option name="classField">range</option>
<option name="linkView">flashtimeline</option>
<option name="linkSearch">devicetype=asa priority="info"</option>
<option name="linkFields">beforeLabel</option>
</single>
<single>
<searchString>devicetype=asa priority="debug" | stats count by priority | rangemap field=priority default=None</searchString>
<earliestTime>-60m</earliestTime>
<option name="field">count</option>
<option name="beforeLabel">debug: </option>
<option name="classField">range</option>
<option name="linkView">flashtimeline</option>
<option name="linkSearch">devicetype=asa priority="debug"</option>
<option name="linkFields">beforeLabel</option>
</single>
</row>
</dashboard>

表示例:
splunk_setup_6-11.png
関連記事

テーマ : おすすめソフトウェア
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

米麹

筆者: 米麹
某社に勤務する SE です。
ここでは本職とは関係のない趣味的な検証情報などを書いていきます。

注意事項とお願い
記事の内容は掲載時点のもので、現在は異なる可能性があります。情報に誤りや不適切な事項があった場合には、コメントやメールフォームでご指摘下さい。
また、本サイトの情報を利用することによって生じたいかなる損害についても、筆者は責任を負いかねますのでご了承下さい。
カレンダー
07 | 2018/08 | 09
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
最新記事
月別アーカイブ
カテゴリ
全記事表示リンク

全ての記事を表示する

検索フォーム
メールフォーム

名前:
メール:
件名:
本文:

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。