2022年5月9日月曜日

ElasticSearch8 を docker で起動する

ElasticSearch8 を docker で起動する

概要

いろいろと起動方法が変わっていたので試してみました

環境

  • Ubuntu 18.04
  • docker 20.10.7
  • ElasticSearch 8.1.3
  • Kibana 8.1.3

max_map_count 変更

ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch. というエラーが発生して ElasticSearch が起動しないので事前に変更します

  • sudo sysctl -w vm.max_map_count=262144

ElasticSearch 起動

シングルノードで起動します

  • docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name es docker.elastic.co/elasticsearch/elasticsearch:8.1.3

elastic ユーザのパスワードリセット

ElasticSearch にアクセスする elastic ユーザのパスワードを作成します
ターミナルに表示されたパスワードをメモしておきましょう

  • docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -a

ここで ElasticSearch にアクセスできるか確認

一旦アクセスできるか確認します
自動で生成されるクライアント証明書は localhost アクセス用のなので注意してください

  • docker cp es:/usr/share/elasticsearch/config/certs/http_ca.crt .
  • curl --cacert http_ca.crt -u elastic https://localhost:9200

Enrollment token の作成

Kibana が ElasticSearch にアクセスするためのトークンを生成します
ターミナルに表示される eyxxx という文字列をコピーしておきます

  • docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana --url "https://localhost:9200"

Kibana の起動

  • docker run -d -p 5601:5601 --name kibana docker.elastic.co/kibana/kibana:8.1.3

動作確認

アクセスする URL は以下で確認できます

  • docker logs kibana

URL の後ろに code が含まれている URL にアクセスしましょう

http://192.168.100.10:5601/?code=xxxx

事前に取得した Enrollment token を入力します
Kibana -> ElasticSearch のアクセス経路は docker 内のネットワークを使用しているようなので ElasticSearch と Kibana は必ず同じネットワークに所属させるようにしてください (今回は default ネットワークを使っています)

設定が完了してログイン画面が表示されれば OK です

elastic ユーザでログインできることを確認しましょう

最後に

セキュリティ面がだいぶ強化されログインや Kibana からの接続時に証明書や認証が含まれるようになっていました

各種 SDK を使っている場合もいろいろとその辺りの変更が入っているかなと思います

参考サイト

0 件のコメント:

コメントを投稿