Elasticsearch監視

cluster status, nodes and shards details, JVM statsなどのメトリクス情報を把握し、Elasticsearchクラスターパフォーマンスを監視します。

Elasticsearchプラグインをインストールおよび設定し、オープンソースの分散文書ストアと検索エンジンを監視します。Elasticsearchは、Javaの全文検索エンジンであるApache Luceneに大きく依存しています。Elasticsearch環境のパフォーマンスを監視し、作業クラスターの内部を常に最新の状態に保ちます。

このページでは、Elasticsearch Webクラスターのパフォーマンス、可用性、使用統計を詳細に可視化するための、Elasticsearchプラグインと監視メトリクスを設定する方法について説明します。

 

Elasticsearchパフォーマンス監視メトリクス:

幅広いメトリクスを通して、注意を要する危険なエラー通知を受け取ります。メトリクスのグラフで予期せぬ傾向を追跡し、迅速にトラブルシューティングを行います。サポートしているメトリクスは以下の通りです:

Active shards

「active_shards」メトリクスは、クラスター内のプライマリシャードの数を表示します。これはすべてのインデックスの合計です。

Intializing shards

「initializing_shards」メトリクスは、新しく作成したシャードの数を表示します。

Number of nodes/data nodes

「number_of_nodes」および「number_of_data_nodes」メトリクスは、クラスター内のノード/データノードの数をそれぞれ表示します。データノードはデータを保持しており、CRUD、検索、集約などのデータ関連操作を行います。

Relocating shards

「relocating_shards」メトリクスは、現在ノードからノードへ移動中のシャード数を表示します。

Active primary shards

「active_primary_shards」メトリクスは、レプリカシャードを含むすべてのインデックス内のシャード合計数を表示します。

Unassigned shards

マスターノードが、クラスター内のノードへシャード割り当て始めると、シャードが初期化から未割り当て状態へと移行します。「unassigned_shards」メトリクスは、クラスター状態にありますが、クラスター自体にはありません。未割り当てステータスに長時間いると、クラスターが不安定になる可能性があります。

Cluster status

クラスターのステータスは、赤:0、緑:1、黄:2で表されます。緑は、すべてのプライマリシャードとレプリカシャードが割り当てられていることを示します。黄色は、少なくとも1つのレプリカシャードが未割り当てまたは不足していることを示します。赤は、1つ以上のプライマリシャードが未割り当て状態であること示します。

JVM metrics

ElasticsearchはJava仮想マシン(JVM)上で実行されます。JVMヒープは、ノード上でのRAM使用手段の1つです。「jvm_mem_pool_old_used_perc」メトリクスは、ガベージコレクション(GC)内にある旧世代ノードの各JVMメモリ平均使用率(単位:パーセンテージ)を表示します。「jvm_gc_old_coll_time」および「jvm_gc_old_coll_count」メトリクスは、GC時間(単位:ミリ秒)と、最終ポーリング(デフォルト:5分)以降の旧世代ノードの合計数をそれぞれ表示します。

Memory and CPU usage

Elasticsearchはインストールされているマシンに依存するため、CPUおよびメモリの使用量を監視することが重要です。各ノードタイプのCPU使用率を監視し、ノード間のワークロードの分散を調査します。空き(mem_free)、使用済み(mem_used)、共有(shared_mem)、常駐(resident_mem)、合計仮想メモリ(virtual_mem)などのメトリクスは、メモリ使用量を監視するので、クラスターへの負荷および影響の把握に役立ちます。

 

手順

  • Site24x7アカウントにログインします。アカウントをお持ちでない場合は、こちら からサインアップへお進みください。
  • Site24x7 Linuxエージェント の最新バージョンをダウンロードおよびインストールします。
  • Elasticsearchプラグインをインストールします。
  • エージェントはElasticsearchプラグインを実行し、Site24x7サーバーにデータをプッシュします。

前提条件:

  • サーバーにElasticsearchがインストールされ、稼働していることを確認します。
  • Elasticsearchプラグインをインストールしている間、[elasticsearch]ディレクトリーに空のJSONファイル[counter.json]を作成します。

Elasticsearchプラグインのインストール:

sudo mkdir elasticsearch
または
sudo mkdir elasticsearchcluster
または
sudo mkdir elasticsearchnodes
sudo wget https://raw.githubusercontent.com/site24x7/plugins/master/elasticsearch/elasticsearch.py
または
sudo wget https://raw.githubusercontent.com/site24x7/plugins/master/elasticsearchcluster/elasticsearchcluster.py
または
sudo wget https://raw.githubusercontent.com/site24x7/plugins/master/elasticsearchnodes/elasticsearchnodes.py
sudo /etc/init.d/site24x7monagent restart
  • Site24x7 Linuxエージェントプラグインディレクトリー[/opt/site24x7/monagent/plugins/]で、それぞれ[elasticsearch]、[elasticsearchcluster]、[elasticsearchnodes]という名前のディレクトリーを作成します。
  • Only for the elasticsearch plugin, create an empty JSON file, "counter.json" in the path - /opt/site24x7/monagent/plugins/elasticsearch
  • GitHubリポジトリ―から elasticsearch.py, elasticsearchcluster.py or the elasticsearchnodes.py をダウンロードし [elasticsearch]、[elasticsearchcluster]、[elasticsearchnodes]ディレクトリーにそれぞれ配置します。
  • プラグインスクリプトで指定されているデフォルトのpythonパスは、[ #!/usr/bin/python]です。代替えのPythonパスを作成する場合は、shebang(シバン)文字[#!]が前に付いた既存パスを置き換えます。
  • HOST, USERNAME, PORT, PASSWORDの値を変更し、設定と一致させます。デフォルトで、プロキシは設定されていません。必要に応じてプロキシ設定を変更します。
  • サーバーエージェントは、Site24x7 Webクライアントの[プラグイン]タブで、Elasticsearchクラスターのパフォーマンス統計をリポートします。プラグインがSite24x7 Webクライアントに表示されない場合は、エージェントを再起動します。

メトリクスを追加で監視:

  • メトリクスを追加で監視するには、[elasticsearch.py]、[elasticsearchcluster.py]、[elasticsearchnodes.py]ファイルを編集し、監視が必要なメトリクスを新しく追加します
  • 新しく追加されたメトリクスを表示するには、これらファイルのプラグインバージョン値をインクリメントします(例:デフォルトのプラグインバージョンをPLUGIN_VERSION = 「1」から PLUGIN_VERSION = 「2」に変更)。
 

関連プラグイン:

  • ActiveMQプラグイン - Apache ActiveMQインスタンスのパフォーマンスメトリクスを監視します。
  • Gearmanプラグイン - Gearmanジョブサーバーのパフォーマンスメトリクスを監視します。
  • GlassFishプラグイン - GlassFishサーバーのパフォーマンスを分析します。
  • VoltDBプラグイン - VoltDBデータベースのレスポンスタイムを監視します。
  • Out-of-the-boxプラグイン - 豊富な連携リストでアプリケーション全体を監視します。
  • カスタムプラグインの作成 – カスタム Linux および Windows プラグインを作成し、カスタム属性を監視します。