RPMを使用してElasticsearchをインストールする
ElasticsearchのRPMは私たちのウェブサイトからダウンロードできますまたはRPMリポジトリからダウンロードできます。これは、OpenSuSE、SLES、Centos、Red Hat、Oracle EnterpriseなどのRPMベースのシステムにElasticsearchをインストールするために使用できます。
RPMインストールは、SLES 11やCentOS 5などの古いバージョンのRPMを持つディストリビューションではサポートされていません。代わりにLinuxまたはMacOSからアーカイブを使用してElasticsearchをインストールするを参照してください。
このパッケージには、無料機能とサブスクリプション機能の両方が含まれています。30日間のトライアルを開始することで、すべての機能を試すことができます。
Elasticsearchの最新の安定版はElasticsearchをダウンロードページで見つけることができます。他のバージョンは過去のリリースページで見つけることができます。
Elasticsearchには、JDKメンテナによるOpenJDKのバンドル版が含まれています(GPLv2+CE)。独自のJavaバージョンを使用するには、JVMバージョン要件を参照してください。
自分の施設でElastic Stackをセットアップする手順を示す例については、チュートリアルを試してみてください:自己管理型Elastic Stackのインストール。
Elasticsearch GPGキーをインポートする
私たちはすべてのパッケージにElasticsearch署名キー(PGPキー D88E42B4 、https://pgp.mit.eduから入手可能)で署名します。フィンガープリントは次のとおりです:
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
公開署名キーをダウンロードしてインストールします:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
RPMリポジトリからのインストール
RedHatベースのディストリビューション用にelasticsearch.repo
という名前のファイルを/etc/yum.repos.d/
ディレクトリに作成するか、OpenSuSEベースのディストリビューション用に/etc/zypp/repos.d/
ディレクトリに作成し、次の内容を含めます:
[elasticsearch]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
これでリポジトリが使用可能になります。次のコマンドのいずれかを使用してElasticsearchをインストールできます:
sudo yum install --enablerepo=elasticsearch elasticsearch
sudo dnf install --enablerepo=elasticsearch elasticsearch
sudo zypper modifyrepo --enable elasticsearch && \
sudo zypper install elasticsearch; \
sudo zypper modifyrepo --disable elasticsearch
CentOSおよび古いRed Hatベースのディストリビューションではyum を使用します。 |
|
Fedoraおよび他の新しいRed Hatディストリビューションではdnf を使用します。 |
|
OpenSUSEベースのディストリビューションではzypper を使用します。 |
構成されたリポジトリはデフォルトで無効になっています。これにより、システムの他の部分をアップグレードする際にelasticsearch
を誤ってアップグレードする可能性が排除されます。各インストールまたはアップグレードコマンドは、上記のサンプルコマンドに示されているように、リポジトリを明示的に有効にする必要があります。
RPMを手動でダウンロードしてインストールする
Elasticsearch v8.15.2のRPMはウェブサイトからダウンロードでき、次のようにインストールできます:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.2-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.2-x86_64.rpm.sha512
shasum -a 512 -c elasticsearch-8.15.2-x86_64.rpm.sha512
sudo rpm --install elasticsearch-8.15.2-x86_64.rpm
ダウンロードしたRPMのSHAと公開されたチェックサムを比較し、次のように出力されるはずです。elasticsearch-{version}-x86_64.rpm: OK . |
systemdベースのディストリビューションでは、インストールスクリプトがカーネルパラメータ(例:vm.max_map_count
)を設定しようとします。systemd-sysctl.serviceユニットをマスクすることでこれをスキップできます。
セキュリティを有効にしてElasticsearchを起動する
Elasticsearchをインストールすると、セキュリティ機能がデフォルトで有効になり、構成されます。Elasticsearchをインストールすると、次のセキュリティ構成が自動的に行われます:
- 認証と認可が有効になり、
elastic
組み込みスーパーユーザーのパスワードが生成されます。 - TLS用の証明書とキーがトランスポート層とHTTP層のために生成され、これらのキーと証明書でTLSが有効化され、構成されます。
パスワードと証明書およびキーはターミナルに出力されます。elasticsearch-reset-password
コマンドを使用してelastic
ユーザーのパスワードをリセットできます。
``````sh
export ELASTIC_PASSWORD="your_password"
`
ノードを再構成して既存のクラスターに参加させる
Elasticsearchをインストールすると、インストールプロセスはデフォルトで単一ノードクラスターを構成します。代わりにノードを既存のクラスターに参加させたい場合は、新しいノードを初めて起動する前に、既存のノードで登録トークンを生成します。
- 1. 既存のクラスター内の任意のノードで、ノード登録トークンを生成します:
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node
- 2. 登録トークンをコピーします。これはターミナルに出力されます。
- 3. 新しいElasticsearchノードで、登録トークンを
elasticsearch-reconfigure-node
ツールのパラメータとして渡します:
Elasticsearchは現在、既存のクラスターに参加するように構成されています。/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <enrollment-token>
- 4.
systemd
を使用して新しいノードを起動します。
システムインデックスの自動作成を有効にする
いくつかの商業機能は、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
設定に追加のインデックス名が必要になる可能性が高く、正確な値はローカル構成に依存します。環境に適した正しい値が不明な場合は、*
に設定することを検討してください。これにより、すべてのインデックスの自動作成が許可されます。
systemdでElasticsearchを実行する
システムが起動するときにElasticsearchが自動的に起動するように構成するには、次のコマンドを実行します:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
Elasticsearchは次のように起動および停止できます:
sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service
これらのコマンドは、Elasticsearchが正常に起動したかどうかのフィードバックを提供しません。代わりに、この情報は/var/log/elasticsearch/
にあるログファイルに書き込まれます。
Elasticsearchキーストアにパスワード保護を設定している場合は、ローカルファイルとsystemd環境変数を使用してsystemd
にキーストアパスワードを提供する必要があります。このローカルファイルは存在する間は保護されるべきであり、Elasticsearchが起動して実行されると安全に削除できます。
echo "keystore_password" > /path/to/my_pwd_file.tmp
chmod 600 /path/to/my_pwd_file.tmp
sudo systemctl set-environment ES_KEYSTORE_PASSPHRASE_FILE=/path/to/my_pwd_file.tmp
sudo systemctl start elasticsearch.service
デフォルトでは、Elasticsearchサービスはsystemd
ジャーナルに情報を記録しません。journalctl
ロギングを有効にするには、--quiet
オプションをExecStart
コマンドラインからelasticsearch.service
ファイルに削除する必要があります。
ジャーナルをテールするには:
``````sh
sudo journalctl -f
`
elasticsearchサービスのジャーナルエントリをリストするには:
sudo journalctl --unit elasticsearch
指定した時間からelasticsearchサービスのジャーナルエントリをリストするには:
sudo journalctl --unit elasticsearch --since "2016-10-30 18:17:16"
man journalctl
またはhttps://www.freedesktop.org/software/systemd/man/journalctl.htmlを確認して、他のコマンドラインオプションを確認してください。
古いsystemdバージョンでの起動タイムアウト
デフォルトでは、ElasticsearchはTimeoutStartSec
パラメータをsystemd
に900s
として設定します。systemd
のバージョン238以上を実行している場合、Elasticsearchは自動的に起動タイムアウトを延長でき、900秒以上かかっても起動が完了するまで繰り返し延長します。
#### テキスト
``````text
[2022-01-31T01:22:31,077][INFO ][o.e.n.Node ] [instance-0000000123] starting ...
...
[2022-01-31T01:37:15,077][INFO ][o.e.n.Node ] [instance-0000000123] stopping ...
`
ただし、systemd
ログは起動がタイムアウトしたと報告します:
テキスト
Jan 31 01:22:30 debian systemd[1]: Starting Elasticsearch...
Jan 31 01:37:15 debian systemd[1]: elasticsearch.service: Start operation timed out. Terminating.
Jan 31 01:37:15 debian systemd[1]: elasticsearch.service: Main process exited, code=killed, status=15/TERM
Jan 31 01:37:15 debian systemd[1]: elasticsearch.service: Failed with result 'timeout'.
Jan 31 01:37:15 debian systemd[1]: Failed to start Elasticsearch.
これを避けるために、systemd
を少なくともバージョン238にアップグレードしてください。また、TimeoutStartSec
パラメータを延長することで一時的に問題を回避することもできます。
Elasticsearchが実行中であることを確認する
Elasticsearchノードが実行中であることを確認するには、localhost
のポート9200
にHTTPSリクエストを送信します:
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200
呼び出しでhttps を使用することを確認してください。そうしないと、リクエストは失敗します。--cacert HTTP層の生成された 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"
}
Elasticsearchの構成
`````setgid`````フラグは、Elasticsearchが含まれるファイルやサブディレクトリを読み取れるように、`````/etc/elasticsearch`````ディレクトリにグループ権限を適用します。すべてのファイルとサブディレクトリは`````root:elasticsearch`````の所有権を継承します。このディレクトリまたは任意のサブディレクトリからコマンドを実行するには、[elasticsearch-keystoreツール](/read/elasticsearch-8-15/755a2728b8f9a1f4.md)など、`````root:elasticsearch`````の権限が必要です。
Elasticsearchはデフォルトで`````/etc/elasticsearch/elasticsearch.yml`````ファイルから構成を読み込みます。この構成ファイルの形式は、[*Elasticsearchの構成*](/read/elasticsearch-8-15/cbd51842921e98c1.md)で説明されています。
RPMには、次のパラメータを設定できるシステム構成ファイル(`````/etc/sysconfig/elasticsearch`````)もあります:
| | |
| --- | --- |
| `````ES_JAVA_HOME````` | 使用するカスタムJavaパスを設定します。 |
| `````ES_PATH_CONF````` | 構成ファイルディレクトリ(`````elasticsearch.yml`````、<br>`````jvm.options`````、および`````log4j2.properties`````ファイルを含む必要があります);デフォルトは<br>`````/etc/elasticsearch`````です。 |
| `````ES_JAVA_OPTS````` | 適用したい追加のJVMシステムプロパティ。 |
| `````RESTART_ON_UPGRADE````` | パッケージアップグレード時の再起動を構成します。デフォルトは`````false`````です。これは、手動でパッケージをインストールした後にElasticsearchインスタンスを再起動する必要があることを意味します。この理由は、クラスター内のアップグレードが高いネットワークトラフィックを引き起こし、クラスターの応答時間を低下させることを防ぐためです。 |
`````systemd`````を使用するディストリビューションでは、システムリソース制限を`````systemd`````を介して構成する必要があります。`````/etc/sysconfig/elasticsearch`````ファイルを介してではありません。詳細については、[Systemd構成](96b3a12ed4f7bcb8.md#systemd)を参照してください。
## クライアントをElasticsearchに接続する
Elasticsearchを初めて起動すると、HTTP層のTLSが自動的に構成されます。CA証明書が生成され、次のディレクトリにディスクに保存されます:
``````sh
/etc/elasticsearch/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ノードの次のディレクトリに作成されます:
/etc/elasticsearch/certs/http_ca.crt
## RPMのディレクトリレイアウト
RPMは、RPMベースのシステムに適切な場所に構成ファイル、ログ、およびデータディレクトリを配置します:
| タイプ | 説明 | デフォルトの場所 | 設定 |
| :-- | :-- | :-- | :-- |
| **home** | Elasticsearchホームディレクトリまたは`````$ES_HOME````` | `````/usr/share/elasticsearch````` | |
| **bin** | ノードを起動するための`````elasticsearch`````を含むバイナリスクリプト<br>およびプラグインをインストールするための`````elasticsearch-plugin````` | `````/usr/share/elasticsearch/bin````` | |
| **conf** | `````elasticsearch.yml`````を含む構成ファイル | `````/etc/elasticsearch````` | `````ES_PATH_CONF````` |
| **conf** | ヒープサイズ、ファイルディスクリプタを含む環境変数。 | `````/etc/sysconfig/elasticsearch````` | |
| **conf** | トランスポートおよびHTTP層のための生成されたTLSキーと証明書。 | `````/etc/elasticsearch/certs````` | |
| **data** | 各インデックス/シャードのデータファイルの場所<br>ノードに割り当てられています。 | `````/var/lib/elasticsearch````` | `````path.data````` |
| **jdk** | Elasticsearchを実行するために使用されるバンドルされたJava開発キット。<br>`````ES_JAVA_HOME`````環境変数を設定することで上書きできます<br>`````/etc/sysconfig/elasticsearch`````で。 | `````/usr/share/elasticsearch/jdk````` | |
| **logs** | ログファイルの場所。 | `````/var/log/elasticsearch````` | `````path.logs````` |
| **plugins** | プラグインファイルの場所。各プラグインはサブディレクトリに含まれます。 | `````/usr/share/elasticsearch/plugins````` | |
| **repo** | 共有ファイルシステムリポジトリの場所。複数の場所を保持できます。ファイルシステムリポジトリは、ここで指定された任意のディレクトリの任意のサブディレクトリに配置できます。 | 構成されていません | `````path.repo````` |
### セキュリティ証明書とキー
Elasticsearchをインストールすると、次の証明書とキーがElasticsearch構成ディレクトリに生成され、KibanaインスタンスをセキュアなElasticsearchクラスターに接続し、ノード間通信を暗号化するために使用されます。ファイルは参照のためにここにリストされています。
- `````http_ca.crt
- このElasticsearchクラスターのHTTP層の証明書に署名するために使用されるCA証明書。
http.p12
- このノードのHTTP層のためのキーと証明書を含むキーストア。
transport.p12
- クラスター内のすべてのノードのトランスポート層のためのキーと証明書を含むキーストア。
`````http.p12`````のパスワードを取得するには、次のコマンドを使用します:
``````sh
bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
`
``````sh
bin/elasticsearch-keystore show xpack.security.transport.ssl.keystore.secure_password
`
次のステップ
テスト用のElasticsearch環境が設定されました。Elasticsearchで本格的な開発を開始する前に、または本番環境に移行する前に、いくつかの追加設定を行う必要があります:
- Elasticsearchの構成方法を学ぶ。
- 重要なElasticsearch設定を構成する。
- 重要なシステム設定を構成する。