엘라스틱서치
IT 위키
- Elasticsearch
- 아파치 루씬(Lucene)을 기반으로 만든 분산 검색·분석 엔진
JSON 문서를 저장하고 역색인(Inverted Index)으로 전문 검색을 제공한다. REST API 로 다룬다.
- 인덱스(Index) — 문서의 모음. 관계형 DB 의 테이블에 해당한다
- 문서(Document) — JSON 한 건. 행에 해당한다
- 샤드(Shard) — 인덱스를 쪼갠 단위. 노드에 분산 배치된다
- 레플리카(Replica) — 샤드의 복제본. 장애 대비와 읽기 부하 분산
- 매핑(Mapping) — 필드의 타입 정의
문서를 색인할 때 텍스트를 검색 가능한 토큰으로 쪼개는 모듈이다. 처리 순서가 정해져 있다.
| 순서 | 구성 요소 | 하는 일 | 예 |
|---|---|---|---|
| 1 | 캐릭터 필터(Character Filter) | 토큰으로 쪼개기 전에 문자열 자체를 손본다 | HTML 태그 제거, 문자 치환 |
| 2 | 토크나이저(Tokenizer) | 문자열을 토큰으로 분리한다. 분석기당 하나만 둘 수 있다 | 공백 기준 분리, 한글 형태소 분석(Nori) |
| 3 | 토큰 필터(Token Filter) | 쪼개진 토큰을 가공한다 | 소문자 변환, 불용어 제거, 동의어 확장, 어간 추출 |
- 캐릭터 필터 → 토크나이저 → 토큰 필터 순이다. 토크나이저가 가운데라는 점이 자주 출제된다.
| 구성 | 역할 |
|---|---|
| Beats | 경량 수집기. 각 서버에서 로그·메트릭을 보낸다 (Filebeat, Metricbeat) |
| Logstash | 수집·변환·적재 파이프라인 |
| Elasticsearch | 저장·색인·검색 |
| Kibana | 시각화와 대시보드 |
예전에는 ELK(Elasticsearch, Logstash, Kibana) 스택이라 불렀고, Beats 가 추가되면서 엘라스틱 스택으로 이름이 바뀌었다.
- 방화벽·IDS·서버 로그를 한곳에 모아 검색하는 로그 통합 관리
- SIEM 기능 — 상관 분석, 탐지 규칙, 알림
- 침해사고 조사 시 대용량 로그의 신속한 추적
