Elastic Search

[Elasticsearch] Elasticsearch 서버 구축 설계

miin1635@ 2024. 1. 4. 16:11

현재 구성은 다음과 같다 가정한다 .

 

클러스터 1 - node1 ( 9201 포트) , node2 (9202 포트) ,  node3 (9203포트) 

 

키바나 :  5601 포트 

 

목표 : 키바나에 SSL 보안 적용 ( cert.pem + key.pem) 

 

프로세스 : 

 

 

1. 먼저 기본 세팅 설정을 해준 다음 (포트, 클러스터 이름,  서버호스트 등등) , es를 최초 실행한다. (인증서 발급을 위해) 

 

2. config/certs 폴더에 생성된 세 개의 인증서 중 , http.p12 인증서를 pem 파일로 변환 시켜야한다. (cert.pem, key.pem 으로 분리) 

*인증서 변환 전 , http.p12 의 인증서 비밀번호를 알아야 한다. 

해당 커맨드는 /bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password 로 확인 가능 

 

3. 아래 커맨드로 p12 인증서를 각각 pem으로 변환

openssl pkcs12 -in http.p12 -out cert.pem -clcerts -nokeys

openssl pkcs12 -in http.p12 -out key.pem -nocerts -nodes

 

4. kibana.yml 파일을 아래와 같이 설정해준다 .

 

# =================== System: Kibana Server (Optional) ===================
# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
# These settings enable SSL for outgoing requests from the Kibana server to the browser.
server.ssl.enabled: true
server.ssl.certificate:{ES경로}/config/certs/cert.pem
server.ssl.key: {ES경로}/config/certs/key.pem

 

지금 까지의 과정은 키바나의 인증서를 ES 클러스터의 키스토어로 사용한 것이다. 

 

그리고 노드 1번 (클러스터)에 노드 2번을 붙일 때는 추가로 elasticsearch.yml 파일에 transport.port 설정 및 

 

cluste.master_initial_nodes 설정 값과 discover_seed_hosts 설정을 바꾸어 주어야 한다. (그래야 마스터 노드가 모두 같은 클러스터에 있음을 인지한다.)