0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GrafanaとGraphite使用してElasticsearchインスタンスを監視

Posted at

#はじめに
この記事では、Graphiteを使用してElasticsearchインスタンスを監視し、Grafanaを介してデータを視覚化する方法について説明します。 また、カスタムアプリケーションのメトリックを監視し、それらをGrafanaの単一のダッシュボードにまとめて表示するためのGraphiteにも焦点を当てます。‍

MetricFireは、時系列メトリックを監視するためのオープンソースツールをマネージドしたサービスのHosted Graphite、Hosted StatsD、およびHosted Grafanaプラットフォームです。 これらのオープンソースソフトウェアは、MetricFireウェブアプリで直接使用でき、マネージドされているのでスケーリング、更新などのメンテナンス、プラグインの設定や面倒はありません。 ここでMetricFireの[無料デモを予約](Graphite and Elasticsearch Monitoring)+無料トライアルにサインアップして、Elasticsearchインスタンスの監視を今すぐ開始してみてください。

#Graphiteの概要
Graphiteは、メトリックを収集し、収集したデータを視覚化を作成するための人気のあるオープンソースツールです。 Carbon、Graphite web、Whisperの3つのコンポーネントで構成されています。 この記事では、Graphiteの詳細については触れません。 Graphiteの詳細については、GraphiteraとGrafanaGraphiteを使用したモニタリング:インストールとセットアップGraphiteを使用したモニタリング:アーキテクチャとコンセプトなどの記事を参照してください。

#Elasticsearchの概要
Elasticsearchは、データを検索および分析するための分散型オープンソースアプリケーションです。 その主な強力な機能は、Luceneクエリ言語に基づく全文検索エンジンです。 Elasticsearchは、非常に高速な全文検索を可能にする逆索引データ構造に基づいています。 したがって、アプリケーションやウェブサイトの検索、ロギング、ログ分析などのユースケースで広く使用されています。

#Graphite、Elasticsearch、Grafanaのセットアップ
Graphite、Elasticsearch、Grafanaのインスタンスをセットアップするために、Docker Hubで利用可能なDockerイメージを使用します。

3つの追加のDockerイメージも使用します。

  • es2graphite: このコンテナーは、Elasticsearchクラスターにクエリを実行し、ElasticsearchメトリックをGraphiteにプッシュします。

  • collectd-write-graphite: このコンテナはホストにクエリを送信し、メトリックをGraphiteにプッシュします。‍

  • dejavu: そのまま使用できるElasticsearchのインストールには、グラフィカルユーザーインターフェイスは付属していません。 dejavuは、Elasticsearch APIの上にグラフィカルユーザーインターフェイスを提供します。 このグ
    ラフィカルユーザーインターフェイスを使用して、セクションの後半でサンプルデータをインポートします。

以下は、上記のコンテナーをインスタンス化して、Graphite、Elasticsearch、およびGrafanaを使用できるようにするサンプルdocker-compose.ymlです。

version: "3"
services:
  grafana:
    image: grafana/grafana
    ports:
      - 3000:3000

  graphite-statsd:
    image: graphiteapp/docker-graphite-statsd
    ports:
      - 2003-2004:2003-2004
      - 2023-2024:2023-2024
      - 8125:8125/udp
      - 8126:8126
      - 8080:80

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.0.1
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
      - http.port=9200
      - http.cors.enabled=true
      - http.cors.allow-origin=http://localhost:1358,http://127.0.0.1:1358
      - http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
      - http.cors.allow-credentials=true
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ports:
      - "9200:9200"
      - "9300:9300"
    # elasticsearch browser
  dejavu:
    image: appbaseio/dejavu:3.2.3
    container_name: dejavu
    ports:
      - "1358:1358"
    links:
      - elasticsearch

  es2graphite:
    image: logzio/es2graphite
    environment:
      - ELASTICSEARCH_ADDR=elasticsearch
      - GRAPHITE=graphite-statsd
      - GRAPHITE_PREFIX=PROD.Elasticsearch

  collectd-write-graphite:
    image: andreasjansson/collectd-write-graphite
    environment:
      - HOST_NAME=elasticsearch
      - GRAPHITE_HOST=graphite-statsd

