🐡
Linux環境にElasticsearchを導入
概要
kibanaを利用したい事で出来たので、まずはElasticsearchを導入する事に。
Javaは梱包されている物を利用する。
ES_JAVA_HOME
で任意のJavaを指定出来るが設定したら起動出来なかった。
インストールしたバージョンは Elasticsearch 8.5.2
準備
SHAをインストール
sudo yum install perl-Digest-SHA
確認
shasum --version
インストール
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.2-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.2-x86_64.rpm.sha512
shasum -a 512 -c elasticsearch-8.5.2-x86_64.rpm.sha512
sudo rpm --install elasticsearch-8.5.2-x86_64.rpm
セキュリティ自動構成情報が表示される。
表示されるパスワードをメモしておく。
The generated password for the elastic built-in superuser is : XXXXXXXXXXXX
--------------------------- Security autoconfiguration information ------------------------------
Authentication and authorization are enabled.
TLS for the transport and HTTP layers is enabled and configured.
The generated password for the elastic built-in superuser is : XXXXXXXXXXXX
If this node should join an existing cluster, you can reconfigure this with
'/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>'
after creating an enrollment token on your existing cluster.
You can complete the following actions at any time:
Reset the password of the elastic built-in superuser with
'/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'.
Generate an enrollment token for Kibana instances with
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'.
Generate an enrollment token for Elasticsearch nodes with
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'.
-------------------------------------------------------------------------------------------------
systemctl 設定
設定ファイルの再読込
sudo systemctl daemon-reload
サービス自動起動有効
sudo systemctl enable elasticsearch.service
elasticsearch.ymlを編集
ブラウザからアクセスしたいのでnetwork.host
を編集
sudo vi /etc/elasticsearch/elasticsearch.yml
ネットワークホストの設定
#network.host: 192.168.0.1
network.host: IPアドレス
起動/確認
起動
sudo systemctl start elasticsearch.service
ステータス確認
sudo systemctl status elasticsearch.service
Elasticsearch 接続確認
curlコマンド
sudo curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://localhost:9200
パスワードを聞かれるので、インストール完了後に表示されたパスワードを入力する。
The generated password for the elastic built-in superuser is : XXXXXXXXXXXX
応答が返される。
{
"name" : "localhost",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "P0t8-SaUQs2bqDaSgyqlfA",
"version" : {
"number" : "8.5.2",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "a846182fa16b4ebfcc89aa3c11a11fd5adf3de04",
"build_date" : "2022-11-17T18:56:17.538630285Z",
"build_snapshot" : false,
"lucene_version" : "9.4.1",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
ブラウザ
https://サーバーIPアドレス:9200
にアクセス
ユーザー名、パスワードを聞かれるので入力する。
- ユーザー名:elastic
- パスワード:
The generated password for the elastic built-in superuser is : XXXXXXXXXXXX
設定
elasticsearch.service
sudo vi /usr/lib/systemd/system/elasticsearch.service
メモリロックを設定
LimitMEMLOCK=infinity
sudo systemctl daemon-reload
elasticsearch.yml
sudo vi /etc/elasticsearch/elasticsearch.yml
メモリロックを設定
コメントを外す
#bootstrap.memory_lock: true
bootstrap.memory_lock: true
停止/確認
sudo systemctl stop elasticsearch.service
sudo systemctl status elasticsearch.service
ユーザー関連
ユーザー一覧表示
curl -k --user elastic:パスワード -X GET "https://localhost:9200/_security/user?pretty"
パスワード再発行
cd /usr/share/elasticsearch/bin/
sudo ./elasticsearch-reset-password -u ユーザー名
ユーザー追加
curl -k --user elastic:パスワード -X POST "https://localhost:9200/_security/user/ユーザー名?pretty" -H 'Content-Type: application/json' -d '{"password" : "ユーザーパスワード", "roles" : [ "superuser" ]}'
ユーザー削除
curl -k --user elastic:パスワード -X DELETE "https://localhost:9200/_security/user/削除ユーザー"
任意のJavaを設定したら起動に失敗
下記のメッセージが表示されて起動に失敗。
could not find java in ES_JAVA_HOME at /usr/lib/jvm/java-11-openjdk/bin/java
Javaのバージョンが合っていないのか、関連するモジュールが足りないのか。
おとなしく梱包されているJavaを利用する。
ES_JAVA_HOME
にパスを設定
sudo vi /etc/sysconfig/elasticsearch
#ES_JAVA_HOME=
ES_JAVA_HOME=/usr/lib/jvm/java-11-openjdk
Discussion