[Elasticsearch] Elasticsearch Engineer Training -1
- 본 포스트는 상명대학교
Elasticsearch 엔지니어 트레이닝
과정을 이수하고 작성한 글입니다. - 개인이 간단하게 실습을 위해 작성한 포스트이며
Enterprise 급 운용을 위한 글이 아님
을 밝힙니다.
Day01_ Elasticsearch Fundamentals
Elastic Stack Overview
- 검색은 모든 어플리케이션에 있어서 중요하다
- 루씬은 단순한 라이브러리라면, 엘라스틱 스택은 컴포넌트로 묶어 하나의 클러스터를 만든다.
- 분산환경이 중요하다.
1. Distributed search
- 실습환경은
1 node cluster
로 구성 - 10, 100+ 개가 넘는 node cluster도 사용가능하다 (엔터프라이즈 급)
2. Easily used by other languages
- 엘라스틱이 가지고 있는 프로토콜은 HTTP가 있다.
- REST API로만 접근
- 가장 많이 쓰는 method :
PUT
,POST
,GET
,DELETE
- 가장 많이 쓰는 method :
- DELETE operation은 조심하여 쓰자. (RESTful 방식의 단점)
Elastic Stack
Ingest
- Beats
- Logstash
Store, Search & Analyze
- Elasticsearch
- 엘라스틱 스택의 심장 역할
- Elasticsearch
Visualize & Manage
- Kibana
Summary
- The Elastic Stack is a collection of products with Elasticsearch at the heart.
Beats
are single purpose data shippersLogstash
is a server side data processing pipelineKibana
is an analytics and visualization
Getting Started Elasticsearch
- 루씬 기반이기 때문에 자바 JDK 필수 설치
jvm.options 파일
- java와 관련된 환경변수 대부분을 설정
elasticsearch.yml 파일
- elasticsearch 실행 환경에 대한 실제 설정 파일
백그라운드 실행
1 | $./bin/elasticsearch -d |
노드 이름 만들기
1 | $./bin/elasticsearch -E node.name=ACMEES001 |
노드 죽이기
1 | $kill `cat elastic.pid` |
클러스터 이름 만들기
1 | $./bin/elasticsearch -E cluster.name=acme_logging |
GCP VM 환경에 Elasticsearch, Kibana 설치와 환경 세팅
VM 인스턴스 실행
- 만들었던 인스턴스 선택
- SSH 연결 - 브라우저 창에서 열기 - 터미널 실행
1. Elasticsearch 파일 경로를 가져와 설치(21.02.22 최신버전)
- wgets 명령어 사용가능 시 사용해도 무방
- Linux 64bit
1 | curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsea |
2. Kibana 파일 경로를 가져와 설치(21.02.22 최신버전)
- Linux 64bit
1 | curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.11.1-linux-x86_64.tar.gz |
3. 압축 해제
1 | tar -xzvf elasticsearch-7.11.1-linux-x86_64.tar.gz |
4. 다운로드 받았던 설치파일 관리
- stack 폴더 만든 후 gz 파일 이동
1 | mkdir stack |
5. 간단하게 디렉토리 이름 변경
1 | mv elasticsearch-7.11.1/ es-711 |
6. elasticsearch에 데이터 저장소 (data, logs) 만들기
1 | cd es-711/ |
Elasticsearch configuration
1 | cd config |
vim 에디터로 수정
ESC
->i
눌러 입력모드 설정
Cluster, Node 이름 변경
- 데이터, 로그 수집 폴더 경로 설정
- 네트워크 포트 ->
기본으로 지정된 http.port 값
discovery seed host
-> GCP VM 인스턴스 이름cluster initial master node
-> 설정한 node name
ESC
-> :wq
눌러 저장하고 나가기
Kibana configuration
- es-711에서 상위 디렉토리로 나가 kb-711 디렉토리로 이동
- kb-711/config 디렉토리 이동
1 | ~/kb-711/config$ >> vi kibana.yml |
server.port
: 기본값server.host
: GCP VM 인스턴스 이름server.name
: elasticsearch node nameelasticsearch.hosts
: [“https://localhost:http.port 값
“]
Elasticsearch, Kibana 실행
GCP 방화벽 설정
GCP VPC 네트워크 - 방화벽
방화벽 규칙 만들기
- 이름 정하기
- 대상 : 지정된 대상 태그
- 대상 태그 :
http-server
,https-server
- 대상 태그 :
- 소스 필터 : IP 범위
- 소스 IP 범위 :
0.0.0.0/0
- 소스 IP 범위 :
- 프로토콜 및 포트
- tcp 체크 :
80
,kibana 기본 포트번호 값
- tcp 체크 :
- 규칙 저장
Compute Engine - VM 인스턴스
- 수정
http-server
,https-server
설정 되어있는지 확인 후 저장
- 수정
Elasticsearch 실행
Kibana 실행 전 무조건 elasticsearch를 올린 후 실행할 것!!
1 | cd es-711 |
- 새로운 터미널 창 열기
- elasticsearch 실행 확인
- ID와 Password를 이미 설정했다면
security_exeception
예외로 인해 정보를 열람할 수 없다.1
curl localhost: `http.port 값`
- ID와 Password를 이미 설정했다면
Kibana 실행
1 | cd kb-711 |
- https://
VM 외부 IP
:kibana 기본 포트번호
로 접속
ID/Password Setup
Elasticsearch 설정
elasticsearch 인스턴스 종료
elasticsearch.yml 열기
- 두 줄 옵션 vim editor 맨 아랫줄에 추가
xpack.security.enabled : true
xpack.security.transport.ssl.enabled : true
- 두 줄 옵션 vim editor 맨 아랫줄에 추가
저장 후 종료 (:wq)
elasticsearch 인스턴스 실행, 추가 터미널 실행 후 경로 진입, 아래 명령어 입력
1
~/es-711/bin$ ./elasticsearch-setup-passwords interactive
- y 입력
- elastic, apm_system, kibana_system, logstash_system, beats_system, remote_monitoring_user 에 대한 패스워드 설정
elasticsearch 인스턴스 재 실행
Kibana 설정
- Kibana 인스턴스 종료
- kibana.yml 열기
- elasticsearch.username : elastic (고정, 건드리지 말 것)
- elasticsearch.password : 직접 지정해야 함
- 저장 후 종료
- Kibana 인스턴스 재 실행
- 외부 IP로 재 접속 시 아이디와 패스워드를 묻는 창이 뜬다면 성공
[Elasticsearch] Elasticsearch Engineer Training -1
https://msj0319.github.io/2021/02/22/Elasticsearch-Elasticsearch-Engineer-Training-1/