[Elastic Stack] Elastic Stack 정리
# Elastic Stack
1. Elastic Stack
- Open Source 제품 Collection = Elasticsearch, Logstash, Kibana, Beats
2. Elasticsearch
- 오픈소스 풀텍스트 검색 및 분석 엔진
- 분산형 RESTful 검색 및 분석 엔진
- 정형, 비정형, 위치정보, 메트릭 등 원하는 방법으로 다양한 유형의 검색을 수행하고 결합 가능
- 표준 RESTful API와 JSON 사용
2-1. NRT(Near Realtime)
- NRT 검색 플랫폼
- 문서를 색인화하는 시점부터 문서가 검색 가능해지는 시점까지 약간의 대기 시간 존재
2-2. Cluster
- 전체 데이터를 함께 보유하고 모든 노드에서 연합 인덱싱 및 검색 기능을 제공하는 하나 이상의 노드 모음
- 기본적으로 ‘elasticsearch’ 라는 고유한 이름으로 식별
2-3. Node
- 클러스터의 일부이며, 데이터를 저장하고 클러스터의 인덱싱 및 검색 기능에 참여하는 단일 서버
- 노드에 할당되는 임의 UUID의 이름으로 식별
- 특정 클러스터를 클러스터 이름으로 결합하도록 노드 구성 가능
2-4. Index
- 다소 유사한 특성을 갖는 문서들의 집합
- 단일 클러스터에서 원하는 만큼의 인덱스 정의 가능
2-5. Type
- Index 내에서 하나 이상의 Type 정의 가능
2-6. Document
- Index를 생성할 수 있는 기본 정보 단위
- JSON으로 표현
2-7. Shards
- Index는 잠재적으로 단일 노드의 하드웨어 제한을 초과할 수 있는 많은 양의 데이터를 저장 가능
- 하지만 단일 노드의 디스크가 맞지 않거나 검색 요청만 처리하기에는 너무 느릴 수 잇기 때문에 shards를 이용하여 Index를 여러 조각으로 나눌수 있음
- 수평적으로 컨텐츠 볼륨을 split/scale 가능
- 여러 노드에서 잠재적으로 분산을 통해 작업을 분산 및 병렬 처리를 할 수 있으므로 성능/처리량 향상
2-8. Replication
- 복제본 샤드는 복사된 원본/기본 샤드와 동일한 노드에 할당되지 않음
- 모든 복제본에서 검색을 병렬로 실행할 수 있기 때문에 검색 볼륨/처리량을 수평 확장 가능
- 기본적으로 각 Index는 4개의 기본 샤드와 1개의 복제본이 할당
3. Logstash
- 오픈소스 서버측 데이터 처리 파이프라인
- 다양한 소스에서 동시에 데이터를 수집하고 변환하여 자주 사용하는 Stash 보관소로 전송
3-1. Input
- 입력을 사용하여 Logstash에 데이터를 가져옴
- file, syslog, beats(Filebeat)
3-2. Filter
- Logstash 파이프 라인의 중간 처리 장치
- grok : 구문 분석 및 임의의 텍스트로 구성
- mutate : 이벤트 필드에서 일반적인 변환을 수행
- drop : 이벤트를 삭제
- clone : 이벤트의 복사본을 만듦
- geoip : ip의 지리적 위치에 대한 정보 추가
3-3. Output
- Logstash 파이프 라인의 최종 단계
- elasticsearch : 이벤트 데이터를 elasticsearch로 전송
- file : 디스크 파일에 씀
- graphite : graphite에 전송(메트릭을 저장하고 그래프로 작성하는데 사용되는 오픈 소스)
- statsd : 카운터 및 타이머와 같은 통계를 수신하고 UDP를 통해 전송되며, 하나 이상의 플러그 가능한 백엔드 서비스에 집계를 보내는 서비스
3-4. Codec
- 입력 또는 출력의 일부로 작동할 수 있는 스트림 필터
- 인기 코덱에는 JSON, msgpack, plain
4. Kibana
- 데이터를 시각적으로 탐색하고 실시간으로 분석
5. Beats
- 서버에 에이전트로 설치
- 다양한 유형의 데이터를 Elasticsearch 또는 Logstash에 전송하는 오픈소스 데이터 발송자
5-1. Filebeat
- 서버에 로그 파일을 제공
5-2. Packetbeat
- 응용 프로그램 서버 간에 교환되는 트랜잭션에 대한 정보를 제공하는 네트워크 패킷 분석기
5-3. MetricBeat
- 운영 체제 및 서비스에서 Metric을 주기적으로 수집하는 서버 모니터링 에이전트
5-4. WinlogBeat
- Windows 이벤트 로그를 제공