ELK Stackでシステム監視 kibanaでVisualizeとDashboard作成のキホンのキ

前々回はkibanaでSearchオブジェクトを作成したので、今回はそれを利用してVisualizeオブジェクトを作成し、ダッシュボードにグラフを設置する。今回は推移を見るためのグラフとして「エリアチャート」(だけ)を使用する。

Visualize作成

kibanaでVisualize作成 1
画面1:
左列のメニューから[Visualize]を選択。
初めてだと存在しないが、作成済みのVisualizeがリスト表示される。上部の(新規追加)を押す。

kibanaでVisualize作成 2
画面2:
利用できるグラフ等のタイプがリスト表示される。今回はエリアチャートを使用したいので[ Area chart]をクリックする。

kibanaでVisualize作成 3
画面3:
作成済みのSearchオブジェクトがリスト表示されるのでグラフ化したいのを1つ選んでクリックする。今回はcollectdで取得したホストのメモリ使用状況のSearchオブジェクトを選択する。

kibanaでVisualize作成 4
画面4:
エリアチャートなのでX軸とY軸で考える。まずY軸方向に何を入れるかということで初期値で存在するY-Axisの左横の(右向き三角)を押して開く。

kibanaでSearch確認 1
画面5:
(実際にはここでVisualize画面から離れてSearch画面を開くと言うことではないが、)
グラフのX軸とY軸に何を入れるかが重要なので、メモリのSearchオブジェクトの構成を確認。
推移を見るグラフを作りたいのでX軸は時間にしたい。時間になるものは@timestampが適当。
Y軸は「メモリの使用量」(アバウト)の値なのでvalueが適当。
ただし、このSearchオブジェクトには実際には「メモリの使用量」(?)を抽出しているのではなく、メモリのfree, active, inactive, wired, cacheの各値が入っている。それらの種類がtype_instance。
だから5種類のデータが含まれている。

kibanaでVisualize作成 5
画面6:
Y-AxisにはY軸側の設定を入れる。
上で確認したようにY軸方向は「値」にしたい。グラフにはその値の何を使いたいか「最大」「最小」「平均」その他を選択する。
今回は「平均」にしたいのでAggregationをAverageにした。FieldはY軸方向に何を表示したいかなので「値」であるvalue。
必ず先にAggregationを指定してからFieldを指定する。Aggregationを変更した場合はFieldが未選択になるので再度指定しなければならない。
Y軸の設定をしただけではグラフとして成立しないのでX軸側の指定を行う。
bucketsでX-Axisをクリック。

kibanaでVisualize作成 6
画面7:
X-Axisが表示されるのでAggregationをプルダウンメニューから選択する。
今回はX軸を時間軸にするので[Date Histogram]を選択する。

kibanaでVisualize作成 7
画面8:
Fieldには時間軸となるものを指定するので画面5で確認した@timestampを指定する。
インターバルは「分」「時間」「日」その他を選択できるけどAutoでも良い。
上の画像ではCustom Label欄を空白にしているが、X軸の下に表示する文字列の指定。「時間」でも何でも良いので書いといた方が良いかも。でないと未指定では例えば「@timestamp per 5 minute」などと表示されることになる。

これだけだとメモリのfree, active, inactive, wired, cacheの全て値が1つのグラフに入ってわけがわからないので各type_instanceに分離してやる。そこで [Add sub-buckets]をクリック。

kibanaでVisualize作成 8
画面9:
Split Areaは1つのチャートに複数のグラフ。Split Chartはチャートを複数に分けてそれぞれ1グラフにするもの。
今回は1つのチャートに複数の折れ線グラフを描きたい。そこで[Split Area]をクリック。

kibanaでVisualize作成 9
画面10:
Split Areaが新しく表示される。
今回はSub AggregationのブルダウンメニューでTermsを選択する。

kibanaでVisualize作成 10
画面11:
Field欄は「何によって分離するか」を選ぶので画面5で見たようにメモリのfree, active, inactive, wired, cacheという種類があるtype_instanceを指定したい。プルダウンメニューで選べるのはtype_instace.keyword。
Order byとかOrderは何を何順というものなので好みで。Sizeは分離した項目を幾つまで表示するかというもので重要なのに結構指定し忘れやすい。今回の例では元々type_instanceに含まれるのが5種類なのでSizeの初期値5でぴったりだが、5種類以上含まれるのに初期値のままにしているとOrderで指定された上位5項目しか表示されない。

kibanaでVisualize作成 11
画面12:
ここまでで一応全て指定したのでグラフを描いてみる。上部の(グラフ描画)を押す。この記事ではこのタイミングで押すとしているが、X軸Y軸共に最低1つ指定してグラフとして成立するようになった時点でグラフは描ける。グラフ表示は自動更新しないので指定を変更して確認したい度にを押す。
グラフの色が気に入らなければグラフの凡例部分をクリックすると上の画像の上部右端部分のように色見本から色を選択可能。
思ったとおりに出来た(または作成途中で一時的にキープ)ということでこのVisualizeを保存するには上部の[Save]をクリック。

