0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ElasticsearchとKibanaの設定方法(docker compose版): プラグイン導入と日本語化

Last updated at Posted at 2024-12-22

要旨

以下の記事の内容を、ElasticSearch 8.17.0のDocker compose版に同梱されているkibanaコンテナに対して実行した。ほぼそのままの内容で流用できた(感謝)
https://qiita.com/TakumiIwata/items/e1c8c4da1d1691dd833a

Elasticsearchにプラグインを導入する方法

プラグイン導入の基本

Elasticsearchにプラグインを導入する際は、クラスター内のすべてのノードに同じプラグインを適用する必要がある
docker-compose.ymlの中で、es01,es02,es03のそれぞれの定義の中に、commandセクションを追記して自動インストールを設定する。

commandセクション追記例(es02,es03にも同様に追記)

elasticsearch8.17.0の事例。

  es01:
    depends_on:
      setup:
        condition: service_healthy
    image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
    volumes:
      - certs:/usr/share/elasticsearch/config/certs
      - esdata01:/usr/share/elasticsearch/data
    ports:
      - ${ES_PORT}:9200
    environment:
      - node.name=es01
      - cluster.name=${CLUSTER_NAME}
      - cluster.initial_master_nodes=es01,es02,es03
      - discovery.seed_hosts=es02,es03
      - ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
      - bootstrap.memory_lock=true
      - xpack.security.enabled=true
      - xpack.security.http.ssl.enabled=true
      - xpack.security.http.ssl.key=certs/es01/es01.key
      - xpack.security.http.ssl.certificate=certs/es01/es01.crt
      - xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
      - xpack.security.transport.ssl.enabled=true
      - xpack.security.transport.ssl.key=certs/es01/es01.key
      - xpack.security.transport.ssl.certificate=certs/es01/es01.crt
      - xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
      - xpack.security.transport.ssl.verification_mode=certificate
      - xpack.license.self_generated.type=${LICENSE}
      - xpack.ml.use_auto_machine_memory_percent=true
    mem_limit: ${MEM_LIMIT}
    ulimits:
      memlock:
        soft: -1
        hard: -1
    command: >
      bash -c '
      if ! bin/elasticsearch-plugin list | grep -q "analysis-kuromoji"; then
        bin/elasticsearch-plugin install analysis-kuromoji;
      fi;
      exec /usr/local/bin/docker-entrypoint.sh
      '
    healthcheck:
      test:
        [
          "CMD-SHELL",
          "curl -s --cacert config/certs/ca/ca.crt https://localhost:9200 | grep -q 'missing authentication credentials'",
        ]
      interval: 10s
      timeout: 10s
      retries: 120
  • bin/elasticsearch-plugin installコマンドでプラグインをインストールする
  • プラグインによっては--batchオプションを追加してインタラクティブ入力をスキップする必要があるかもしれない

注意点

  • プラグインのインストール後、Elasticsearchの再起動が必要。docker compose downおよびdocker compose up -dでクラスタごと再起動を行うのが手っ取り早い

Kibanaの日本語化

日本語化の手順

Kibanaの日本語化は、kibana.ymlに以下の設定を追記できればよい。

i18n.locale: "ja-JP"

Docker環境での注意点

Kibanaコンテナを再起動すると、コンテナ内部のkibana.ymlの変更はリセットされる。
docker-compose.ymlvolumesセクションを使って、ホスト側のkibana.ymlをマウントするようにしておくと設定変更を永続化できる。

設定例

1. デフォルトのkibana.ymlを取得

いったんデフォルトのdocker-compose.ymlでコンテナを起動して、以下のコマンドで、Kibanaコンテナのデフォルトのkibana.ymlをローカルホスト側に取得する。

docker exec -it <kibana-container-name> cat /usr/share/kibana/config/kibana.yml > ./kibana.yml

2. 設定を編集

取得したkibana.ymlに日本語化設定を追記。

i18n.locale: "ja-JP"

追記後のイメージ

#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true

i18n.locale: "ja-JP"

3. docker-compose.ymlのvolumesセクションにマウント設定を追記

以下のように設定。

kibana:
  image: docker.elastic.co/kibana/kibana:8.17.0
  volumes:
    - /任意の配置先パス/kibana.yml:/usr/share/kibana/config/kibana.yml:ro
  ports:
    - "5601:5601"
  • /任意の配置先パス/kibana.ymlはホスト側に保存したパス。docker-compose.ymlの配置先ディレクトリなどでよいのでは。
  • :roオプションを指定して、コンテナ内での誤変更を防ぐ

4. コンテナを再起動

docker-compose down
docker-compose up -d

動作確認

KibanaのWeb UI( http://localhost:5601 )を開き、インターフェースが日本語化されていることを確認する

まとめ

docker-compose.ymlに以下の要素を追記することでプラグイン導入・kibanaの日本語化を達成できる。

  1. Elasticsearchのプラグインは全ノードにインストールする必要あり
  2. Kibanaの日本語化設定はkibana.ymlをホスト側で管理し、docker-compose.ymlのvolumesセクションでこれをマウントするように定義。
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?