<aside> ⚠️ x-pack security 활성화 오류 https://logical-code.tistory.com/215
</aside>
<aside> 💁🏻 https://kanoos-stu.tistory.com/34
https://kudl.tistory.com/entry/Docker-Compose-이용한-ElasticSearch-Cluster-Kibana-구성
https://jjeong.tistory.com/1508
</aside>
Windows / Mac 은 Docker Tool Box or Docker for Windows, Docker for Mac을 설치하면 도커 엔진과 함께 자동 설치된다.
설치완료 후 버전 확인
$ docker-compose -v ($ docker-compose --version)
docker-compose version 1.29.1, build c34c88b2
1.x 의 경우 Tool Box - Settings - General - Use Docker Compose V2 체크!
version: '3.8'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:8.4.3 # 버전은 사용자 지정
container_name: es01 # 컨테이너 이름 설정
environment:
- node.name=es01 # 노드 이름 설정
- cluster.name=es-docker-cluster # 클러스터 이름 설정
# 클러스터 구성을 위해 바인딩할 노드의 ip 또는 도메인 주소를 배열 형태로 지정
# 주소만 적는 경우 9300 ~ 9305 사이의 포트값만 검색하며 이 밖의 범위에 있는 경우 포트를 적어야한다.
- discovery.seed_hosts=host.docker.internal:9301,host.docker.internal:9302
# 클러스터가 최초 실행될 때. 여기에 명시된 노드들 중 마스터 노드 선출
- cluster.initial_master_nodes=es01,es02,es03
# Elasticsearch 가 사용중인 힙 메모리 영역을 다른 자바 프로그램이 간섭 못하도록 미리 점유하는 설정
# 항상 true 로 설정하는 것을 권장
- bootstrap.memory_lock=true
# X-Pack Security 사용 유무 설정
- xpack.security.enabled=false
# JVM 힙 크기를 512MB 로 설정, 공식 문서에선 프로덕션 환경에서는 사용하지 않을 것을 ㄷ권장
# 설정하지 않을 시 힙 크기를 자동조정
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
# 성능 및 노드 안정성을 위해 스와핑 비활성화
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
networks:
- esnet
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:8.4.3
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=host.docker.internal:9300,host.docker.internal:9302
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
ports:
- 9301:9300
networks:
- esnet
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:8.4.3
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=host.docker.internal:9300,host.docker.internal:9301
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
ports:
- 9302:9300
networks:
- esnet
kibana:
container_name: kibana
image: docker.elastic.co/kibana/kibana:8.4.3
environment:
SERVER_NAME: kibana
ELASTICSEARCH_URL: <http://es01:9200>
ELASTICSEARCH_HOSTS: <http://es01:9200>
ports:
- 5601:5601
depends_on:
- es01
- es02
- es03
networks:
- esnet
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
kibana:
driver: local
networks:
esnet:
docker-compose.yml 을 작성한 경로로 이동
$ docker-compose -f docker-compose.yml up -d