본문 바로가기
Data/ELK

[2021.06.15] 인턴 +106 elasticsearch Cluster & Node Binding Concept

by injekim97 2021. 6. 15.
반응형

[2021.06.15] 인턴 +106  elasticsearch Cluster & Node Binding Concept

 

 

https://esbook.kimjmin.net/03-cluster/3.1-cluster-settings-

 

3.1 클러스터 구성

이 문서의 허가되지 않은 무단 복제나 배포 및 출판을 금지합니다. 본 문서의 내용 및 도표 등을 인용하고자 하는 경우 출처를 명시하고 김종민(kimjmin@gmail.com)에게 사용 내용을 알려주시기 바랍

esbook.kimjmin.net

-> 해당 위의 링크의 내용으로 게시글을 작성하였다.(이미지도 포함)

 

 

 

해당 게시글에서는, elasticsearch에서 아래와 같은 방법들을 알아보기위해 작성하였다.

* 여러 서버에서 각 노드 실행하는 방법

* 하나의 서버에서 여러 노드를 실행하는 방법

 

 

 

<여러 서버에 하나의 클러스터로 실행>

-> Elasticsearch의 노드들은 클라이언트와의 통신을 위한 http 포트(9200~9299), 노드 간의 데이터 교환을 위한 tcp 포트 (9300~9399) 총 2개의 네트워크 통신을 열어둠

* 일반적으로 1개의 물리 서버마다 하나의 노드를 실행하는 것을 권장

 

 

 

<하나의 물리적인 서버 안에서 여러 개의 노드를 실행>

-> 서버1에는 두개의 노드가 있기 때문에 서버 1의 두번째 노드는 실행되는 http, tcp 포트가 각각 9201, 9301 로 실행

* 물리적인 구성과 상관 없이 여러 노드가 하나의 클러스터로 묶이기 위해서는 클러스터명 cluster.name 설정이 묶여질 노드들 모두 동일해야함

 

* 노드를 모두 동일하게 설정해야 되는 이유는?

-> 같은 서버나 네트워크망 내부에 있다 하더라도 cluster.name이 동일하지 않으면 논리적으로 서로 다른 클러스터로 실행 및 별개의 시스템으로 인식하기 때문에

 

* elasticsearch node가 서로 합쳐지는 것을 바인딩(binding) == 같은 클러스터가 합쳐지는 것을 바인딩(binding)

* 같은 클러스터로 바인딩 되기 위해선, 클러스터 이름이 같아야함.

 

 

 

<하나의 물리 서버에서 서로 다른 두 개의 클러스터 실행>

-> es-cluster-1 , es-cluster-2

 

일단 노드를 3개 준비해야함(사진 X, 말로 풀어다 씀)

 

즉, elasticsearch를 총 3번 깔아야함

 

1. 첫 번째 elasticsearch를 설치 한 후, 폴더명을 node-1로 설정

-> elasticsearch.yml에서 cluster.name: "elk-cluster-1", node.name: "node-1" 로 설정

 

 

2. 두 번째 elasticsearch를 설치 한 후, 폴더명을 node-2로 설정

-> elasticsearch.yml에서 cluster.name: "elk-cluster-1", node.name: "node-2" 로 설정

 

 

3. 세 번째 elasticsearch를 설치 한 후, 폴더명을 node-3로 설정

-> elasticsearch.yml에서 cluster.name: "elk-cluster-2", node.name: "node-3" 로 설정

 

 

* 이렇게 했을 때, node-1에 값을 넣으면, node-1과 node-2가 바인딩 되어 있기 때문에 정보를 공유함

* 하지만, node-1에 넣었던 값을 출력하기 위해 node-3에서 시도하면 출력되지 않음(독립적=클러스터이름이 다르기 때문)

 

 

 

 

* 디스커버리란?

-> 노드가 서로 다른 노드를 찾아가면서, 같이 한 클러스터로 구성되는 과정

 

 

<디스커버리 하는 과정을 그림으로 표현>

* discovery.seed_hosts 설정에는 처음에 탐색할 노드 3~5 개 정도만 설정 하면 큰 문제 없이 클러스터가 바인딩 됨

* 보통은 마스터 후보 노드들을 지정하게 되며, 처음 탐색하는 대상 노드는 반드시 먼저 가동중이어야 함

반응형

댓글