【初心者向け】Elastic StackのKibanaを触ってみよう

2020.11.30

【初心者向け】Elastic Stackについて知ろうで紹介したElasticsearchのUIであるKibanaでよく使う画面を見てみたいと思います。

Elasticsearch, データの準備

KibanaはAmazon Elasticsearch Serviceを立ち上げると自動的に付随してくるので、【初心者向け】Elastic StackのElasticsearchについて知ろうの記事を参考に新しくElasticsearchドメインを立ち上げ、サンプルデータの投入までを行ってください。

Kibanaへのアクセス

AWSコンソールから立ち上げたElasticsearchドメインの概要欄を確認すると「Kibana」の欄にアクセスURLが記載されているのでそこにアクセスします。

Discover

画面左上のメニューからDiscoverを選択することで遷移できます。
Elasticsearchに登録されている各Indexのドキュメントに対して、Kibana Query Languageを用いて簡単に検索を行うことができる画面となっており、データの確認等によく利用されます。

まず、画面左上の+ Add fileterボタンの下あたりにIndexの選択プルダウンがあるのでそこから検索対象としたいIndex(今回はkibana_sample_data_logs)を選択します。

次に、画面左上のカレンダーアイコンが表示されている箇所を選択し検索対象となる期間(今回はLast 24 hours)を選択します。

この時点で画面上には各ドキュメントの@timestampでソートされた検索結果が表示されます。

次に、検索条件を指定して絞り込みを行ってみましょう。 Discoverでは、画面上部のSearch欄にKibana Query Languageと呼ばれる構文で検索条件を指定します。

例えば、responseフィールドが200のドキュメントを検索するには、response: 200と入力します。

正しく指定できていれば一覧にresponseフィールドが200のレコードがハイライトが行われた状態で表示されます。

次に複数条件を指定してみましょう。responseフィールドが200かつhostフィールドがartifacts.elastic.coのレコードを検索するには、response: 200 and host: "artifacts.elastic.co"と入力します。

正しく指定できていれば先ほどと同様にレコードがハイライトされた状態で表示されます。

このようにDiscoverでは、Kibana Query Languageを用いて簡単にElasticsearchのドキュメントを検索することが可能です。

Dashboard

画面左上のメニューからDashboardを選択することで遷移できます。
KibanaのVisualize機能を用いて作成したグラフをまとめて表示することができる画面となっており、一度に様々な統計情報を確認したい場合によく利用されます。

サンプルデータの取り込みができている場合は、サンプルデータとともにDashboardも取り込まれているので、以下の三つのDashboardが一覧に表示されます。

  • [Flights] Global Flight Dashboard

  • [Logs] Web Traffic

  • [eCommerce] Revenue Dashboard

それぞれのDashboardを見ると、先ほど取り込んだサンプルデータに対する円グラフや折れ線グラフ、散布図、Heat Map、地図表示、検索結果の一覧表示、といった様々な可視化結果が確認できます。 これらはそれぞれKibanaのVisualize機能で作成されたものになります。Indexに対してどのような設定で作成されたものなのかは、画面左上のメニューからVisualizeを選択して任意のVisualizationを選択することで 確認可能です。それらを確認することにより、Kibanaでどのような可視化が行えるのかを理解することができます。

Visualizeの作成方法については今回の記事では割愛させていただきます。

Dev Tools (Console)

画面左上のメニューからDev Toolsを選択することで遷移できます。
Kibanaの画面上からElasticsearchへのAPIリクエストを簡単に作成できる画面となっており、開発する際の動作確認やノード、インデックスの状態チェック、Mapping定義の確認といった多岐に渡る用途で利用されます。

例えば、【初心者向け】Elastic Stackについて知ろうでも紹介した、responseフィールドが200かつagentフィールドにWindowsが含まれているドキュメントをkibana_sample_data_logsから検索したい場合は以下のように記載して実行します。

このDev Toolsは、各APIの名称、Query DSLを組み立てる際のインデックス名やフィールド名のサジェスト機能がありとても便利です。

ElasticsearchのREST APIを試す場合は、curlコマンドではなくこちらを利用しましょう。

おわりに

Kibanaには他にも様々な機能が存在しますが、利用頻度の高いであろう機能について紹介しました。 Kibanaを用いてどのようにElasticsearchのデータを検索,可視化を行うのかについてすこしイメージを掴めたのではないかと思います。

この記事でElastic Stackを触ったことがないという方が少しでも興味を持っていただければ幸いです。

以上になります。ドキュメントは英語で機能も膨大ですがみなさんも是非触ってみてください。