kibanaでVisualize作成 12
画面13:
新しいVisualizeオブジェクトとして名前を付けて[Save]を押す。

collectdで集めたデータはこれと同じ方法でグラフ化するのが多いのでこれを憶えればいろいろ対応できる。
次に、違うパターンとしてcollectdで収集したロードアベレージのデータをグラフ化する。

kibanaでSearch確認 2
画面14:
上の画像は作成済みのロードアベレージSearchオブジェクトで抽出したデータ。
前述のメモリと同じく推移を見るグラフを作りたいのでX軸は時間にしたい。時間になるものは@timestampが適当。(これは同じ)
Y軸が前述のメモリとは違ってlongterm, midterm, shorttermというフィールド名があってそれに値が入っている。グラフのY値は「値」にするので今回はY軸方向はlongterm, midterm, shorttermの3つとなる。

kibanaでVisualize作成 13
画面15:
過程は大幅に省略したが、Y-AxisでFieldにlongtermを選択する、[Add metrics]を押してFieldにmidtermを選択する、[Add metrics]を押してFieldにshorttermを選択する、ということを行った。
X軸側はAggregationでDate Histogramを選択し、Fieldで@timestampを選択、ということをした。つまり時間軸を作っただけ。

kibanaでVisualize作成 14
画面16:
で、先に作ったメモリとロードアベレージのグラフで何が最も違うかというと、メモリの方は「内訳」なので各値を積み重ねるとおおよそメモリの総量になる、ロードアベレージの方はそれぞれ独立した値なので各値を積み重ねちゃダメということ。
kibanaのエリアチャートの初期値は「積み重ねる」(Stacked)なのでロードアベレージでは変更してやらないといけない。
上の方に[Options]タブがあるのでそれをクリック。
Chart Modeをstackedからoverlapに変更。
その他は好みで。例えば上の画像ではグラフの線をカクカクの折れ線ではなく曲線のsmoothedに変更している。グラフのY軸の最大値・最小値や凡例の位置もこの画面で。

Dashboard作成

kibanaでDashboard作成 1
画面17:
左メニューからDashboardをクリック。
これまでにDashboardを1つも作成していないなら[+ Create a dashboard]ボタンがあるのでそれを押す。(上の画像)
既に1つ以上のDashboardを作成しているならDashboardリストが表示されて[+ Create a dashboard]ボタンが存在しないので上の方にある (新規作成)を押す。

kibanaでDashboard作成 2
画面18:
新規作成したダッシュボードは当然空なのでemptyであるという表示がある筈。
上部の[Add]を押して部品(Visualizeオブジェクト等)を追加することになる。

kibanaでDashboard作成 3
画面19:
今回はグラフを追加するので作成済みのVisualizeオブジェクトをリストから選択する。上の画像ではprocessを選択しているが前述のメモリオブジェクトと似たようなもの。リストのオブジェクトをクリックすると開いているダッシュボードにそのグラフの枠が追加されるので好きなだけポチポチする。

kibanaでDashboard作成 4
画面20:
この画像ではメモリとロードアベレージのグラフを追加してグラフを右に広げた。グラフの大きさや位置は変更可能。
新規作成時はもちろんだけどダッシュボードに変更を加えたら上部の[Save]を押して保存する。

kibanaでDashboard作成 5
画面21:
ダッシュボードの名前を付けて[Save]を押す。

違うダッシュボードを表示するときは左上の赤いkibanaロゴの右横のDashboardをクリック。

Visualize, Dashboardオブジェクトの管理

kibanaでVisualize作成 15
画面17:
VisualizeとDashboardもSearchオブジェクトと同様にManagementから管理できる。
Saved Objectsを選択してから[Dashboards] [Seaches] [Visualizations]のタブを選択して中のリストから操作する。
リストのオブジェクト名をクリックするとソースの編集画面になる。この記事のレベルの人だと途方にくれるやつ。
そこで、リスト表示のオブジェクト名にマウスカーソルを合わせてその右横に表示される(目玉)アイコンをクリックすると、ここまでの記事で触ってた画面Search, Visualize, Dashboardのビジュアル画面で表示される。

ここまでkibanaのキホンのキだけで、小学2年の算数でグラフの作り方を習ってれば出来る程度の内容。Excelで初めて簡単な表を単純なグラフにするのと同様ツマランっちゃつまらんけど、これだけでもできるようになるといろいろやってみたいっていう意欲が湧くよね。

関連記事: