Windowsに.zipを使用してElasticsearchをインストールする
Elasticsearchは、Windows .zip
アーカイブを使用してインストールできます。これには、Elasticsearchをサービスとして実行するためのelasticsearch-service.bat
コマンドが含まれています。
このパッケージには、無料機能とサブスクリプション機能の両方が含まれています。すべての機能を試すために30日間のトライアルを開始してください。
Windowsでは、Elasticsearchの機械学習機能にはMicrosoft Universal C Runtimeライブラリが必要です。これは、Windows 10、Windows Server 2016、およびそれ以降のバージョンに組み込まれています。古いバージョンのWindowsでは、Windows Updateを介してインストールするか、別のダウンロードからインストールできます。Microsoft Universal C Runtimeライブラリをインストールできない場合でも、機械学習機能を無効にすればElasticsearchの残りの部分を使用できます。
Elasticsearchの最新の安定版は、Elasticsearchをダウンロードページで見つけることができます。他のバージョンは、過去のリリースページで見つけることができます。
Elasticsearchには、JDKメンテナーからのOpenJDKのバンドル版が含まれています(GPLv2+CE)。独自のJavaバージョンを使用するには、JVMバージョン要件を参照してください。
.zipパッケージをダウンロードしてインストールする
Elasticsearch 8.15.2のための.zip
アーカイブを次のリンクからダウンロードしてください: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.2-windows-x86_64.zip
お気に入りの解凍ツールで解凍します。これにより、elasticsearch-8.15.2
というフォルダーが作成され、これを%ES_HOME%
と呼びます。ターミナルウィンドウで、cd
を%ES_HOME%
ディレクトリに移動します。例えば:
cd C:\Program Files\elasticsearch-8.15.2
システムインデックスの自動作成を有効にする
いくつかの商用機能は、Elasticsearch内で自動的にインデックスを作成します。デフォルトでは、Elasticsearchは自動インデックス作成を許可するように構成されており、追加の手順は必要ありません。ただし、Elasticsearchで自動インデックス作成を無効にしている場合は、商用機能が次のインデックスを作成できるように、action.auto_create_index
をelasticsearch.yml
で構成する必要があります:
Yaml
action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
LogstashやBeatsを使用している場合、action.auto_create_index
設定に追加のインデックス名が必要になる可能性が高く、正確な値はローカル構成に依存します。環境に適した正しい値が不明な場合は、*
に設定することを検討してください。これにより、すべてのインデックスの自動作成が許可されます。
コマンドラインからElasticsearchを実行する
次のコマンドを実行して、コマンドラインからElasticsearchを起動します:
.\bin\elasticsearch.bat
Elasticsearchを初めて起動すると、セキュリティ機能がデフォルトで有効になり、構成されます。次のセキュリティ構成が自動的に行われます:
- 認証と認可が有効になり、
elastic
組み込みスーパーユーザーのパスワードが生成されます。 - TLS用の証明書とキーがトランスポート層とHTTP層のために生成され、これらのキーと証明書でTLSが有効化され、構成されます。
- Kibana用の登録トークンが生成され、30分間有効です。
`````elastic`````パスワードをシェルの環境変数として保存することをお勧めします。例:
``````sh
$ELASTIC_PASSWORD = "your_password"
`
Elasticsearchキーストアにパスワード保護が設定されている場合、キーストアのパスワードを入力するように求められます。詳細についてはセキュア設定を参照してください。
デフォルトでは、Elasticsearchはログをコンソール(STDOUT
)とログディレクトリ内の<cluster
name>.log
ファイルに出力します。Elasticsearchは起動中にいくつかの情報をログに記録しますが、初期化が完了すると、フォアグラウンドで実行を続け、記録する価値のある何かが発生するまで追加のログは記録しません。Elasticsearchが実行中の間、HTTPインターフェースを介して対話することができ、デフォルトではポート9200
で利用可能です。
Elasticsearchを停止するには、Ctrl-C
を押してください。
既存のクラスターにノードを登録する
Elasticsearchが初めて起動すると、セキュリティの自動構成プロセスがHTTP層を0.0.0.0
にバインドしますが、トランスポート層はlocalhostにのみバインドされます。この意図された動作により、追加の構成なしでデフォルトでセキュリティが有効な単一ノードクラスターを起動できます。
新しいノードを登録する前に、localhost
以外のアドレスにバインドすることやブートストラップチェックを満たすことなど、通常は本番クラスターで追加のアクションが必要です。その間に、自動生成された登録トークンが期限切れになる可能性があるため、登録トークンは自動的に生成されません。
さらに、追加の構成なしでクラスターに参加できるのは同じホスト上のノードのみです。他のホストのノードをクラスターに参加させたい場合は、transport.host
をサポートされている値(0.0.0.0
の提案された値のコメントを解除するなど)または他のホストが到達できるインターフェースにバインドされたIPアドレスに設定する必要があります。詳細についてはトランスポート設定を参照してください。
クラスターに新しいノードを登録するには、クラスター内の既存のノードでelasticsearch-create-enrollment-token
ツールを使用して登録トークンを作成します。次に、--enrollment-token
パラメータを使用して新しいノードを起動し、既存のクラスターに参加させます。
- 1. Elasticsearchが実行されている別のターミナルで、Elasticsearchをインストールしたディレクトリに移動し、
elasticsearch-create-enrollment-token
ツールを実行して新しいノードのための登録トークンを生成します。
登録トークンをコピーし、新しいノードをElasticsearchクラスターに登録するために使用します。bin\elasticsearch-create-enrollment-token -s node
- 2. 新しいノードのインストールディレクトリから、Elasticsearchを起動し、
--enrollment-token
パラメータで登録トークンを渡します。
Elasticsearchは次のディレクトリに証明書とキーを自動的に生成します:bin\elasticsearch --enrollment-token <enrollment-token>
config\certs
- 3. 登録したい新しいノードについて、前の手順を繰り返します。
コマンドラインでElasticsearchを構成する
Elasticsearchはデフォルトで%ES_HOME%\config\elasticsearch.yml
ファイルから構成を読み込みます。この構成ファイルの形式は、Elasticsearchの構成で説明されています。
構成ファイルで指定できる設定は、次のように-E
構文を使用してコマンドラインでも指定できます:
.\bin\elasticsearch.bat -Ecluster.name=my_cluster -Enode.name=node_1
スペースを含む値は、引用符で囲む必要があります。例えば-Epath.logs="C:\My Logs\logs"
。
通常、cluster.name
のようなクラスター全体の設定はelasticsearch.yml
構成ファイルに追加する必要がありますが、node.name
のようなノード固有の設定はコマンドラインで指定できます。
Elasticsearchが実行中であることを確認する
Elasticsearchノードが実行中であることを確認するには、localhost
の9200
ポートにHTTPSリクエストを送信します:
curl --cacert %ES_HOME%\config\certs\http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200
呼び出しでhttps を使用することを確認してください。そうしないと、リクエストは失敗します。--cacert 生成された http_ca.crt 証明書のパス。 |
呼び出しは次のような応答を返します:
Js
{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "8.15.2",
"build_type" : "tar",
"build_hash" : "f27399d",
"build_flavor" : "default",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "9.11.1",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}
WindowsでサービスとしてElasticsearchをインストールして実行する
Elasticsearchをバックグラウンドで実行するサービスとしてインストールすることができ、ユーザーの操作なしで起動時に自動的に開始されます。
- 1. Elasticsearchをサービスとしてインストールします。サービスの名前と
ES_JAVA_HOME
の値は、インストール中に利用可能になります:C:\Program Files\elasticsearch-8.15.2\bin>elasticsearch-service.bat install
Installing service : "elasticsearch-service-x64"
Using ES_JAVA_HOME (64-bit): "C:\jvm\jdk1.8"
The service 'elasticsearch-service-x64' has been installed.
- 2. Elasticsearchをサービスとして起動します。Elasticsearchが起動すると、認証がデフォルトで有効になります:
Elasticsearchをサービスとして起動すると、TLSは有効になっておらず、構成されていません。C:\Program Files\elasticsearch-8.15.2\bin>bin\elasticsearch-service.bat start
- 3.
elasticsearch-reset-password
ツールを使用してelastic
ユーザーのパスワードを生成します。パスワードはコマンドラインに出力されます。C:\Program Files\elasticsearch-8.15.2\bin>\bin\elasticsearch-reset-password -u elastic
ElasticsearchサービスにはJREを使用できますが、クライアントVMを使用しているため(長時間実行されるアプリケーションに対してより良いパフォーマンスを提供するサーバーJVMとは異なる)、その使用は推奨されず、警告が表示されます。
システム環境変数ES_JAVA_HOME
は、サービスが使用するJDKインストールのパスに設定する必要があります。JDKをアップグレードする場合、サービスを再インストールする必要はありませんが、システム環境変数ES_JAVA_HOME
の値を新しいJDKインストールのパスに設定する必要があります。ただし、JVMタイプ間のアップグレード(例:JRE対SE)はサポートされておらず、サービスを再インストールする必要があります。
WindowsでサービスとしてElasticsearchを管理する
``````sh
C:\Program Files\elasticsearch-8.15.2\bin>elasticsearch-service.bat
Usage: elasticsearch-service.bat install|remove|start|stop|manager [SERVICE_ID]<br>``````<br><br>スクリプトには1つのパラメータ(実行するコマンド)が必要で、その後にサービスIDを示すオプションの1つが続きます(複数のElasticsearchサービスをインストールする際に便利です)。 <br><br>利用可能なコマンドは次のとおりです: <br><br>
| | |
| --- | --- |
| `````install````` | Elasticsearchをサービスとしてインストールします |
| `````remove````` | インストールされたElasticsearchサービスを削除します(起動している場合はサービスを停止します) |
| `````start````` | Elasticsearchサービスを開始します(インストールされている場合) |
| `````stop````` | Elasticsearchサービスを停止します(起動している場合) |
| `````manager````` | インストールされたサービスを管理するためのGUIを開始します |
## サービス設定をカスタマイズする
Elasticsearchサービスは、次の環境変数を設定することにより、インストール前に構成できます(コマンドラインから[setコマンド](https://technet.microsoft.com/en-us/library/cc754250(v=ws.10).aspxを使用するか、**システムのプロパティ→環境変数** GUIを介して)。
| | |
| --- | --- |
| `````SERVICE_ID````` | サービスの一意の識別子。複数のインスタンスを同じマシンにインストールする場合に便利です。デフォルトは`````elasticsearch-service-x64`````です。 |
| `````SERVICE_USERNAME````` | 実行するユーザー、デフォルトはローカルシステムアカウントです。 |
| `````SERVICE_PASSWORD````` | `````%SERVICE_USERNAME%`````で指定されたユーザーのパスワード。 |
| `````SERVICE_DISPLAY_NAME````` | サービスの名前。デフォルトは`````{es} <version> %SERVICE_ID%`````です。 |
| `````SERVICE_DESCRIPTION````` | サービスの説明。デフォルトは`````{es} <version> Windows Service - https://elastic.co`````です。 |
| `````ES_JAVA_HOME````` | サービスを実行するために必要なJVMのインストールディレクトリ。 |
| `````SERVICE_LOG_DIR````` | サービスログディレクトリ、デフォルトは`````%ES_HOME%\logs`````です。Elasticsearchのログのパスは制御されません。これらのパスは、`````path.logs`````設定を`````elasticsearch.yml`````構成ファイルで設定するか、コマンドラインで設定します。 |
| `````ES_PATH_CONF````` | 構成ファイルディレクトリ(`````elasticsearch.yml`````、`````jvm.options`````、および`````log4j2.properties`````ファイルを含む必要があります)、デフォルトは`````%ES_HOME%\config`````です。 |
| `````ES_JAVA_OPTS````` | 適用したい追加のJVMシステムプロパティ。 |
| `````ES_START_TYPE````` | サービスの起動モード。`````auto`````または`````manual`````(デフォルト)である必要があります。 |
| `````ES_STOP_TIMEOUT````` | procrunがサービスが正常に終了するのを待つ秒数のタイムアウト。デフォルトは`````0`````です。 |
`````elasticsearch-service.bat`````は、サービスをインストールするために[Apache Commons Daemon](https://commons.apache.org/proper/commons-daemon/)プロジェクトに依存しています。サービスインストール前に設定された環境変数はコピーされ、サービスライフサイクル中に使用されます。これは、インストール後にそれらに加えられた変更は、サービスが再インストールされない限り反映されないことを意味します。
デフォルトでは、Elasticsearchはノードの[役割](6d6f6bcdb9a25e89.md#node-roles)と総メモリに基づいてJVMヒープを自動的にサイズ設定します。このデフォルトのサイズ設定は、ほとんどの本番環境に推奨されます。必要に応じて、ヒープサイズを手動で設定することでデフォルトのサイズ設定を上書きできます。
WindowsでサービスとしてElasticsearchを初めてインストールするか、コマンドラインからElasticsearchを実行する場合、手動で[JVMヒープサイズを設定](ff87874507cd40e7.md#set-jvm-heap-size)できます。すでにインストールされているサービスのヒープサイズを変更するには、サービスマネージャーを使用します: `````bin\elasticsearch-service.bat manager`````。
サービスは、実行中のElasticsearchによって使用されるプライベート一時ディレクトリを自動的に構成します。このプライベート一時ディレクトリは、インストールを実行しているユーザーのプライベート一時ディレクトリのサブディレクトリとして構成されます。サービスが異なるユーザーの下で実行される場合、サービスが使用する一時ディレクトリの場所を設定するには、サービスインストールを実行する前に環境変数`````ES_TMPDIR`````を希望の場所に設定できます。
- マネージャーGUIを使用する
- インストール後にマネージャーGUI(`````elasticsearch-service-mgr.exe`````)を使用してサービスを構成することも可能で、インストールされたサービスの状態、起動タイプ、JVM、開始および停止設定などの情報を提供します。コマンドラインから`````elasticsearch-service.bat manager`````を呼び出してマネージャーウィンドウを開きます。
マネージャーGUIを通じて行われたほとんどの変更(JVM設定など)は、効果を得るためにサービスの再起動が必要です。
## クライアントをElasticsearchに接続する
Elasticsearchを初めて起動すると、HTTP層のTLSが自動的に構成されます。CA証明書が生成され、ディスクに保存されます:
``````sh
%ES_HOME%\config\certs\http_ca.crt
`
この証明書の16進エンコードされたSHA-256フィンガープリントもターミナルに出力されます。Elasticsearchに接続するクライアント(Elasticsearchクライアント、Beats、スタンドアロンElasticエージェント、Logstashなど)は、ElasticsearchがHTTPSに使用する証明書を信頼していることを検証する必要があります。Fleet ServerおよびFleet管理のElasticエージェントは、CA証明書を信頼するように自動的に構成されています。他のクライアントは、CA証明書のフィンガープリントまたはCA証明書自体を使用して信頼を確立できます。
自動構成プロセスがすでに完了している場合でも、セキュリティ証明書のフィンガープリントを取得できます。また、CA証明書をマシンにコピーし、クライアントをそれを使用するように構成することもできます。
CAフィンガープリントを使用する
Elasticsearchが起動するときにターミナルに出力されるフィンガープリント値をコピーし、クライアントを構成してこのフィンガープリントを使用してElasticsearchに接続するときに信頼を確立します。
自動構成プロセスがすでに完了している場合でも、次のコマンドを実行することでセキュリティ証明書のフィンガープリントを取得できます。パスはHTTP層の自動生成されたCA証明書へのものです。
openssl x509 -fingerprint -sha256 -in config/certs/http_ca.crt
コマンドは、フィンガープリントを含むセキュリティ証明書を返します。issuer
はElasticsearch security auto-configuration HTTP CA
である必要があります。
issuer= /CN=Elasticsearch security auto-configuration HTTP CA
SHA256 Fingerprint=<fingerprint>
CA証明書を使用する
ライブラリがフィンガープリントを検証する方法をサポートしていない場合、自動生成されたCA証明書は各Elasticsearchノードの次のディレクトリに作成されます:
%ES_HOME%\config\certs\http_ca.crt
http_ca.crt
ファイルをマシンにコピーし、クライアントを構成してElasticsearchに接続するときにこの証明書を使用して信頼を確立します。
.zipアーカイブのディレクトリレイアウト
.zip
パッケージは完全に自己完結型です。すべてのファイルとディレクトリは、デフォルトで%ES_HOME%
に含まれています—アーカイブを解凍したときに作成されるディレクトリです。
これは非常に便利です。なぜなら、Elasticsearchを使用するためにディレクトリを作成する必要がなく、Elasticsearchをアンインストールするのも%ES_HOME%
ディレクトリを削除するだけで簡単だからです。ただし、重要なデータを後で削除しないように、構成ディレクトリ、データディレクトリ、およびログディレクトリのデフォルトの場所を変更することをお勧めします。
タイプ | 説明 | デフォルトの場所 | 設定 |
---|---|---|---|
home | Elasticsearchホームディレクトリまたは%ES_HOME% |
アーカイブを解凍して作成されたディレクトリ | |
bin | ノードを起動するためのelasticsearch を含むバイナリスクリプトおよびプラグインをインストールするためのelasticsearch-plugin |
%ES_HOME%\bin |
|
conf | elasticsearch.yml を含む構成ファイル |
%ES_HOME%\config |
ES_PATH_CONF |
conf | トランスポート層とHTTP層のための生成されたTLSキーと証明書。 | %ES_HOME%\config\certs |
|
data | 各インデックス/シャードのデータファイルの場所。 | %ES_HOME%\data |
path.data |
logs | ログファイルの場所。 | %ES_HOME%\logs |
path.logs |
plugins | プラグインファイルの場所。各プラグインはサブディレクトリに含まれます。 | %ES_HOME%\plugins |
|
repo | 共有ファイルシステムリポジトリの場所。複数の場所を保持できます。ファイルシステムリポジトリは、ここで指定された任意のディレクトリのサブディレクトリに配置できます。 | 設定されていません | path.repo |
次のステップ
テスト用のElasticsearch環境が設定されました。Elasticsearchで本格的な開発を開始する前に、または本番環境に移行する前に、いくつかの追加設定を行う必要があります:
- Elasticsearchの構成方法を学ぶ。
- 重要なElasticsearch設定を構成する。
- 重要なシステム設定を構成する。