環境
Docker Desktop 4.14.1
Engine 20.10.21
Compose v2.12.2
Elastic Stack(Elasticsearch、kibana、logstash)の構築
こちらからソースをcloneする
git clone https://github.com/deviantony/docker-elk
cd docker-elk
docker compose up -d
docker compose ps
NAME COMMAND SERVICE STATUS PORTS
docker-elk-elasticsearch-1 "/bin/tini -- /usr/l…" elasticsearch running 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp
docker-elk-kibana-1 "/bin/tini -- /usr/l…" kibana running 0.0.0.0:5601->5601/tcp
docker-elk-logstash-1 "/usr/local/bin/dock…" logstash running 0.0.0.0:5044->5044/tcp, 0.0.0.0:9600->9600/tcp, 0.0.0.0:50000->50000/tcp, 0.0.0.0:50000->50000/udp
docker-elk-setup-1 "/entrypoint.sh" setup exited (0)
なぜかdocker-elk-setup-1
だけが起動しない
ログを確認するもSetup has already run successfully on 2022-12-28 01:56:41+00:00. Skipping
と書かれているがとりあえず無視する
他が起動されているのを確認できたら
localhost:5601
へアクセスする
アカウント名とパスワードはそれぞれ下記を利用する
アカウント名はelastic
パスワードはchangeme
デフォルトユーザーのパスワードをリセットする
下記のコマンドを実行してパスワードをリセットする。
docker-compose exec elasticsearch bin/elasticsearch-reset-password --batch --user elastic
docker-compose exec elasticsearch bin/elasticsearch-reset-password --batch --user logstash_internal
docker-compose exec elasticsearch bin/elasticsearch-reset-password --batch --user kibana_system
コマンド実行後に新たなパスワードが発行されるので.env
内のパスワードを書き換えます。
書き換えた後に再起動を実施する
docker compose up -d logstash kibana
kibanaを日本語化にする
kibana/config/kibana.yml
にi18n.locale: ja-JP
を記載する
---
## Default Kibana configuration from Kibana base image.
## https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/templates/kibana_yml.template.ts
#
server.name: kibana
server.host: 0.0.0.0
elasticsearch.hosts: [ http://elasticsearch:9200 ]
monitoring.ui.container.elasticsearch.enabled: true
monitoring.ui.container.logstash.enabled: true
## X-Pack security credentials
#
elasticsearch.username: kibana_system
elasticsearch.password: ${KIBANA_SYSTEM_PASSWORD}
# 下記を追記する
i18n.locale: ja-JP
日本語データの全文検索を可能にするためのプラグインを導入する
kibana/Dockerfile
にインストールするプラグインを記載する
ARG ELASTIC_VERSION
# https://www.docker.elastic.co/
FROM docker.elastic.co/kibana/kibana:${ELASTIC_VERSION}
# Add your kibana plugins setup here
# Example: RUN kibana-plugin install <name|url>
+ RUN elasticsearch-plugin install analysis-icu
+ RUN elasticsearch-plugin install analysis-kuromoji
kibanaのコンテナを再起動してプラグインなどを反映させる
docker compose restart kibana
localhost:9200にアクセス
下記コマンドを実行して下記のようなレスポンスがあればElasticsearchの起動ができている。
curl localhost:9200 -u 'elastic:再設定したパスワード'
{
"name" : "elasticsearch",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "wlcjqif3R_OwKS_rySZPQw",
"version" : {
"number" : "8.5.3",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "4ed5ee9afac63de92ec98f404ccbed7d3ba9584e",
"build_date" : "2022-12-05T18:22:22.226119656Z",
"build_snapshot" : false,
"lucene_version" : "9.4.2",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
インデックスの作成とデータ投入
kibanaにアクセス→Management→devtoolsにて実施する
空のindexを作成する
作成するにはPUTメソッドを利用する
PUT job_offers
GET _cat/indices
yellow open job_offers 8TKDb8eeTWO--uStPgGfcw 1 1 0 0 225b 225b
データを投入する
# データ投入
PUT job_offers/_doc/1
{
"job_name": "programmer",
"date": "2023-01-01T15:00:00"
}
# 投入したデータを取得
GET job_offers/_doc/1
{
"_index": "job_offers",
"_id": "1",
"_version": 1,
"_seq_no": 0,
"_primary_term": 2,
"found": true,
"_source": {
"job_name": "programmer",
"date": "2023-01-01T15:00:00"
}
}
参考
https://n-presso.com/2022/07/08/elastic-stack%E3%82%92docker-compose%E3%81%A7%E5%BB%BA%E3%81%A6%E3%82%8B%E3%80%90elastic-search-kibana-logstash%E3%80%91/
コメント