Kibanaの使い方 〜グラフ化②〜【Amazon Elasticsearch Service】

2017.12.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

どうも!大阪オフィスの西村祐二です。

本ブログは下記ブログの続きになります。 (2017/12/26時点の内容となります)

Kibanaの使い方 〜グラフ化①〜【Amazon Elasticsearch Service】

前回は基礎的なグラフを作成し可視化をおこないました。 今回は違う形のグラフを作成してみたいと思います。

公式ドキュメントの内容にそって学んでいきます。

シェイクスピアの戯曲データをグラフ化

戯曲は、演劇の上演のために執筆された脚本や、上演台本のかたちで執筆された文学作品ことです。(Wikipediaより引用)

環境準備のときに取り込んだ サンプルのシェイクスピアのデータは戯曲の中のセリフの情報を構造化したデータとなっています。そこには何の作品か、話者はだれか、セリフの数などが含まれています。

各戯曲の登場人物についてグラフ化

戯曲の中にセリフのある場面がいくつかあります。戯曲に何人登場人物がいるかを作品ごとにグラフ化してみたいと思います。

▼棒グラフで使って可視化するため「Vertical Bar」を選択します。

▼インデックス定義は「shackes*」を選択します。

▼Y軸に各戯曲の登場人物の数を表示する設定を行います。 「Add metrics」を選択します。

▼Y-AxisのMetricsは

  • Aggregation:Unique Count
  • Field:speaker.keyword
  • Custom Label:登場人物数

として設定します。 「hoge.keyword」というフィールドは、フィールドを単語分割せず、全体を一つのワードとして扱うフィールドのことを指します。

▼X軸に各戯曲の名前を表示します。

X-Axisを選択し

  • Aggregation:Terms
  • Field:play_name.keyword
  • Order:Ascending
  • Custom Label:戯曲名

として設定します。 設定が完了したら「▶」をクリックし、グラフに反映させます。

このグラフから、「Two Gentlemen of Verona」が一番登場人物が少ないことがわかります。

セリフ量をグラフに追加

セリフの最大数を表示して、1人にかかる負荷が最も高い戯曲はどれかを知ることもできます。

  • Y軸の「Add Metrics」をクリックします。
  • Aggregation:Unique Count
  • Field:speech_number.keyword
  • Custom Label:セリフ量

セリフ量と登場人物数がひとつの棒に含まれるようになっているので分割しましょう。

「Metrics & Axes」をクリックし、 「stacked」->「normal」へ変更すると想定する形になりました。

これより、他の戯曲に比べて、「Love’s Labours Lost」のセリフ量が極端に多いことがわかります。

同じ要領で、話者をX軸としてセリフ量でグラフ化したり、そのセリフ量における作品の内訳なども簡単にグラフ化することができます。

アクセスログをグラフ化

環境準備のときに取り込んだ サンプルのアクセスログを用いてグラフ化していきます。

グラフを作成するためには、データがある日時を指定する必要があります。 取り込んだデータより From:「2015-05-18 00:00:00.000」 To:「2015-05-21 00:00:00.000」 としています。

国ごとのアクセス数と利用OSをグラフ化

国ごとにどれぐらいのアクセスがあるのか、やそれに付随する情報が知りたい場面があると思います。

Y軸を「国」、X軸を「アクセス数」として、グラフ化してみます。 更に、アクセスにおける、OSの割合も含めて表示します。

設定は下記になります。

  • グラフ:Vertical Bar
  • Metrics
  • Y-Axis
  • Aggregation:Count
  • Custom Label:アクセス数
  • Buckets
  • X-Axis
  • Aggregation:Terms
  • Field:geo.src.keyword
  • Order:Descending
  • Custom Label:時刻
  • Split Series
  • Sub Aggregation:Terms
  • Field:machine.os.keyword
  • Order:Descending
  • Custom Label:OS

設定より下記グラフが作成されます。 アクセス数とアクセスの多い国、上位5カ国がわかり、利用OSの割合もわかるグラフになります。 このグラフより中国(CN)からのアクセスが多いこと、利用OSはWin7が多いことがわかります。

1時間ごとのアクセス数と、どこの国からのアクセスかをグラフ化

時系列でアクセス状況を見たいときがあると思います。 簡単にグラフ化することができます。

Y軸を「日時」、X軸を「アクセス数」としてグラフを作成します。

設定は下記になります。

  • グラフ:Vertical Bar
  • Metrics
  • Y-Axis
  • Aggregation:Count
  • Custom Label:アクセス数
  • Buckets
  • X-Axis
  • Aggregation:Date Histogram
  • Field:@timestamp
  • Interval:Auto
  • Custom Label:時刻
  • Split Series
  • Sub Aggregation:Terms
  • Field:geo.src.keyword
  • Order:Descending
  • Custom Label:

設定より下記グラフが作成されます。 1時間毎のアクセス数とアクセスの国ごとの割合がわかるグラフになります。 グラフより、21:00頃にアクセス数が多いこと、インド(IN)からのアクセスが多いことがわかります。

グラフの色を変更

はじめ、設定画面などに色を変更する項目がなく「色を変更するにはどうすればいいんだ、、」と悩んだので載せておきます。 答えは簡単で、グラフの凡例のところクリックすれば変更できました。

さいごに

いかがだったでしょうか。

今回は前回とは違うグラフいくつか作成してみました。 ある程度決まった形になりますが、簡単にグラフを表示することができます。 次回は時系列データに特化したTimelionについてまとめていきたいと思います。