시리즈 링크
- 해당글은 시작하세요! 엘라스틱 스택 8 책과, 김종민님의 Elastic Search 가이드북, 공식문서를 기반으로 학습과 동시에 정리됩니다.
- 따라서, 보다 효율적인 접근 방식이 있을 수 있고 정답이 아닐 수 있습니다.
엘라스틱 서치
키바나
비츠
로그스테이시
로그스테이시
와 비츠
를 통해 데이터를 가져와 엘라스틱 서치
에 저장하고, 조회를 위해 엘라스틱 서치
를 활용하거나, 키바나
를 활용해 시각화 하여 확인하는 구조입니다.더 깊이 들어가면, 내부 구조 등도 담을 수 있지만, 분석의 글이 아닌, 활용법에 대한 시리즈이기 때문에 최대한 관련 있거나 알아야 되는 내용만 담을 예정입니다.
Docker
기술을 활용해 설치를 진행하겠습니다.대신, 링크를 공유드립니다
$ docker network create elastic
$ docker network ls | grep
f64e96347415 elastic bridge local
Elastic Search
이미지 풀9.0.4
)항상 최신버전이 좋은 선택은 아닙니다. 학습 목적임으로, 최신버전으로 채택하여 사용하도록 하겠습니다.
$ docker pull elasticsearch:9.0.4
$ docker images | grep elasticsearch
elasticsearch 9.0.4 088eded016ff 7 days ago 1.37GB
Cosign
부분을 통해 진행하시면 됩니다.Elastic Search
컨테이너 생성docker run --name es01 --net elastic -p 9200:9200 -d elasticsearch:9.0.4
-it
옵션을 사용해 접속 및, -m
옵션으로 최대 메모리를 지정하도록 설정되어있습니다.사용자 이름
과 비밀번호
를 입력하도록 나오게 되는데, 사용자 이름은 elastic
입니다.docker logs es01
명령어를 통해 초기 비밀번호가 나옵니다.$ docker exec -it es01 bin/elasticsearch-reset-password -u elastic
WARNING: Owner of file [/usr/share/elasticsearch/config/users] used to be [root], but now is [elasticsearch]
WARNING: Owner of file [/usr/share/elasticsearch/config/users_roles] used to be [root], but now is [elasticsearch]
This tool will reset the password of the [elastic] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]y
Password for the [elastic] user successfully reset.
New value: _-nfLi4d5zXTBwrTmY4T
elastic
과 새로 설정된 비밀번호를 넣으면 다음과 같이 정상 동작이 됨을 확인할 수 있습니다.Kibana
를 설치합니다.$ docker pull kibana:9.0.4
elasticsearch
와 동일하게 같은 도커 네트워크에 넣어 줍니다.$ docker run --name kibana01 --net elastic -p 5601:5601 -d kibana:9.0.4
$ docker ps | grep kibana01
54ba0271f5da kibana:9.0.4 "/bin/tini -- /usr/l…" About a minute ago Up About a minute 0.0.0.0:5601->5601/tcp kibana01
Enrollment token
을 요구합니다.ElasticSearch
와 Kibana
를 연결해주는 1회용 인증 토큰입니다.$ docker exec -it es01 bin/elasticsearch-create-enrollment-token -s kibana
eyJ2ZXIiOiI4LjE0LjAiLCJhZHIiOlsiMTcyLjE4LjAuMjo5MjAwIl0sImZnciI6IjkxN2ZhOWZmYzE3N2U5YjIzNDcyMDYzM2JmZjBhOGUzNDEyYTMyZjBkYmNiZjY0MzllYTEwY2RjNWZiMjNiNzciLCJrZXkiOiJEVjl6V3BnQnVwMVMxUnBSMn
dzRDpyZlBDRUY0ZERvTDlQeVh2X25qVDVBIn0=
공식 홈페이지에서는 다음과 같은 명령어를 제공합니다.
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
윈도우 환경에서는 shell 환경 차이로 인해, 해당 명령어가 경로 문제로 실행되지 않을 수가 있습니다. 핵심은, es01 컨테이너의 bin 폴더 안의 저 실행 파일을 실행하는게 목적이므로, 위의 명령어로 대체하여 사용합니다.
bin/kibana-verfication-code.bat
을 실행시켜 코드를 확인합니다.docker exec -it kibana01 bin/kibana-verification-code
Your verification code is: 455 931
Explore on my own
을 눌러 넘어가줍니다.ElasticSearch
힙 메모리 설정elasticsearch
컨테이너에 접근해서, jvm.options
파일을 변경합니다.# es01 컨테이너 bash 접근
$ docker exec -it es01 bash
# 최소/최대 힙 사이즈 1GB 로 고정
$ echo -e "-Xms1g\n-Xmx1g" > /usr/share/elasticsearch/config/jvm.options.d/heap.options
# 컨테이너 접속 해제 후, 컨테이너 재시작
$ exit
$ docker restart es01
# 메모리 설정 확인
$ docker exec -it es01 ps aux | grep java
# 윈도우 환경에서 git bash 를 사용한다면
$ docker exec es01 ps aux | grep java
jvm.options.d
와 같은 파일 기반 설정을 권장합니다.ElasticSearch
를 활용하여 데이터를 인덱싱하고 조회하는 방법에 대해서 간략하게 확인해보겠습니다.elasticsearch.yml
, kibana.yml
등 구성 옵션에 대한 설명은 별도의 포스팅으로 진행 할 예정입니다.