「docker-compose up -d」を使用してこのdocker composeスクリプトを実行すると、各コンテナーにアクセスできるようになります。

まず、http:// localhost:3000 /にアクセスして、Grafanaにアクセスできることを確認します。 資格情報admin / adminを使用して、Grafanaダッシュボードにアクセスします。

また、http:// localhost:9200にアクセスして、Elasticsearchが稼働中であることを確認できるはずです。 以下のような出力が表示されるはずです。

インストールと構成をスキップしたい場合は、MetricFireのHosted Graphiteをいつでも使用できます。 ここで無料トライアルにアクセスして確認できます。 MetricFireプラットフォームには、あらゆるデータソースからメトリックを収集するための簡単なプラグインとエージェントが用意されており、すぐに使用できるGraphiteとGrafanaがあります。

#Grafanaを使用したElasticsearchメトリクスのモニタリング
この時点で、コンテナーはElasticsearchメトリックをGraphiteにプッシュし始めました。 Grafanaを使用して、Graphiteにあるメトリックから視覚化をプロットします。 したがって、http:// localhost:3000を参照して、Elasticsearchメトリックダッシュボードを以下のようにGrafanaにインポートします。

image.png

インポートすると、GrafanaダッシュボードにElasticsearchメトリクスが表示されるはずです。

JVM / CPUおよびメモリのメトリックをホストします:

image.png

image.png

Elasticsearchのメトリクス

image.png

image.png

リアルタイムのサーチメトリクス

image.png

上記のダッシュボードに表示されるメトリックは、監視可能なもののサブセットにすぎません。 各組織には、要件に応じて監視される異なるメトリックのセットがあります。 これらのメトリックに基づいてさらに多くのGrafanaダッシュボードを作成する場合は、Grafanaアラートの設定方法とカスタムダッシュボードの作成方法について、記事「基本から詳細ダッシュボードまでのGrafanaダッシュボード」をご覧ください。

Elasticsearchで関心のあるメトリックに基づいて、他のタイプの視覚化を作成することもできます。 「[お気に入りのGrafanaダッシュボード])(https://qiita.com/MetricFire/items/6d4016e6770911773757)」の記事を見て、より高度なダッシュボードをいくつか作成してください。

#GrafanaでElasticsearchデータを視覚化
これまで、データをGraphiteにプッシュしてElasticsearchデータを監視する方法を見てきました。 次は、ElasticsearchにあるデータをGrafanaで視覚化する方法を見ていきます。 Grafanaの非常に強力な機能として、アプリケーションデータを視覚化出来ます。

たとえば、Elasticsearch内に毎日のトランザクションデータを格納している場合、1日あたりのトランザクションを数秒で視覚化できます。これには、dejavuを使用してサンプルデータセットをElasticsearchインスタンスにインポートし、GrafanaをElasticsearchデータソースに接続するだけです。

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

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

Elasticサーバーからlogs.jsonlファイルをダウンロード:

curl -O https://download.elastic.co/demos/kibana/gettingstarted/7.x/logs.jsonl.gz

ファイルをガンジップ:

gunzip logs.jsonl.gz

最後に、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インデックスに接続することにより、データの負荷を確認できます。

image.png

次に、ElasticsearchクラスターをデータソースとしてGrafanaに追加し、そこにあるデータの視覚化を作成します。

http:// localhost:3000でGrafanaを参照し、以下に示すようにタイプElasticsearchのデータソースを追加します。

image.png

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

image.png

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

image.png

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

image.png

#まとめ
この記事では、GraphiteとGrafanaを使用してElasticsearchインスタンスを監視する方法について説明しました。 GrafanaのElasticsearch内にあるアプリケーションデータを視覚化する方法も確認しました。

MetricFireはまた、ユーザーがアプリケーションの構築に集中でき、MetricFireにメトリックのスケーラビリティとストレージの管理を任せることができるように、他の多くの利点とともに本番環境対応のHosted GraphiteとHosted Grafanaも提供します。

MetricFire無料トライアルにサインアップして、Graphiteをセットアップし、Grafanaダッシュボードを今すぐ作成してください。 デモを予約して、モニタリングスタックを最適に設定する方法についてMetricFireチームに相談することもできます。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?