안녕하세요. 달소입니다.
요즘 업무상 Elasticsearch를 다룰일이 생겨서 오랜만에 다시 설치해보고있는데요.
테스트를 위해 Docker로 설정하고있는부분을 공유드리고자합니다.
Elastic Stack에 대한 정보는 추후 정리해보도록하겠습니다.
여기서는 Docker-compose를 이용해서 한번에 모든 스택을 설치해보겠습니다.
Elastic Stack 구성
ELK 스택에 대해서 나중에 설명해드린다고했지만.. 만들어지는 docker에 대해서 간단하게는 설명해드려야된다고 생각하기때문에 ㅎㅎ
간단하게 컨테이너로 말씀드리겠습니다.
여기서 ES01~03은 일부러 Master와 Node를 나눈것으로 하나로 설치해도 무방하긴합니다만 역할분담을 위해 나눠설치했습니다.
버전은 현재 날짜 기준(21/05/24) 최신버전인 7.12.1 입니다.
docker-compose 설정파일
mkdir -p /data/elk/ && cd /data/elk
vi docker-compose.yml
version: ‘2.2’
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
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=-Xms512m -Xmx512m”
ulimits:
memlock:
soft: -1
hard: -1
volumes:
– data01:/usr/share/elasticsearch/data
ports:
– 9200:9200
networks:
– elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.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
networks:
– elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.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
networks:
– elastic
logstash:
container_name: logstash
image: docker.elastic.co/logstash/logstash:7.12.1
environment:
LS_JAVA_OPTS: “-Xmx256m -Xms256m”
volumes:
– logstash:/usr/share/logstash/data
networks:
– elastic
depends_on:
– es01 #elasticsearch 가 실행된 이후 logstash 실행되도록 depends_on 설정
kib01:
image: docker.elastic.co/kibana/kibana:7.12.1
container_name: kib01
ports:
– 5601:5601
environment:
ELASTICSEARCH_URL: http://es01:9200
ELASTICSEARCH_HOSTS: http://es01:9200
networks:
– elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
logstash:
driver: local
networks:
elastic:
driver: bridge
이렇게 docker-compose.yml 을 생성한 후에 docker-compose up 명령어로 실행시켜주면
이미지를 다운받고 자동으로 생성됩니다.
중지는 docker-compose down 입니다.
curl http://localhost:9200 을 했을떄 아래처럼 결과가 나온다면 엘라스틱서치가 구동중이며
웹으로 [IP]:5601, localhost:5601로 들어갔을때 아래처럼 kibana가 잘보인다면 모두 완료된것입니다.
기타 자세한 사용법같은건.. 나중에 다뤄보도록하겠습니다.[Reference] : 달소, 「서버포럼 – ELK Stack Docker로 쉽게 설치하기.」 https://svrforum.com/?document_srl=38121&mid=develop&act=dispBoardContent.
안녕하세요~
설명 감사합니다 🙂
궁금한 것이 하나 있는데, 이전에 Ubuntu에서 6.x 버전 사용할 때는 마스터 노드랑 데이터 노드 분리할 때 설정파일에 따로 명시를 해줬는데 도커에서 설정할 때는 따로 명시할 필요가 없는건가요?
그럼 어떻게 구분이되서 동작이 되는건지 궁금합니다.
감사합니다.
도커에서도 환경변수 설정을 통해 마스터,데이터 노드 구분이 가능합니다!