본문 바로가기

Elasticsearch

Elasticsearch clustering 구현

Elasticsearch clustering의 경우

3개의 Master-eligible nodes로 구성하는 것으로 HA를 구현하기 적절

 

먼저 원본 es ec2와 같은 ec2를 2개 생성하고 es를 전부 설치한다.

그리고 각 es를 실행시키면 당연하게도 클러스터링이 되지 않는다.

docker-compose.yml과 .env를 신경써서 수정해주어야 하며 그 수정사항은 대표적으로
- discovery.type
- http.port
- transport.tcp.port
- clustering.initial_master_nodes
- ports, expose
- .env의 ES_SEED_HOSTS, ES_MASTER_HOSTS
등이 있다.

 

추가로 kibana에도 각 ES의 주소를 입력해주어야 하는데
ES에서 여러 주소를 콤마(,)로 붙여서 입력하는 것과는 다르게
docker-compose.yml에서 같은 이름의 항목을 여럿 작성하여야 정상적으로 작동한다.

 

추가의 추가로 filebeat, metricbeat도 es를 endpoint로 가지고 있다.
filebeat, metricbeat의 경우 es와 같이 콤마(,)로 여러 주소를 입력할 수 있다.

 

*issue

-------------------------------------------------------------------------------------------------------------------------

ERROR: [1] bootstrap checks failed 
​​​​​​​[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

-------------------------------------------------------------------------------------------------------------------------

클러스터링 진행 시 위와 같은 에러가 발생하기에

-------------------------------------------------------------------------------------------------------------------------

sudo vi /etc/sysctl.conf
vm.max_map_count=262144
sudo sysctl -p

-------------------------------------------------------------------------------------------------------------------------

위와 같은 방법으로 해결할 수 있다.

'Elasticsearch' 카테고리의 다른 글

Elasticsearch replica shard  (0) 2020.12.11
Elasticsearch shard  (0) 2020.12.11
Elasticsearch restart issue  (0) 2020.12.11
Elasticsearch clustering  (0) 2020.12.08