記事ディレクトリ
1 はじめに
最近、取り組んでいるプロジェクトでElasticsearchを使用しています。社内に開発とテスト用にサービスをインストールしている運用保守の同僚がいます。自宅でテストしたいのですが、利用できるサービスがありません。これは埃をかぶったノートブックで、ダウンロードとインストールから始まり、Windows システムでクラスターを構築します。
2. ダウンロード
公式 Web サイトからWindows バージョンをダウンロードします。私が選択したバージョンは7.17.12です。右側の[ダウンロード]ボタンをクリックし
、[WINDOWS]を選択してダウンロードします。ファイル サイズは約298M
です。ダウンロードが完了したら、圧縮パッケージを解凍します。Dドライブとディレクトリに保存します
3. 環境設備
3.1 jdk環境変数を設定する
既に jdk8 以降を構成している場合は無視してください。まだ構成していない場合は、以下のステップバイステップの構成に従ってください。設定を開き、詳細なシステム設定を見つけて、環境設定をクリックし、
新規ボタンをクリックしてくださいシステム変数の下に、変数名ES_JAVA_HOMEを追加します。変数値は es ディレクトリ jdk ディレクトリにあります (保存している es ディレクトリに従って入力します)。
3.2 JVM 設定の変更
es ルート ディレクトリの下にあるconfigディレクトリ(es 設定を保存する場所)を見つけ、jvm.options.dディレクトリに入り、ファイルjvm.optionsを作成します(ファイル名はオプションですが、サフィックスは .options である必要があります) 、それ以外の場合は無効です)、ファイルの内容:
-Xms512m
-Xmx512m
私のラップトップのメモリは比較的小さく、メモリ サイズは4Gしかないため、小さなポイントを設定しないとクラスターを構築することは不可能です。
4. スタンドアロン構成
4.1 スタンドアロン起動
cmd を開き、es ルート ディレクトリに移動し、起動コマンドを実行します。
.\bin\elasticsearch.bat
cmd のコンソールに注目してください。起動に成功すると、次のログが出力されます。
[2023-08-07T21:12:28,966][INFO ][oecraAllocationService] [DESKTOP-ITBV32J] クラスターの健全性ステータスが [黄色] から [緑色] に変更されました (理由: [シャードが開始されました [[.ds-.logs-deprecation. elasticsearch-default-2023.08.07-000001][0]]])。
4.2 スタンドアロン検証
ブラウザを開いてhttp://localhost:9200/
と入力して es ディレクトリに戻ると、データとログというさらに 2 つのフォルダーがあり、1 つはデータの保存用で、もう 1 つはログの保存用です
。コマンドウィンドウを直接閉じるか、crtl+c の組み合わせコマンドを実行します。
5. クラスタの構成と起動
(前回のシングルノード起動を停止します)
要件: 3 つのノードを含むクラスターc-1を作成し、 es のルート ディレクトリの下に順番に分别启动三个cmd窗口
実行します。
- ノードn1のコマンド:
.\bin\elasticsearch.bat -E cluster.name=c-1 -E node.name=n1 -E path.data=.\tmp\c1\data1 -E path.logs=.\tmp\c1\log-1 -E http.port=9201 -E transport.tcp.port=9301 -E discovery.seed_hosts="127.0.0.1:9301,127.0.0.1:9302,127.0.0.1:9303" -E cluster.initial_master_nodes="n1,n2,n3"
- ノード **** のコマンド
.\bin\elasticsearch.bat -E cluster.name=c-1 -E node.name=n2 -E path.data=.\tmp\c1\data2 -E path.logs=.\tmp\c1\log-2 -E http.port=9202 -E transport.tcp.port=9302 -E discovery.seed_hosts="127.0.0.1:9301,127.0.0.1:9302,127.0.0.1:9303" -E cluster.initial_master_nodes="n1,n2,n3"
- ノード **** のコマンド
.\bin\elasticsearch.bat -E cluster.name=c-1 -E node.name=n3 -E path.data=.\tmp\c1\data3 -E path.logs=.\tmp\c1\log-3 -E http.port=9203 -E transport.tcp.port=9303 -E discovery.seed_hosts="127.0.0.1:9301,127.0.0.1:9302,127.0.0.1:9303" -E cluster.initial_master_nodes="n1,n2,n3"
コマンド分析:
- cluster.name : クラスターの名前。同じクラスターの名前は一貫している必要があります。
- node.name : ノードの名前。同じクラスター内のノード名は一意です。
- Transport.tcp.port : データの TCP 送信ポート。デフォルトは 9300 です。同じマシンの下にある場合は、ノードごとに一意である必要があります。
- Discovery.seed_hosts : クラスター内のすべてのノードのアドレス。つまり、すべてのノードの ip:tcp ポートを入力します。
- cluster.initial_master_nodes : クラスターによって開始された最初のマスター ノード。そこからマスター ノードが選出されます。
6. クラスター情報
-
各ノードの情報を問い合わせます
ブラウザはそれぞれlocalhost:9201、localhost:9202、localhost:9203にアクセスします
-
クラスターの健全性ステータス情報の表示localhost:9201/_cat/health?v
にアクセスします。
-
すべてのノード情報を表示するlocalhost:9201/_cat/nodes?v
にアクセスします。
7._catコマンド
7.1 すべての _cat コマンドを取得する
_cat
コマンドは、クラスターのステータスと情報を表示するために Elasticsearch によって提供される API エンドポイントのセットです。これらの API エンドポイントは、読みやすい表形式でテキスト データを返します。すべての _cat コマンドは、localhost :9201/_catのブラウザを介してアクセスできます。
7.2 _catコマンドの説明
各 _cat コマンドの目的については、以下で詳しく説明します。
-
/_cat/allocation: ノード名、保存されているインデックスの数、保存されているデータの量など、各ノードに割り当てられているインデックス ストレージを表示します。
-
/_cat/shards: インデックス名、シャード番号、ステータス、ノード、シャード サイズなどを含む、各インデックスのシャードの詳細をリストします。
-
/_cat/shards/{index}: 特定のインデックスのシャードの詳細を表示します。{index} を対応するインデックス名に置き換えて表示します。
-
/_cat/master: 現在マスターノードとして選択されているノード情報を表示します。
-
/_cat/nodes: ノード名、IP アドレス、バージョン番号など、クラスター内のすべてのノードの情報を一覧表示します。
-
/_cat/tasks: インデックス、操作タイプ、ノードなど、進行中またはキューに入っているタスクの詳細を表示します。
-
/_cat/indices: 名前、ドキュメントの数、ストレージ サイズなど、すべてのインデックスの基本情報をリストします。
-
/_cat/indices/{index}: {index} を、表示する対応するインデックス名に置き換えることで、特定のインデックスの詳細情報を表示します。
-
/_cat/segments: セグメント ID、ドキュメント数、ストレージ サイズなどを含む、各インデックス フラグメントのセグメント情報を表示します。
-
/_cat/segments/{index}: 特定のインデックスのセグメント情報を表示します。{index} を対応するインデックス名に置き換えて表示します。
-
/_cat/count: クラスター内のすべてのインデックスのドキュメント数の合計を表示します。
-
/_cat/count/{index}: {index} を対応するインデックス名に置き換えることで、特定のインデックスのドキュメント数を表示します。
-
/_cat/recovery: 各インデックス シャードのリカバリ ステータスを表示します。
-
/_cat/recovery/{index}: {index} を対応するインデックス名に置き換えることで、特定のインデックス シャードのリカバリ ステータスを表示します。
-
/_cat/health: プライマリ シャードの数、レプリカ シャードの数、ノードの数など、クラスターの健全性ステータスを表示します。
-
/_cat/pending_tasks: 実行を待っているタスクに関する情報を表示します。
-
/_cat/aliases: クラスター内のすべてのインデックス エイリアスに関する情報をリストします。
-
/_cat/aliases/{alias}: {alias} を表示する対応するエイリアスに置き換えることで、特定のインデックス エイリアスの情報を表示します。
-
/_cat/thread_pool: スレッド プール名、アクティブなスレッドの数、キューに入れられたタスクの数など、クラスター内のすべてのスレッド プールに関する情報を表示します。
-
/_cat/thread_pool/{thread_pools}: {thread_pools} を、表示する対応するスレッド プール名に置き換えることにより、特定のスレッド プールの情報を表示します。
-
/_cat/plugins: インストールされているプラグインに関する情報を表示します。
-
/_cat/fielddata: 各フィールドのキャッシュ サイズを表示します。
-
/_cat/fielddata/{fields}: {fields} を対応するフィールド名に置き換えることで、特定のフィールドのキャッシュ サイズを表示します。
-
/_cat/nodeattrs: ノードのカスタム属性情報を表示します。
-
/_cat/repositories: 登録されているバックアップ リポジトリを表示します。
-
/_cat/snapshots/{repository}: 特定のバックアップ リポジトリのスナップショット情報を表示します。{repository} を対応するリポジトリ名に置き換えて表示します。
-
/_cat/templates: インデックス テンプレート情報を表示します。
-
/_cat/ml/anomaly_detectors: すべての機械学習異常検出器に関する情報を表示します。
-
/_cat/ml/anomaly_detectors/{job_id}: {job_id} を対応するジョブ ID に置き換えることで、特定の機械学習異常検出器に関する情報を表示します。
-
/_cat/ml/trained_models: すべてのトレーニング済みモデルに関する情報を表示します。
-
/_cat/ml/trained_models/{model_id}: 特定のトレーニング済みモデルに関する情報を表示します。{model_id} を対応するモデル ID に置き換えて表示します。
-
/_cat/ml/datafeeds: すべてのデータフィードに関する情報を表示します。
-
/_cat/ml/datafeeds/{datafeed_id}: {datafeed_id} を、表示する対応するデータフィード ID に置き換えることで、特定のデータフィードの情報を表示します。
-
/_cat/ml/data_frame/analytics: すべてのデータ フレーム分析に関する情報を表示します。
-
/_cat/ml/data_frame/analytics/{id}: {id} を、表示する対応する ID に置き換えることで、特定のデータ フレーム分析の情報を表示します。
-
/_cat/transforms: すべての変換タスクに関する情報を表示します。
-
/_cat/transforms/{transform_id}: {transform_id} を対応するタスク ID に置き換えることで、特定の変換タスクに関する情報を表示します。
8. まとめ
ここまで、Windows システムでの Elasticsearch のダウンロード、環境機器、スタンドアロン構成、クラスターの起動の主要な手順を詳細に紹介し、画像とテキストの導入と検証を組み合わせてクラスターを正常に起動し、Elasticsearch の導入を紹介しました。 _cat コマンドを使用してクラスターのステータスと情報を表示します。この記事が Elasticsearch クラスターのインストールと構成を正常に行うのに役立つことを願っています。