Elasticsearch 7.5 と Kibana 7.5 に Security を有効化してDockerで起動する(コピペ)

やりたいこと

ログの集計・可視化をElasticsearchとKibanaを使って行いたいと思い、色々調べてみたところ、どうやらAmazon Lightsailで動かすのが安そうということで、環境構築について検討した。
Elastic Cloudだと手軽に始められる反面、インスタンスコストが割高で、最小構成だとリサイズに失敗したりしてほとんど何もできなかった。
Lightsailの場合、4GB RAMのインスタンスが$20/月なので、2GBをElasticsearchに、1GBをKibanaに、という構成ができそう。
そして、比較的最近、無償ライセンスのBasicプランでもX-Pack Securityが使えるようになっているので、しっかり認証も付けておきたい。(Lightsailはポート制限しかできない)
開発はMacで行うので、できればローカルの開発環境と本番を同じように構成したい。

要点

  • Elasticsearch & Kibana を使う
  • X-Pack Securityを有効化する
  • なるべく安くそこそこの環境を整えたい
  • MacとLightsailで同じ環境を作りたい

前提

  • Dockerが使える状態
  • ホスト側がRAM 4GB以上で、Elasticsearchに2GB、Kibanaに1GBを割当てられる
  • 直近ではSSLオプション使わない

以下をコピペしとけば動く

1. データの保存先を作成

  • 必要に応じて権限を変える
mkdir -p ~/Development/Docker/Elasticsearch/data ~/Development/Docker/Elasticsearch/certs

2. Elasticsearchを起動

  • 環境変数 ELASTIC_PASSWORDelastic ユーザーのパスワードなので変更する
docker run --name Elasticsearch -d \
-m 2048m \
-p 9200:9200 \
-p 9300:9300 \
-e cluster.name=ES \
-e discovery.type=single-node \
-e network.host=0.0.0.0 \
-e bootstrap.memory_lock=true \
-e xpack.security.enabled=true \
-e xpack.monitoring.collection.enabled=true \
-e "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" \
-e "ELASTIC_PASSWORD=iY69DxipKifV7utYA4t6jgxT" \
-v ~/Development/Docker/Elasticsearch/data:/usr/share/elasticsearch/data \
-v ~/Development/Docker/Elasticsearch/certs:/usr/share/elasticsearch/certs \
--ulimit nproc=4096:4096 \
--ulimit memlock=256000:256000 \
--ulimit nofile=65536:65536 \
docker.elastic.co/elasticsearch/elasticsearch:7.5.2

3. kibanaユーザーのパスワードを設定する

  • BASIC認証のパスワードは2で指定したものを使う
  • password の値がkibanaユーザーのパスワード
curl -XPUT --user elastic:iY69DxipKifV7utYA4t6jgxT 'localhost:9200/_xpack/security/user/kibana/_password' -H "Content-Type: application/json" -d '{
  "password" : "6ezji8D5jvceXUsTsvg8mAY4"
}'

4. Kibanaを起動する

  • ELASTICSEARCH_PASSWORD は3で設定した kibana ユーザーのパスワードを指定する
docker run --name Kibana -d \
--link Elasticsearch:elasticsearch \
-m 1024m \
-p 5601:5601 \
-e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" \
-e "ELASTICSEARCH_USERNAME=kibana" \
-e "ELASTICSEARCH_PASSWORD=6ezji8D5jvceXUsTsvg8mAY4" \
--ulimit nproc=4096:4096 \
--ulimit memlock=256000:256000 \
--ulimit nofile=65536:65536 \
docker.elastic.co/kibana/kibana:7.5.2

4. 諸々設定する

  • ブラウザでホストの 5601 番ポートに接続
  • elastic ユーザーとしてログイン
  • グループやユーザーを作成

セキュリティを強化する

SSLオプションを使いましょう。
セキュリティ機能のはじめ方 | Elastic Blog

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
ユーザーは見つかりませんでした