docker

docker 로 elasticsearch 7 설치

wefree 2023. 11. 21. 15:22

환경 설정

sudo apt-get install docker-compose
 
sudo sysctl -w fs.file-max=262114
sudo sysctl -w  vm.max_map_count=1048575

 

디렉토리 구성

3개의 nodes 로 구성하고, 각각의 LOCAL 저장소 위치를 다음과 같이 사용한다면

  • /home/windbird/opt/elasticsearch/data/es01
  • /home/windbird/opt/elasticsearch/data/es02   
  • /home/windbird/opt/elasticsearch/data/es03

각각의 디렉토리 생성 후 아래와 같이 권한 설정함

chown -R 1000:root /home/windbird/opt/elasticsearch/data/es01
chown -R 1000:root /home/windbird/opt/elasticsearch/data/es02
chown -R 1000:root /home/windbird/opt/elasticsearch/data/es03

 

docker-compose.yml 

아래의 ES_JAVA_OPTS 에서 node 마다 16GB 메모리를 사용하도록 설정했는데, 필요에 따라 조정한다.

 version: '2.2'
 services:
   es01:
     image: docker.elastic.co/elasticsearch/elasticsearch:7.3.2
     container_name: es01
     environment:
       - node.name=es01
       - cluster.name=es-docker-cluster
       - discovery.seed_hosts=es02,es03
       - cluster.initial_master_nodes=es01,es02,es03
       - bootstrap.memory_lock=true
       - "ES_JAVA_OPTS=-Xms16g -Xmx16g"
     ulimits:
       memlock:
         soft: -1
         hard: -1
     volumes:
       - /home/windbird/opt/elasticsearch/data/es01:/usr/share/elasticsearch/data
     ports:
       - 9200:9200
     networks:
       - elastic
   es02:
     image: docker.elastic.co/elasticsearch/elasticsearch:7.3.2
     container_name: es02
     environment:
       - node.name=es02
       - cluster.name=es-docker-cluster
       - discovery.seed_hosts=es01,es03
       - cluster.initial_master_nodes=es01,es02,es03
       - bootstrap.memory_lock=true
       - "ES_JAVA_OPTS=-Xms16g -Xmx16g"
     ulimits:
       memlock:
         soft: -1
         hard: -1
     volumes:
       - /home/windbird/opt/elasticsearch/data/es02:/usr/share/elasticsearch/data
     networks:
       - elastic

   es03:
     image: docker.elastic.co/elasticsearch/elasticsearch:7.3.2
     container_name: es03
     environment:
       - node.name=es03
       - cluster.name=es-docker-cluster
       - discovery.seed_hosts=es01,es02
       - cluster.initial_master_nodes=es01,es02,es03
       - bootstrap.memory_lock=true
       - "ES_JAVA_OPTS=-Xms16g -Xmx16g"
     ulimits:
       memlock:
         soft: -1
         hard: -1
     volumes:
       - /home/windbird/opt/elasticsearch/data/es03:/usr/share/elasticsearch/data
     networks:
       - elastic

   kibana:
     container_name: kibana
     image: docker.elastic.co/kibana/kibana:7.3.2
     environment:
       - SERVER_NAME=kibana
       - ELASTICSEARCH_HOSTS=http://es01:9200
     ports:
       - "5601:5601"
     networks:
       - elastic
     depends_on:
       - es01
       - es02
       - es03

 networks:
   elastic:

 

실행

 sudo docker-compose up
 # sudo docker-compose down

 

확인

Elasticsearch

http://localhost:9200/_cluster/health
http://localhost:9200/_cat/nodes?v
http://localhost:9200/_cat/indices?v

Kibana

http://localhost:5601/