LoginSignup
2
2

More than 1 year has passed since last update.

【Elasticsearch】DockerでElasticsearchを使えるようにする

Posted at

目的

Elasticsearchについてキャッチアップしていくにあたって、手を動かせる環境がほしい。
そのために今回はDockerを使ってElasticStackを使えるようにしました。

結論

docker-elkを見て進めたらすぐにできちゃいます。

いざ作成

cloneする

docker-elkからcloneしてきます。

git clone https://github.com/deviantony/docker-elk

日本語分析のためにプラグインを入れる

elasticsearch/Dockerfileに下記を追加する

ARG ELASTIC_VERSION

# https://www.docker.elastic.co/
FROM docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}

# Add your elasticsearch plugins setup here
# Example: RUN elasticsearch-plugin install analysis-icu
RUN curl -L -k -O https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-kuromoji/analysis-kuromoji-8.7.0.zip
RUN curl -L -k -O https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-icu/analysis-icu-8.7.0.zip 

RUN cp analysis-* /tmp

RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install file:///tmp/analysis-kuromoji-8.7.0.zip
RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install file:///tmp/analysis-icu-8.7.0.zip

コメントにも書かれているように本来であれば
RUN elasticsearch-plugin install analysis-kuromojiでインストールできると思います。今回は諸事情のため上記の書き方をしています。

ビルド、起動

ビルドと起動をしていきます。

docker compose build
~
docker compose up

Kibanaにアクセス

http://localhost:5601にアクセス
認証情報はdefaultで下記の通り
User: elastic
Password: changeme
認証されてホーム画面が表示されたら成功です。

パスワードの更新

defaultで利用されているパスワードは万が一があると危険なので更新します。
下記を順番に実行します。
New value:のところが新しいパスワードのため控えてください。

docker compose exec elasticsearch bin/elasticsearch-reset-password --batch --user elastic
Password for the [elastic] user successfully reset.
New value: new_password
docker compose exec elasticsearch bin/elasticsearch-reset-password --batch --user logstash_internal
Password for the [logstash_internal] user successfully reset.
New value: new_password
docker compose exec elasticsearch bin/elasticsearch-reset-password --batch --user kibana_system
Password for the [kibana_system] user successfully reset.
New value: new_password

envの更新

envファイルの下記の部分を先程発行したパスワードに置き換える

ELASTIC_VERSION=8.7.0

## Passwords for stack users
#

# User 'elastic' (built-in)
#
# Superuser role, full access to cluster management and data indices.
# https://www.elastic.co/guide/en/elasticsearch/reference/current/built-in-users.html
ELASTIC_PASSWORD='new_password' # ここを更新

# User 'logstash_internal' (custom)
#
# The user Logstash uses to connect and send data to Elasticsearch.
# https://www.elastic.co/guide/en/logstash/current/ls-security.html
LOGSTASH_INTERNAL_PASSWORD='new_password' # ここを更新

# User 'kibana_system' (built-in)
#
# The user Kibana uses to connect and communicate with Elasticsearch.
# https://www.elastic.co/guide/en/elasticsearch/reference/current/built-in-users.html
KIBANA_SYSTEM_PASSWORD='new_password' # ここを更新
~

下記のコマンドを実行して再起動します。

docker-compose up -d logstash kibana

再度Kibanaにアクセス

http://localhost:5601にアクセス
認証情報はdefaultで下記の通り
User: elastic
Password: new_password

試しにGETしてみる

Dev Toolsにて下記を実行する

GET _security/role

defaultでのロールが確認できれば大丈夫。
watcher_userなどなど

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2