目的
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
などなど