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プラグインのインストール:
- 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 プラグインを作成し、カスタム属性を監視します。