본문 바로가기

ElasticSearch

(5)
ElasticSearch에 대해 알아보자 - (5) 트러블슈팅 : 문서 색인 불가 트러블슈팅 : 디스크 사용량으로 인한 색인 불가 문제운영 중인 Elasticsearch 클러스터에서 갑자기 문서가 색인되지 않고, 클라이언트 측에서 403 Forbidden Error가 발생하는 상황을 겪을 수 있습니다. 이는 단순한 권한 문제처럼 보이지만, 실제로는 클러스터의 디스크 사용량과 밀접하게 관련이 있습니다. 1. 문제 원인: 디스크 사용량 보호 장치Elasticsearch는 노드의 디스크 사용량이 일정 수준을 초과하면 클러스터 안정성을 위해 색인을 제한하는 보호 장치를 내장하고 있습니다. 디스크가 가득 차면 운영 체제 자체도 정상적으로 동작하지 않을 수 있기 때문입니다. 이 동작은 다음 설정값들로 제어됩니다.cluster.routing.allocation.disk.threshold_enabl..
ElasticSearch에 대해 알아보자 - (4) 트러블슈팅 : 클러스터의 상태 이상, 샤드 배치 이상 트러블 슈팅 : 클러스터의 상태 이상엘라스틱서치를 운영하다 보면 클러스터 상태가 항상 Green으로 유지되지 않고, Yellow 혹은 Red로 표시되는 경우가 있습니다. 이번 글에서는 이러한 상태들이 의미하는 바와, 실제 트러블슈팅 접근 방식을 정리해 보겠습니다. 클러스터 상태 색상 의미Green모든 Primary 샤드와 Replica 샤드가 정상적으로 각 노드에 배치된 상태색인 및 검색 모두 정상YellowPrimary 샤드는 정상 동작하지만 일부 Replica 샤드가 배치되지 않은 상태색인에는 문제가 없지만, 장애 상황에 대비한 복제본이 없으므로 검색 성능 및 안정성에 영향을 줄 수 있음Red일부 Primary 샤드가 배치되지 않은 상태색인과 검색 모두에 영향을 주며, 문서 유실 가능성이 있음즉, G..
ElasticSearch에 대해 알아보자 - (3) 검색 과정 이해하기 검색 (Search) 이전에 색인 과정을 살펴 보면, inverted index를 생성하게 됩니다. inverted index는 검색 과정에서 매우 중요한 부분 입니다. 검색 과정을 살펴보면 검색어 분석을 통해 inverted index를 검색하게 됩니다.역색인 (Inverted Index)Inverted Index(역색인)는 검색 엔진의 핵심 데이터 구조로, 문자열을 분석한 결과를 저장하고 있는 구조체 입닌다. inverted index를 활용해 특정 단어가 어떤 문서에 포함되어 있는지를 빠르게 찾을 수 있게 해줍니다.일반적인 색인(Forward Index): 문서 → 단어 목록역색인(Inverted Index): 단어 → 문서 목록즉, "어떤 문서에 이 단어가 있나?" 를 빠르게 찾을 수 있도록 설..
ElasticSearch에 대해 알아보자 - (2) 색인 과정 이해하기 ElasticSearch Indexing색인 이란?Elasticsearch에서 색인(Indexing)은 데이터를 문서(Document) 단위로 인덱스에 저장하고, 검색할 수 있도록 구조화하는 과정을 의미합니다. 단순히 저장만 하는 것이 아니라, 검색 성능을 높이기 위해 역색인(Inverted Index) 구조를 생성하는 게 핵심입니다.색인(Indexing) 과정 총 노드 3대의 클러스터에 Primary 샤드을 1대, Replicas 샤드를 1대로 설정해 두면 위 그림 처럼 설정 됩니다. 이전에 이론편에서 설명드리기는 했지만 Elasticsearch는 어떤 노드에 조회 및 색인 요청을 하던 동일한 결과 값을 보장합니다. 즉 1번 노드에 색인 요청을 해도 되고, 2번 노드, 3번 노드에 색인 요청을 해도 됩..
ElasticSearch에 대해 알아보자 - (1) 용어 이해하기 (클러스터, 노드, 인덱스, 샤드, 매핑) ElasticSearch란?ElasticSearch는 검색, 데이터 분석에 최적화된 데이터베이스 입니다. 조금 더 어렵게 설명한다면 오픈 소스 분산, RESTful 검색 및 분석 엔진, 확장 가능한 데이터 저장소 및 벡터 데이터베이스이며, 루씬(Lucene- 자바 라이브러리)기반의 오픈소스 검색 엔진입니다. Json 기반의 문서를 저장하고 검색할 수 있으며 분석 작업도 가능 합니다. ElasticSearch는 현업에서 크게 2가지 용도로 사용이 됩니다. 1. 데이터 수집 및 분석Elasticsearch는 대규모 데이터(ex. 로그 등)를 수집 및 분석하는 데 최적화되어 있습니다. 주로 Elasticsearch(데이터 저장), Logstash(데이터 수집 및 가공), Kibana(데이터 시각화)를 같이 활..