Elasticsearch + Kibana 8.11を再インストール
Elasticsearchを再インストールしたときの覚書。
環境: CentOS Stream 9, Elasticsearch 8.11.3, Kibana 8.11.3
1.Elasticsearchをインストール
dnf用RPMレポジトリを公式サイトを参考に追加する。
参考: Install Elasticsearch with RPM | Elasticsearch Guide [8.11] | Elastic
enabled=1にしておく。
# less /etc/yum.repos.d/elastic.repo
別コンソールでログを確認しながら作業する。
# journalctl -f
dnfでインストール。
# dnf install elasticsearch
superuser"elastic"のパスワードがコンソールに表示されるので、shellの環境変数として保存する。
# less ~/.bash_profile
export ELASTIC_PASSWORD="your_password"
再読み込みして環境変数一覧表示
# source ~/.bash_profile
# printenv
設定変更。
NginxからリバースプロキシするからSSLは無効にする。
Elastic AgentのためにAPI Keyを有効にする。
# less /etc/elasticsearch/elasticsearch.yml
xpack.security.authc.api_key.enabled: truexpack.security.http.ssl:enabled: false# keystore.path: certs/http.p12
メモリ使用量を2GBに設定。
# less /etc/elasticsearch/jvm.options
-Xms2g-Xmx2g
Elasticsearch起動して確認。
# systemctl start elasticsearch
# systemctl status elasticsearch
Elasticsearchにアクセスして確認。
# curl -u elastic:$ELASTIC_PASSWORD http://localhost:9200
{"name" : "hoge.jp","cluster_name" : "elasticsearch","cluster_uuid" : "XCJhMXw...BPvw","version" : {"number" : "8.11.3","build_flavor" : "default","build_type" : "rpm","build_hash" : "64cf052f3b...cb88aca7e739d9a","build_date" : "2023-12-08T11:33:53.634979452Z","build_snapshot" : false,"lucene_version" : "9.8.0","minimum_wire_compatibility_version" : "7.17.0","minimum_index_compatibility_version" : "7.0.0"},"tagline" : "You Know, for Search"}
Nginxからリバースプロキシを設定しておく。
(自社サーバーのIPアドレスしか接続許可しない)
参考: Elasticsearch + KibanaをインストールしてNginxからリバースプロキシ
他のサーバーから接続確認。
# curl -u elastic:password https://search.hoge.jp
自動起動ON。
# systemctl enable elasticsearch
2.Kibanaをインストール
dnf用RPMレポジトリを公式サイトを参考に追加する。
参考: Install Kibana with RPM | Kibana Guide [8.11] | Elastic
dnfでインストール。
# dnf install kibana
設定ファイルを確認。
server.publicBaseUrlを設定する。
(Nginxのリバースプロキシを設定済み)
# less /etc/kibana/kibana.yml
server.publicBaseUrl: "https://kibana.hoge.jp"
KibanaからElasticsearchに接続するためのトークン作成。
# /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
エラー
Unable to create enrollment token for scope [kibana]ERROR: Unable to create an enrollment token. Elasticsearch node HTTP layer SSL configuration is not configured with a keystore, with exit code 73
SSLを無効したので、手動でElasticsearchに接続する設定を追加する。
参考: Set up minimal security for Elasticsearch | Elasticsearch Guide [8.11] | Elastic
設定ファイル編集。
# less /etc/kibana/kibana.yml
elasticsearch.username: "kibana_system"
keysotreにパスワードを追加する。
# /usr/share/kibana/bin/kibana-keystore create
# /usr/share/kibana/bin/kibana-keystore add elasticsearch.password
確認。
# /usr/share/kibana/bin/kibana-keystore list
Elasticsearchの"kibana_system"ユーザーのパスワード変更。
# /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u kibana_system
Kibanaを起動。
# systemctl start kibana
自動起動ONになっているか確認。
# systemctl list-unit-files -t service
ブラウザでアクセスして確認。
ログに下記のWARNINGが出る。
Dec 23 10:11:50 hoge.jp kibana[150237]: [2023-12-23T10:11:50.851+09:00][WARN ][plugins.fleet] xpack.encryptedSavedObjects.encryptionKey is not configured, agent uninstall tokens are being stored in plain text
公式サイトを参考に暗号化キーを生成する。
参考: Secure saved objects | Kibana Guide [8.11] | Elastic
# /usr/share/kibana/bin/kibana-encryption-keys generate
表示された値を設定ファイルに記載する。
# less /etc/kibana/kibana.yml
xpack.encryptedSavedObjects.encryptionKey: fd10ad4...ca301f1xpack.reporting.encryptionKey: 11771...dd8bxpack.security.encryptionKey: d1d...4b547a
Kibana再起動。
# systemctl restart kibana