LoginSignup
2
3

More than 3 years have passed since last update.

【徹底解説】 GrafanaをElasticsearchに統合する方法

Last updated at Posted at 2020-04-20

5dd7953812a2f01e8968f5b7_Grafana and Elasticsearch.jpg

目次

1.はじめに
      1.1 Grafana
      1.2 Elasticsearch
      1.3 GrafanaとElasticsearchの融合
2.セットアップ
3.まとめ

1.はじめに

1.1 Grafana

Grafanaは非常に用途の広い視覚化(グラフ化)ツールです。 さまざまなデータソースからデータを読み取り、グラフ、ゲージ、世界地図、ヒートマップなど、さまざまな視覚化オプションでプロットできます。 MetricFire無料トライアルでいつでもお試しください。

1.2 Elasticsearch

Elasticsearchは、データを分析および検索するためのオープンソースの分散データストアです。 Elasticsearchは、JSONベースのドキュメント構造を使用して、データを格納およびインデックス付けします。 これにより、Inverted Indexと呼ばれるデータ構造を使用して、格納されたデータの非常に高速な検索を可能にします。 多くの企業がElasticsearchを使用して、データベース全体の検索を強化しています。

1.3 GrafanaとElasticsearch融合

Elasticsearchはイベントデータとメトリクスを格納するため、それをGrafanaで視覚化するということに関して言えばElasticsearchとGrafanaの相性は抜群です。

この記事では、GrafanaとElasticsearchインスタンスを統合するプロセスを段階的に説明し、いくつかのクエリを実行していく過程をお見せします。

2.セットアップ

以下の公式のDockerイメージを使用して、GrafanaとElasticsearchのテスト環境をセットアップしていきます。

https://hub.docker.com/r/grafana/grafana/
https://hub.docker.com/_/elasticsearch

Grafanaは視覚化に最適なツールですが、Elasticsearchには、すぐにブラウザでデータを表示するためのツールは付属していないため、Grafanaを使用してElasticsearchにあるデータを視覚化するには、追加のツールが必要になります。 RESTベースのインターフェースを使用してデータと繋げることが必要となりますので、最初のステップはElasticsearchのWeb UIを取得することです。

ElasticsearchでWebインターフェースを取得するには、Dejavuと呼ばれるオープンソースのElasticsearch UIを使用します。 そのDockerイメージは次の場所にあります。

https://hub.docker.com/r/appbaseio/dejavu/

以下の写真は、Grafana、Elasticsearch、Dejavuを起動する非常にシンプルなdocker-composeファイルです。

https://gist.github.com/denshirenji/54ede2907f3ac9d62d4e57d5f9b89b36#file-docker-compose-file-to-start-grafana-elasticsearch-dejavu-yaml

docker-compose up -dを使用してこのdocker-composeファイルを実行した後、http:// localhost:9200にアクセスして、Elasticsearchが稼働していることを確認します。 出力は次のようになります。
5dd7956381d3e9fa63e96df7_J2at7oPO5ITqBjakcyBTEliYRPEJXP42odUK3hGrsUOmpqWC3_TVLr1F0HjAjUncQoG7Iwcyus3FXpnfBx2cGcF6eobGfpEj-f2mo5yDLvX8kIV5PDeLM2UMQdJ-v7WXQRlq1VDx.png

また、http:// localhost:3000にアクセスして、Grafanaが稼働していることを確認します。 デフォルトの資格情報はadmin/adminです。

5dd79563b9c85c3a4f7d029a_XsaixeZJNj6rP_-M_PZ6lqBp42Au1lra1zS01FTOgFiQqap0ZjV7fIx5OOyOUMi6AP5O2T0UOh_tmfeX0E0aLAaHtm4RcKTu1YAkPgjmMe80wiQ_hz-fknYY5K6lp7lLxFnk2VwO.png

http:// localhost:1358にアクセスすると、Dejavuのインターフェースが表示されます。
5dd7956312a2f0487968f5dc_SRUX4sYUGBuLbxAot8WxQCkx8ha9iDRkQM6KCVJb5e6L_HQf3vT6qDgA3Doww0DMxyZ6q1AOT18kHOMGHReyEM8uBV_sBl_yfMJdp1hpmeLVS3eV2a51ZOofEt4pKnCN1BgN4oym.jpeg

