LinuxまたはMacOSからアーカイブを使用してElasticsearchをインストールする

Elasticsearchは、LinuxおよびMacOS用の.tar.gzアーカイブとして利用可能です。

このパッケージには、無料およびサブスクリプション機能の両方が含まれています。すべての機能を試すために30日間のトライアルを開始してください。

Elasticsearchの最新の安定版は、Elasticsearchをダウンロードページで見つけることができます。他のバージョンは、過去のリリースページで見つけることができます。

Elasticsearchには、JDKメンテナによるOpenJDKのバンドル版が含まれています(GPLv2+CE)。独自のJavaバージョンを使用するには、JVMバージョン要件を参照してください。

Linux用アーカイブのダウンロードとインストール

Elasticsearch v8.15.2のLinuxアーカイブは、以下の手順でダウンロードしてインストールできます:

  1. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.2-linux-x86_64.tar.gz
  2. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.2-linux-x86_64.tar.gz.sha512
  3. shasum -a 512 -c elasticsearch-8.15.2-linux-x86_64.tar.gz.sha512
  4. tar -xzf elasticsearch-8.15.2-linux-x86_64.tar.gz
  5. cd elasticsearch-8.15.2/
ダウンロードした.tar.gzアーカイブのSHAと公開されたチェックサムを比較し、出力はelasticsearch-{version}-linux-x86_64.tar.gz: OKであるべきです。
このディレクトリは$ES_HOMEとして知られています。

MacOS用アーカイブのダウンロードとインストール

macOS Gatekeeperの警告

Appleの厳格なノータリゼーション要件の導入は、8.15.2 Elasticsearchアーティファクトのノータリゼーションに影響を与えました。macOSがElasticsearchを初めて実行する際にダイアログを表示して中断する場合は、実行を許可するためのアクションを取る必要があります。

Elasticsearchファイルに対するGatekeeperチェックを防ぐには、ダウンロードした.tar.gzアーカイブまたは抽出されたディレクトリで次のコマンドを実行します:

  1. xattr -d -r com.apple.quarantine <archive-or-directory>

または、Macでアプリを安全に開くノータリゼーションされていないアプリを開くか、未確認の開発者からのアプリを開く場合セクションの指示に従ってセキュリティオーバーライドを追加できます。

Elasticsearch v8.15.2のMacOSアーカイブは、以下の手順でダウンロードしてインストールできます:

  1. curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.2-darwin-x86_64.tar.gz
  2. curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.2-darwin-x86_64.tar.gz.sha512 | shasum -a 512 -c -<br>tar -xzf elasticsearch-8.15.2-darwin-x86_64.tar.gz<br>cd elasticsearch-8.15.2/<br>``````<br><br>
  3. | | |
  4. | --- | --- |
  5. | | ダウンロードした`````.tar.gz`````アーカイブのSHAと公開されたチェックサムを比較し、出力は`````elasticsearch-{version}-darwin-x86_64.tar.gz: OK`````であるべきです。 |
  6. | | このディレクトリは`````$ES_HOME`````として知られています。 |
  7. ## システムインデックスの自動作成を有効にする
  8. 一部の商業機能は、Elasticsearch内で自動的にインデックスを作成します。デフォルトでは、Elasticsearchは自動インデックス作成を許可するように構成されており、追加の手順は必要ありません。ただし、Elasticsearchで自動インデックス作成を無効にしている場合は、商業機能が以下のインデックスを作成できるように、`````action.auto_create_index``````````elasticsearch.yml`````で構成する必要があります。
  9. #### Yaml
  10. ``````yaml
  11. action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*

LogstashまたはBeatsを使用している場合、action.auto_create_index設定に追加のインデックス名が必要になる可能性が高く、正確な値はローカル構成に依存します。環境に適した正しい値が不明な場合は、*に設定することを検討してください。これにより、すべてのインデックスの自動作成が許可されます。

コマンドラインからElasticsearchを実行する

コマンドラインからElasticsearchを起動するには、次のコマンドを実行します:

  1. ./bin/elasticsearch

