검색엔진/ElasticSearch

Logstash 에서 여러 Elasticsearch로 요청 보내기

ZzangHo 2022. 2. 14. 16:44
728x90

동일한 데이터를 서로 다른 클러스터에 색인 요청을 보내려면 어떻게 해야 할까?

 

코드

elasticsearch {
  hosts => [ "http://elasticsearch1:9200" ] # Elasticsearch 1
  index => "index1_%{+YYYYMMdd}"
  document_id => "%{docUid}"
  http_compression => true
}
elasticsearch {
  hosts => [ "http://elasticsearch2:9200" ] # Elasticsearch 2
  index => "index2_%{+YYYYMMdd}"
  document_id => "%{docUid}"
  http_compression => true
}

 

주의

hosts 설정에 array로 여러개의 정보를 나열하는 이유는 Load balance를 위한 것이다.
예를 들어 elasticsearch-1~3 총 3대의 서버가 클러스터로 묶여 있을 경우 아래와 같이 입력한다.
hosts => [ "http://elasticsearch-1:9200", "http://elasticsearch-2:9200", "http://elasticsearch-3:9200" ]
위에 처럼 입력하면 3군데로 분산되어 나뉘어 들어간다.