次に、サンプルデータをElasticsearchにインポートします。 Elasticsearchの公式サイトの手順に従って、logs.jsonデータをElasticsearchに読み込みます。

具体的には、次のコマンドを実行します。

  1. エラスティックサーバーからlogs.jsonlファイルをダウンロードします。

      curl -O https://download.elastic.co/demos/kibana/gettingstarted/7.x/logs.jsonl.gz
    
  2. ファイルを開きます。

      gunzip logs.jsonl.gz
    
  3. 最後に、Elasticsearchインスタンスにアップロードします。

      curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/_bulk?pretty' --data-binary @logs.jsonl
    

Dejavu UIをhttp://127.0.0.1:1358およびlogstash-2015.05.18インデックスに接続することにより、データのロードを確認できます。

5dd795633f3c6904de5ff449_x0gsvL8FBDoVfylg2uoieYZsISRx3o6rPxsS9_vWtRCtO_9XqWHZmBOvLLqcvBV_-nTvmpNuQEOblNmiIQmUbbP4LkgGdkAvaavQHohFdPJiA-XlKtFSaxRvuWOXE7HA_rVDL0XJ.png

さて、ここから楽しい部分です。 ElasticsearchデータソースをGrafanaに接続し、その上にビジュアライゼーションを作成していきます。
まずは、http:// localhost:3000でGrafanaにアクセスし、Elasticsearchタイプのデータソースを追加します。

注:この記事で説明されているようにdockerを使用している場合、URLはhttp:// elasticsearch:9200になります。 これは、ブラウザーのフロントエンドではなく、バックエンド(アクセス:サーバー)からGrafanaにElasticsearchに接続させるためです。 Grafanaコンテナーの場合、Elasticsearchの場所はhttp:// elasticsearch:9200であり、予想どおりhttp://127.0.0.1:9200ではありません。

バージョンは7.0+であり、時間フィールド名を@timestampとして定義します。

5dd79563be2670a0912e4450_xyi5KvhrKLCSQGICcxKjTfoHSFYd5xfj9Wvh_N2fXiQZSJ9qM3NVjUdBWxL6btV8PC3obT3Mm6fbFLhtkWGshhzEeHjCphzQzla_-YaZ27-_UJ946CUwhCmLF7mX549PkW14pzvN.png

次に、単純なGrafanaダッシュボードを作成して、シンプルなグラフを追加します。 これはかなり簡単です。 トリッキーな部分は、データソースの構成とクエリの提供です。

ログデータから平均マシンRAMを視覚化します。 クエリドロップダウンボックスで、データソースとしてElasticsearchを選択して、次に示すように、平均メトリックとしてmachine.ramを使用します。

5dd795634e896ac62b4884b3_znQ6WdKPvRpJV_I22MooyluU5TO7GntiN1aWjqelfdqNskNMXGiDPjn2B9YQsLpnFOAxuYPOJtbT7Sp_B00jJmILqXPH4JxhUD3ADhdTyI78zL8xNhgUn8nPhVJmV02k7SoVp0Zt.png

視覚化を保存すると、右上のボックスでカスタムの時間範囲が選択されます。 これは、私たちの2015年5月のログデータが含まれているためです。この時間範囲に構成すると、次の視覚化が得られます。

5dd795634e896a59e84884b4_1gH6P6_1ON2Uij5zlOzzfQi1RVbgka3BDOaPof8YBnGNPQ1oRZ64-xPQuXRNr4EBcIzLFtBg5BfZgZEBTSCYtDC-4MzURpjySpcVUPhbVIBQNF0GbUhN8BMkalkWrNsOejb7durU.png

同様に、Average Bytesの視覚化を追加すると、Grafanaダッシュボードは次のようになります。

5dd79564be2670534c2e4451_6LRPyK0leu6CjHBo2mjon6kRvz8EBcmhAFPiWxEnPd0J5itjTD5mFscMNFwuGPQNLWmbnSgjB2ZKRwezHY0LfTKahfV2j7VQn3EoVRxEQeb2zi4Yp-caN7wVP8iLPK3BvgOSk16z.png

3. まとめ

GrafanaがElasticsearchデータソースにシームレスに接続し、クエリを通じて優れた視覚化を提供することを確認しました。 今すぐMetricFire無料トライアルに参加して、Elasticsearchデータの送信を開始してください。 また、さらに詳しく知りたいという方は、デモを予約して、最適な監視ソリューションについて直接お問い合わせください。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3