ELK
ELK 란?
- ELK 는 Elasticsearch, Logstash, Kibana 를 지칭한다
- Elasticsearch
- 아파치 루신 기반의 검색 및 분석 엔진
- JSON 기반 분산형 RESTful 검색 엔진
- Logstash 를 통해 수신된 데이터를 저장하는 역할
- Logstash
- 서버 사이드 데이터 처리 파이프라인
- 여러 소스에서 동시에 데이터를 수집하여 변환한 후 Elasticsearch 에 전송한다
- 데이터를 집계하고 처리한다 (Parse, Filter, Transform)
- Kibana
- Elasticsearch 에서 데이터를 시각화 한다
- 다양한 차트, 테이블, 지도의 형태로 시각화 가능
- 실시간으로 변하는 동적 대시보드 생성 가능
- Beats
- 서버에 설치하는 경량 데이터 수집기
- X-Pack
- 보안, 알림, 모니터링, 리포트, 그래프, 머신러닝 기능을 제공하는 확장 프로그램
- Elasticsearch, Kibana 와 연결
- Elasticsearch
ELK 장점
- 유연성과 호환성이 좋다
- 자유스키마 : JSON 방식의 Key-Value 형식의 데이터를 사용
- 인덱스 와일드카드 지원
- Scale-out 형태로 확장이 가능하다
- 실시간 데이터 처리 가능
ELK 데이터 처리
ELK 사용 사례
- 애플리케이션 검색
- 웹사이트 검색
- 엔터프라이즈 검색
- 로깅과 로그 분석
- 컨테이너 모니터링
- 애플리케이션 성능 모니터링
- 위치 기반 정보 데이터 분석 및 시각화
- 보안분석
- 비즈니스 분석
ElasticSearch 개념
- Node : 데이터를 저장하고 인덱싱 및 검색 기능에 참여하는 서버
- Cluster : Node 의 집합
- Index : 유사항 특성을 갖는 문서들의 집합
- Type : Index 내에 하나 이상의 Type 를 정의
- Document : Index 를 생성할 수 있는 기본 정보 단위 (JSON)
- Shards : Index 를 여러 조각으로 분할 (기본 4개)
- Replicaiton : 장애 대응 고가용성 (기본 1개)
RDB vs Elasticsearch 용어 비교
- Database = Index
- Table = Type
- Row = Document
- Column = Field
- Schema = Mapping
- Index = Everything is indexed
- SQL = Query DSL