Docker Compose를 사용하여 Kibana와 함께 Elasticsearch 7을 설치하는 방법
5286 단어 docker
전제 조건
이 자습서에서는 사용자가 Docker 및 Docker Compose에 익숙하다고 가정합니다. 그렇지 않은 경우 Docker Compose( https://medium.com/swlh/simplifying-development-on-your-local-machine-using-docker-and-docker-compose-2b9ef31bdbe7?source=friends_link&sk=240efed3fd3a43a1779e7066edb37235 )를 사용한 일종의 단기 집중 과정인 이 기사를 참조할 수 있습니다.
비디오 레슨
또한 내 YouTube 채널에 이에 대한 비디오 자습서를 만들었습니다. 원하시는 분들은 아래 링크로 들어가셔서 확인해보세요
1단계: docker-compose.yml 파일 생성
이 프로젝트를 위해 컴퓨터에 디렉터리를 만듭니다.
mkdir $HOME/elasticsearch7-docker
cd $HOME/elasticsearch7-docker
해당 디렉토리 안에 아래와 같이 내용이 포함된
docker-compose.yml
파일을 만듭니다.version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.2-amd64
env_file:
- elasticsearch.env
volumes:
- ./data/elasticsearch:/usr/share/elasticsearch/data
kibana:
image: docker.elastic.co/kibana/kibana:7.9.2
env_file:
- kibana.env
ports:
- 5601:5601
2단계: env 파일 만들기
Elasticsearch와 Kibana 도커 이미지 모두
elasticsearch.yml
및 kibana.yml
파일에 정의된 대로 구성에 전달되는 환경 변수를 전달할 수 있습니다. 컨테이너에 환경 변수를 전달하기 위해 docker compose 파일의 env_file
설정을 사용할 수 있습니다.elasticsearch.env
파일을 만듭니다.cluster.name=my-awesome-elasticsearch-cluster
network.host=0.0.0.0
bootstrap.memory_lock=true
discovery.type=single-node
참고: 최신 버전의 Elasticsearch에서는 단일 노드 클러스터에 대한 옵션
discovery.type=single-node
을 설정해야 합니다. 그렇지 않으면 시작되지 않습니다.kibana.env
파일 생성SERVER_HOST="0"
ELASTICSEARCH_URL=http://elasticsearch:9200
XPACK_SECURITY_ENABLED=false
4단계: Elasticsearch 데이터 디렉터리 생성
docker-compose.yml
파일을 생성한 디렉토리로 이동하여 하위 디렉토리data
를 생성합니다. 그런 다음 data
디렉토리 안에 다른 디렉토리elasticsearch
를 만듭니다.mkdir data
cd data
mkdir elasticsearch
이 디렉토리를
elasticsearch
컨테이너의 데이터 디렉토리에 마운트합니다. docker-compose.yml
파일에는 다음 줄이 있습니다. volumes:
- ./data/elasticsearch:/usr/share/elasticsearch/data
이렇게 하면 컨테이너를 중지했다가 나중에 다시 시작해도 Elasticsearch 컨테이너의 데이터가 유지됩니다. 따라서 컨테이너를 다시 시작할 때 인덱스를 잃지 않습니다.
4단계: 설정 실행
이제 가도 됩니다. 터미널을 열고
docker-compose.yml
파일이 포함된 폴더로 이동하여 다음 명령을 실행합니다.docker-compose up -d
docker.elastic.co에서 이미지를 가져오기 시작하고 인터넷 속도에 따라 시간이 걸립니다. 이미지를 가져오면 컨테이너가 시작됩니다.
다음 명령을 실행하여 두 컨테이너가 모두 실행 중인지 확인할 수 있습니다.
docker-compose ps
출력은 다음과 같아야 합니다.
Name Command State Ports
------------------------------------------------------------------------------------------------------
docker-elasticsearch-setup_elasticsearch_1 /tini -- /usr/local/bin/do ... Up 9200/tcp, 9300/tcp
docker-elasticsearch-setup_kibana_1 /usr/local/bin/dumb-init - ... Up 0.0.0.0:5601->5601/tcp
State
필드를 확인하십시오. 두 컨테이너 모두에 대해 Up
여야 합니다. 그렇지 않은 경우 명령을 사용하여 로그를 확인합니다({serviceName}을 서비스 이름으로 바꿉니다(예: elasticsearch
또는 kibana
).docker-compose logs -f {serviceName}
발생할 수 있는 일반적인 오류는
vm.max_map_count
가 너무 낮기 때문입니다. 명령을 실행하여 해결할 수 있습니다.sysctl -w vm.max_map_count=262144
자세한 내용은 이 링크를 확인하십시오https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
두 서비스가 모두 제대로 실행되고 있다면 웹 브라우저의 http://localhost:5601에서 kibana 콘솔을 볼 수 있어야 합니다. Elasticsearch 클러스터가 준비되고 Kibana가 클러스터에 연결하는 데 시간이 걸리므로 몇 분 정도 기다리십시오.
docker-compose logs -f kibana
명령을 사용하여 로그를 검사하면 더 많은 정보를 얻을 수 있습니다.이것으로 설정이 완료됩니다. 도움이 되셨기를 바랍니다. 즐거운 코딩하세요 :-)
Reference
이 문제에 관하여(Docker Compose를 사용하여 Kibana와 함께 Elasticsearch 7을 설치하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mandeepm91/how-to-install-elasticsearch-7-with-kibana-using-docker-compose-5d37텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)