Elasticsearchを初めて起動すると、セキュリティ機能がデフォルトで有効になり、構成されます。次のセキュリティ構成が自動的に行われます:

  • 認証と認可が有効になり、elastic組み込みスーパーユーザーのパスワードが生成されます。
  • TLS用の証明書とキーが生成され、トランスポートおよびHTTPレイヤーに対してTLSが有効化され、これらのキーと証明書で構成されます。
  • Kibana用の登録トークンが生成され、30分間有効です。
  1. `````elastic`````パスワードをシェルの環境変数として保存することをお勧めします。例:
  2. ``````sh
  3. export ELASTIC_PASSWORD="your_password"
  4. `

Elasticsearchキーストアにパスワード保護が施されている場合、キーストアのパスワードを入力するように求められます。詳細についてはセキュア設定を参照してください。

デフォルトでは、Elasticsearchはそのログをコンソール(stdout)およびログディレクトリ内の<cluster name>.logファイルに出力します。Elasticsearchは起動中にいくつかの情報をログに記録しますが、初期化が完了すると、フォアグラウンドで実行を続け、記録する価値のある何かが発生するまで何もログに記録しません。Elasticsearchが実行中の間、HTTPインターフェースを介してポート9200で対話できます。

Elasticsearchを停止するには、Ctrl-Cを押してください。

Elasticsearchにパッケージされたすべてのスクリプトは、配列をサポートするBashのバージョンを必要とし、Bashが/bin/bashで利用可能であると仮定しています。そのため、Bashはこのパスに直接またはシンボリックリンクを介して利用可能である必要があります。

既存のクラスターにノードを登録する

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ツールを実行して新しいノード用の登録トークンを生成します。
    1. bin/elasticsearch-create-enrollment-token -s node
    登録トークンをコピーし、新しいノードをElasticsearchクラスターに登録するために使用します。
  • 2. 新しいノードのインストールディレクトリから、Elasticsearchを起動し、--enrollment-tokenパラメータで登録トークンを渡します。
    1. bin/elasticsearch --enrollment-token <enrollment-token>
    Elasticsearchは次のディレクトリに自動的に証明書とキーを生成します:
    1. config/certs
  • 3. 登録したい新しいノードについて、前の手順を繰り返します。

Elasticsearchが実行中であることを確認する

Elasticsearchノードが実行中であることを確認するには、localhostのポート9200にHTTPSリクエストを送信します:

  1. curl --cacert $ES_HOME/config/certs/http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200
呼び出しでhttpsを使用することを確認してください。そうしないと、リクエストは失敗します。

--cacert

HTTPレイヤー用に生成されたhttp_ca.crt証明書へのパス。

呼び出しは次のような応答を返します:

Js

  1. {
  2. "name" : "Cp8oag6",
  3. "cluster_name" : "elasticsearch",
  4. "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
  5. "version" : {
  6. "number" : "8.15.2",
  7. "build_type" : "tar",
  8. "build_hash" : "f27399d",
  9. "build_flavor" : "default",
  10. "build_date" : "2016-03-30T09:51:41.449Z",
  11. "build_snapshot" : false,
  12. "lucene_version" : "9.11.1",
  13. "minimum_wire_compatibility_version" : "1.2.3",
  14. "minimum_index_compatibility_version" : "1.2.3"
  15. },
  16. "tagline" : "You Know, for Search"
  17. }

ログをstdoutに出力することは、コマンドラインの-qまたは--quietオプションを使用して無効にできます。

デーモンとして実行する

Elasticsearchをデーモンとして実行するには、コマンドラインで-dを指定し、-pオプションを使用してプロセスIDをファイルに記録します:

  1. ./bin/elasticsearch -d -p pid

Elasticsearchキーストアにパスワード保護が施されている場合、キーストアのパスワードを入力するように求められます。詳細についてはセキュア設定を参照してください。

ログメッセージは$ES_HOME/logs/ディレクトリにあります。

Elasticsearchをシャットダウンするには、pidファイルに記録されたプロセスIDを終了します:

  1. pkill -F pid

Elasticsearch .tar.gzパッケージにはsystemdモジュールが含まれていません。Elasticsearchをサービスとして管理するには、DebianまたはRPMパッケージを使用してください。

コマンドラインでElasticsearchを構成する

Elasticsearchはデフォルトで$ES_HOME/config/elasticsearch.ymlファイルから構成を読み込みます。この構成ファイルの形式は、Elasticsearchの構成で説明されています。

構成ファイルで指定できる設定は、コマンドラインでも-E構文を使用して指定できます。次のように:

  1. ./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1

通常、cluster.nameのようなクラスター全体の設定はelasticsearch.yml構成ファイルに追加する必要がありますが、node.nameのようなノード固有の設定はコマンドラインで指定できます。

クライアントをElasticsearchに接続する

Elasticsearchを初めて起動すると、HTTPレイヤーのTLSが自動的に構成されます。CA証明書が生成され、ディスクに保存されます:

  1. $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証明書へのものです。

  1. openssl x509 -fingerprint -sha256 -in config/certs/http_ca.crt

コマンドは、フィンガープリントを含むセキュリティ証明書を返します。issuerElasticsearch security auto-configuration HTTP CAであるべきです。

  1. issuer= /CN=Elasticsearch security auto-configuration HTTP CA
  2. SHA256 Fingerprint=<fingerprint>

CA証明書を使用する

ライブラリがフィンガープリントを検証する方法をサポートしていない場合、自動生成されたCA証明書は各Elasticsearchノードの次のディレクトリに作成されます:

  1. $ES_HOME/config/certs/http_ca.crt
  1. ## アーカイブのディレクトリレイアウト
  2. アーカイブ配布は完全に自己完結型です。すべてのファイルとディレクトリは、デフォルトで`````$ES_HOME`````—アーカイブを解凍したときに作成されるディレクトリ内に含まれています。
  3. これは非常に便利で、Elasticsearchを使用するためにディレクトリを作成する必要がなく、Elasticsearchをアンインストールするのも`````$ES_HOME`````ディレクトリを削除するだけで簡単です。ただし、重要なデータを後で削除しないように、構成ディレクトリ、データディレクトリ、およびログディレクトリのデフォルトの場所を変更することをお勧めします。
  4. | タイプ | 説明 | デフォルトの場所 | 設定 |
  5. | :-- | :-- | :-- | :-- |
  6. | **home** | Elasticsearchホームディレクトリまたは`````$ES_HOME````` | アーカイブを解凍して作成されたディレクトリ | |
  7. | **bin** | ノードを起動するための`````elasticsearch`````を含むバイナリスクリプト<br>およびプラグインをインストールするための`````elasticsearch-plugin````` | `````$ES_HOME/bin````` | |
  8. | **conf** | `````elasticsearch.yml`````を含む構成ファイル | `````$ES_HOME/config````` | `````ES_PATH_CONF````` |
  9. | **conf** | トランスポートおよびHTTPレイヤー用の生成されたTLSキーと証明書。 | `````$ES_HOME/config/certs````` | |
  10. | **data** | 各インデックス/シャードのデータファイルの場所<br>ノードに割り当てられています。 | `````$ES_HOME/data````` | `````path.data````` |
  11. | **logs** | ログファイルの場所。 | `````$ES_HOME/logs````` | `````path.logs````` |
  12. | **plugins** | プラグインファイルの場所。各プラグインはサブディレクトリに含まれます。 | `````$ES_HOME/plugins````` | |
  13. | **repo** | 共有ファイルシステムリポジトリの場所。複数の場所を保持できます。ファイルシステムリポジトリは、ここで指定された任意のディレクトリのサブディレクトリに配置できます。 | 設定されていません | `````path.repo````` |
  14. ### セキュリティ証明書とキー
  15. Elasticsearchをインストールすると、KibanaインスタンスをセキュアなElasticsearchクラスターに接続し、ノード間通信を暗号化するために使用される次の証明書とキーがElasticsearch構成ディレクトリに生成されます。ファイルは参照用にここにリストされています。
  16. - `````http_ca.crt
  • このElasticsearchクラスターのHTTPレイヤーの証明書に署名するために使用されるCA証明書。
  • http.p12
  • このノードのHTTPレイヤー用のキーと証明書を含むキーストア。
  • transport.p12
  • クラスター内のすべてのノードのトランスポートレイヤー用のキーと証明書を含むキーストア。
  1. `````http.p12`````のパスワードを取得するには、次のコマンドを使用します:
  2. ``````sh
  3. bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
  4. `
  1. ``````sh
  2. bin/elasticsearch-keystore show xpack.security.transport.ssl.keystore.secure_password
  3. `

次のステップ

テスト用のElasticsearch環境が設定されました。Elasticsearchで本格的な開発を開始する前に、または本番環境に移行する前に、いくつかの追加設定を行う必要があります: