Splunkのダッシュボード
連続Splunk。バージョンは7.1.1です。
今回はSplunkのダッシュボード機能を使用してみます。ダッシュボードとは何かと説明せよと言われると少し困りますが、とにかくグラフや表等を1画面に集約してサマリした画面です。
ダッシュボードを作る前に、ちょっと小話。唐突ですがダッシュボード機能を使えることが最終目的ではありません。Splunkにログを集約することで、下記の3個を実現することが目的です。
- ITインフラ稼働状況について業務上報告が必要な事項を自動整形、自動出力
- セキュリティインシデント時の調査工数を低減
- 定義した閾値に到達するようなログを検知した場合に必要な処理を自動化
ダッシュボードは1つ目の目的を実現するための手段の一つと考えています。ダッシュボードの作り方は正直Splunkの道具としての使い方であって、何をダッシュボードに表示させれば良いか考えることに比べると大した難易度ではない、はずです。言いたいことを書き終えたので早速ダッシュボード作成に入りましょう。
ダッシュボードの作成
検索画面の上部にダッシュボードというメニューがあります。
以下のようにダッシュボードができあがりました。
以上完了、というわけではなく、内容が何もないダッシュボードが出来上がっただけです。ここは画面の指示の通り、同じ画面に表示されている「パネルの追加」からダッシュボードに表示するパネル(と呼ぶらしいです)を設定します。例えばこんな画面があるようです。
今回は円グラフ(Pie Chart)を選択し、前回の記事で作成した円グラフをダッシュボードに追加することにします。サーチ文字列に「sourcetype="squid-test-01" | chart count over Squid_HTTP_DstURL by source 」を入力します。細かい内容は前回の記事を参照して下さい。
realizeznsg.hatenablog.com円グラフをダッシュボードに追加すると、Squid Test Dashboardはすっからかんの状態から以下のようになりました。
次はこの円グラフの下にHTTPステータスコードごとの出現回数をまとめた表を表示させます。先程と同様にパネルの追加からStatistics Tableを選び、サーチ文字列は以下のようにします。
表示は下記のようになります。
次はsquid01.logに含まれるログの件数を単純に表示させます。やはり同様にパネルの追加からSingle Valueを選び、サーチ文字列は単純にソースを指定した上でchart countにパイプで渡します。表示は下記のようになります。
入力フォームの作成
閲覧者に入力させ、ダッシュボードの内容をダイナミックに変えるようなギミックを作成できます。今回は宛先URLを入力すると、そのURLへのアクセス回数(マッチするログの数)を先程のSingle Valueに表示させるような仕組みを作ってみます。
パネルの追加の隣にある入力の追加を選びます。以下のようなメニューが表示されるのでテキストを選びます。
するとすぐに入力フォームが作成されます。鉛筆ボタンからフォームの設定ができます。
以下のように設定します。
トークンはこのフォームに入力された内容が格納される変数名です。デフォルトはこのトークンのデフォルト値、初期値はこのフォームが読み込まれた時に入力される値です。また、今回はフォームに入力されたら即座にアクセス数の表示を変更させたいので、変更時にサーチにチェックを入れます。
続いてアクセス数のパネルのサーチコマンドを変更します。作成済みのパネルの設定変更は虫眼鏡アイコンのサーチの編集から実行できます。今回は下記のように変更します。
フォームに入力された文字列はInput_Squid_DstURLに格納され、フィールド「Squid_HTTP_DstURL」にマッチするログのカウントを行うようになります。Input_Squid_DstURLを変数として使用する場合は両端を「$」で囲みます。
設定ができたらwww.bing.comにポート443でアクセスした件数を数えてみましょう。フォームにwww.bing.com:443と入力します。
アクセス数が変化しました。32回のアクセスがあったことが分かります。当然ながら普通にサーチコマンドで検索した結果のログ数と一致します。
ダッシュボードへのアクセス
デフォルト設定では、作成したダッシュボードへのアクセスは結構手間がかかります。よく使うダッシュボードはSplunkのトップページに表示させてすぐに見られるようにした方が良いでしょう。
Splunkのトップページにこんなボタンがあります。
先程作ったSquid Test Dashboardを指定します。
シンプルXMLのダッシュボードのみ、というよくわからない制限が記載されています。何の事かよくわからないので今度調べようと思います。
するとトップページにダッシュボードが表示されます。
んで
やってることはしょうもないですが、だんだん形になってきた感があります。次回はログの入力方法に立ち返った記事を書きます。しばらく使っているサンプルログはある瞬間に取ってきたSquidのaccess.logを手動で加工してテキストファイルとして保存したものという、あまり頭の良くない感じでやってきました。これからはSplunkにはリモートホストのログを取得する方法が色々と用意されているので、それを活用していきます。