TAKEO

TAKEO

Elasticsearch 5.3をお手軽にセットアップする方法

概要

本記事ではElasticsearch5.3を簡単にセットアップする方法について紹介します。以下を目指します。

  • Elasticsearch 5.3をシングルノードでセットアップする
  • Basic認証は使わない
  • データを永続化する

使うツール

  • docker
  • docker compose

docker-compose.yml

  • Elasticsearch 5.3.0ではシングルーノードがサポートされていないので任意のクラスター名を指定します

    Copied!!
    - cluster.name=docker-cluster
    
  • ベーシック認証をオフにします

    Copied!!
    - xpack.security.enabled=false
    
  • データを永続化するためにvolumesを指定します

    Copied!!
    volumes:
      # ${ローカルディレクトリのパス}:${コンテナ内のパス}
      - ./elasticsearch:/usr/share/elasticsearch/data
    
docker-compose.yml
Copied!!
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0
    container_name: elasticsearch
    environment:
      - cluster.name=docker-cluster
      # ベーシック認証はオフにする。デフォルトtrue
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
    ports:
      - "9200:9200"
      - "9300:9300"
    volumes:
      - ./elasticsearch:/usr/share/elasticsearch/data
    networks:
      - elastic-network

networks:
  elastic-network:
    driver: bridge

セットアップ

  1. docker-compose.ymlを置いたディレクトリで以下を実行してください

    Copied!!
    $ sudo docker compose up
    

    または

    Copied!!
    $ sudo docker-compose up
    
  2. elasticsearchにヘルスチェックをしてみます。

    Copied!!
    $curl http://127.0.0.1:9200/_cat/health
    1728987448 10:17:28 docker-cluster yellow 1 1 2 2 0 0 2 0 - 50.0%
    

コンテナの起動へ失敗した方へ

指定したローカルディレクトリへの権限が無い旨のメッセージでコンテナの起動に失敗する場合があります。

その場合はローカルディレクトリへ次のように権限を付与してください。

Copied!!
$ id -u
1000
$ sudo chown -R 1000:root elasticsearch/

まとめ

これにて以下の3つを満たしたElasticsearch 5.3環境をセットアップできました。

  • Elasticsearch 5.3をシングルノードでセットアップする
  • Basic認証は使わない
  • データを永続化する