본문 바로가기

ElasticSearch Cookbook8

기초부터 다지는 엘라스틱서치 운영 (12장) / ElasticSearch 클러스터 구축 시나리오 엘라스틱 서치 운영 핵심 개념 보통 분석 엔진에서는 샤드 하나의 크기를 20~40G 정도로 할당하는 것을 권고하기 때문에 이 사이즈보다 더 커지는 것은 지양해야 한다 인덱스를 일별 단위가 아니라 월별로 보관하는 것이 좋다. 일별로 보관하도록 설정하면 긴 보관 기간에 따른 클러스터 내 전체 샤드의 개수가 증가하는 것이 클러스터 운영에 부담이 될 수 있다. 클러스터 내에 전체 샤드 개수가 너무 많아지면 마스터 노드에 부하가 가중된다. 데이터 노드의 여력이 충분한데 클러스터 전체 성능이 저하된다면 마스터 노드의 사용량을 모니터링해보자 먼저 데이터 노드 한 대로 클러스터를 구성하고, 해당 노드에 데이터를 저장한 후 사용자의 검색 쿼리에 대한 응답을 100ms 이하로 줄 수 있는지 테스트해야 한다. 분석 엔진으로.. 2024. 4. 19.
기초부터 다지는 엘라스틱서치 운영 (11장) / 검색 성능 최적화 엘라스틱 서치 운영 핵심 개념 많은 문서가 캐싱되어 허용된 캐시 메모리 영역이 가득 차면 LRU(Least Recently Used Algorithm) 알고리즘에 의해 캐싱된 문서를 삭제한다 Shard Request Cache는 샤드를 대상으로 캐싱되는 영역 Node Query Cache가 검색 엔진에서 활용하기 적합한 캐시 영역이라면 이 Shard Request Cache는 분석 엔진에서 활용하기 적합한 캐시 영역이라 할 수 있다 Node Query Cache는 문서의 내용을 캐싱 Shard Query Cache는 집계 쿼리의 결과 Field Data Cache 영역은 주로 검색 결과를 정렬하거나 집계 쿼리를 수행할 때 지정한 필드만을 대상으로 해당 필드의 모든 데이터를 메모리에 저장하는 캐싱 영역 이.. 2024. 4. 18.
기초부터 다지는 엘라스틱서치 운영 (10장) / 색인 성능 최적화 엘라스틱 서치 운영 핵심 개념 동적 매핑을 사용하면 불필요한 매핑 정보가 생성될 수 있으며, 이런 불필요한 매핑 정보는 불필요한 색인 작업을 유발하게 되어 색인 성능을 저하시킴 keyword 타입은 ignore_above라는 속성()이 하나 더 붙는데 문자열 중 해당 길이 이상인 값은 색인에 포함하지 않는다는 뜻이다. 정적 매핑을 통한 성능 향상은 문자열 형태의 필드에서 효과가 가장크며, 문자열 필드가 많으면 많을수록 분석이 불필요한 필드를 keyword 타입으로 변경해서 성능 향상 효과를 볼 수 있다. bulk API는 한 번에 다량의 문서를 색인, 삭제, 수정할 때 사용할 수 있는 API이다. 레플리카 샤드 개수를 0으로 설정하여 색인 성능 확보 레플리카 샤드가 없다면 전체적인 색인 성능이 향상된다... 2024. 4. 17.
기초부터 다지는 엘라스틱서치 운영 (9장) / 검색 엔진으로 활용하기 엘라스틱 서치 운영 핵심 개념 standard analyzer의 동작 중에 모든 문자를 소문자하는 과정이 포함 되어 있음 analyzer로 인입되는 문자열은 내부적으로 character filter를 거친 후 tokenizer에 의해 가공되고 마지막으로 token filter를 거쳐 최종적으로 n개의 토큰이 생성됨. analyzer와 검색은 어떤 상관 관계가 있을까? analyzer를 통해 생성한 토큰들이 inverted index에 저장되고, 검색할 때는 이 inverted index에 저장된 값을 바탕으로 문서를 찾는다. scroll 옵션 from/size와 유사해 보이지만 검색 당시의 스냅샷을 제공해 준다 from/size를 통해 pagnation을 하는 동안에 새로운 문서가 인입되면 기존 검색 결.. 2024. 4. 16.
기초부터 다지는 엘라스틱서치 운영 (8장) / 분석 엔진으로 활용하기 엘라스틱 서치 운영 핵심 개념 Elastic Stack은 로그를 수집, 가공하고 이를 바탕으로 분석하는 데 사용되는 플랫폼을 의미함 로그를 전송하는 Filebeat 전송된 로그를 json 형태의 문서로 파싱하는 Logstash grok 패턴을 이용해서 파싱 룰을 정의함 grok은 비정형 데이터를 정형 데이터로 변경해 주는 라이브러리 logstash.yml Logstash와 관련된 설정을 할 수 있는 기본 설정 파일이다. conf.d 파싱에 사용할 플러그인과 그에 따른 파싱 룰을 정의하는 설정 파일이 모여있는 디렉터리이다. 파싱된 문서를 저장하는 ElasticSearch 데이터를 시각화 하는 Kibana Reference URL 2024. 4. 15.
기초부터 다지는 엘라스틱서치 운영 (7장) / 클러스터 성능 모니터링과 최적화 엘라스틱 서치 운영 핵심 개념 클러스터의 상태를 확인 '_cat/health' 클러스터를 구성하는 노드들의 상태를 확인하는 방법은 '_cat/nodes'이다. 인덱스의 상태와 정보 확인하기 '_cat/indicies' 샤드의 상태 확인하기 '_cat/shards' 노드의 성능 지표 '_nodes/stats' 클러스터의 색인 성능 curl -s http://localhost:9200/_stats?pretty | more rejected는 ElasticSearch 클러스터 레벨에서 현재 처리량이 부족하다는 것을 알 수 있는 지표 ES는 현재 처리할 수 있는 양보다 많은 양의 요청이 들어온 경우 큐에 요청을 쌓아놓는다. 하지만 큐도 꽉 차서 더 이상 요청을 쌓아놓을 수 없으면 rejected 에러를 발생시키며.. 2024. 4. 14.