2020-12-15 현재 공식 ElasticSearch, Kibana Docker 이미지 최신 버전은 7.10.1 이다.
ElasticSearch 7.10.1 Docker Compose 가이드에 따라 클러스터 구성을 하고 Kibana 설정을 한다.
docker 컴포즈를 실행하기 전에 docker engine 메모리가 4GB 이상이 설정되어 있는지 확인해야한다.
4GB 이하로 설정이 되어있다면 정상적인 실행이 되지 않는다.
최종 구성은 아래와 같다.
- ElasticSearch Master 노드 1
- ElasticSearch Data 노드 2
- Kibana 1
version: '2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
container_name: es01
environment:
# Master 노드 es01은 localhost:9200 포트를 listens 하고있다.
- node.name=es01
# es cluster name
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
# elasticsearch memory swap config
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
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=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
ports:
- 9301:9300
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
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=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
ports:
- 9302:9300
networks:
- elastic
kibana:
container_name: kibana
image: docker.elastic.co/kibana/kibana:7.10.1
environment:
SERVER_NAME: kibana
# Elasticsearch 기본 호스트는 http://elasticsearch:9200 이다. 현재 docker-compose 파일에 Elasticsearch 서비스 명은 es01로 설정되어있다.
ELASTICSEARCH_HOSTS: http://es01:9200
ports:
- 5601:5601
# Elasticsearch Start Dependency
depends_on:
- es01
- es02
- es03
networks:
- elastic
# 각 Elasticsearch 노드 및 kibana 볼륨설정 적절한 경로로 변경해서 사용해도 된다.
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
kibana:
driver: local
networks:
elastic:
driver: bridge
docker compose 실행
docker-compose up -d
실행 확인
docker ps -a 명령어를 통해 ElasticSearch Master 1, Data 노드 2, Kibana 컨테이너가 실행된것을 확인한다.
Kibana DevTools 확인
브라우저에 http://localhost:5601 접속한다.
DevTools에서 데이터 조회/입력/삭제가 정상적으로 되는지 확인한다.
GET _cat/indices?pretty=true
PUT /hello/_doc/1
{
"title": "docker-compose",
"contents": "kibana"
}
GET /hello/_doc/1?pretty=true
DELETE /hello/_doc/1
Docker 종료
docker-compose down 명령어를 사용하여 docker-compose 를 종료한다.
docker-compose down -v 옵션을 사용하면 볼륨도 삭제할수 있다.
'Develop > infra' 카테고리의 다른 글
CDC - debezium 설정 (1) | 2021.07.25 |
---|---|
Nginx 튜닝, 보안 설정 및 Docker-compose 실행 (0) | 2020.12.16 |
Kubernetes 개념 (0) | 2020.11.24 |
MacOS Kubernetes 사용하기 (0) | 2020.11.23 |
Docker Compose를 사용한 Jenkins master/worker(slave) 설정 (0) | 2020.11.23 |