ブートストラップチェック
私たちは、ユーザーが重要な設定を構成していないために予期しない問題に苦しむ経験が豊富です。以前のElasticsearchのバージョンでは、これらの設定のいくつかの誤設定は警告としてログに記録されていました。ユーザーがこれらのログメッセージを見逃すことがあるのは理解できます。これらの設定が適切に注目されるようにするために、Elasticsearchは起動時にブートストラップチェックを行います。
これらのブートストラップチェックは、さまざまなElasticsearchおよびシステム設定を検査し、それらをElasticsearchの運用に安全な値と比較します。Elasticsearchが開発モードの場合、失敗したブートストラップチェックはElasticsearchのログに警告として表示されます。Elasticsearchが本番モードの場合、失敗したブートストラップチェックはElasticsearchの起動を拒否させます。
互換性のない設定でElasticsearchが実行されるのを防ぐために、常に強制されるブートストラップチェックがあります。これらのチェックは個別に文書化されています。
開発モードと本番モード
デフォルトでは、ElasticsearchはHTTPおよびトランスポート(内部)通信のためにループバックアドレスにバインドします。これは、Elasticsearchをダウンロードして遊ぶことや日常的な開発には問題ありませんが、本番システムには無意味です。クラスターに参加するには、Elasticsearchノードはトランスポート通信を介して到達可能でなければなりません。非ループバックアドレスを介してクラスターに参加するには、ノードはトランスポートを非ループバックアドレスにバインドし、シングルノードディスカバリーを使用してはいけません。したがって、非ループバックアドレスを介して他のマシンとクラスターを形成できない場合、Elasticsearchノードは開発モードにあると見なされ、非ループバックアドレスを介してクラスターに参加できる場合は本番モードにあると見なされます。
HTTPとトランスポートは、http.host
およびtransport.host
を介して独立して構成できることに注意してください。これは、テスト目的でHTTPを介して到達可能な単一ノードを構成するのに役立ち、本番モードをトリガーしません。
シングルノードディスカバリー
私たちは、一部のユーザーがリモートクラスター構成をテストするためにトランスポートを外部インターフェースにバインドする必要があることを認識しています。この状況に対して、single-node
(discovery.type
をsingle-node
に設定することで構成します)というディスカバリータイプを提供します。この状況では、ノードは自分自身をマスターとして選出し、他のノードとクラスターに参加しません。
ブートストラップチェックの強制
本番環境で単一ノードを実行している場合、ブートストラップチェックを回避することが可能です(外部インターフェースにトランスポートをバインドしないか、外部インターフェースにバインドしてsingle-node
に設定することによって)。この状況では、JVMオプションでシステムプロパティes.enforce.bootstrap.checks
をtrue
に設定することによって、ブートストラップチェックの実行を強制できます。この特定の状況にある場合は、これを強くお勧めします。このシステムプロパティは、ノードの構成に関係なくブートストラップチェックの実行を強制するために使用できます。