ELK Stack?
ELK란 3가지 오픈소스 소프트웨어 Elasticsearch, Logstash, Kibana의 조합을 의미합니다. Elasticsearch는 검색을 위해 단독으로 사용되기도 하며, ELK Stack으로 사용되기도 합니다. 2015년에 Beats의 도입으로 ELK Stack(Elastic Stack)이라고 불리고 있습니다. ELK Stack은 데이터 수집 및 분석 툴로서 높은 확장성과 뛰어난 이식성을 가지고 있어 여러 툴과도 연동이 가능합니다.
1) Elastic Search
: Apache Lucene(아파치 루씬) 기반의 분산형 RESTful 검색 및 분석 엔진입니다. 일반적인 쓰임은 많은 양의 데이터를 색인해서 전문검색과 실시간 통계를 실행하는 것입니다. 역인덱스(Inverted file index) 데이터 구조를 사용하여 풀텍스트(Full text) 검색을 할 수 있도록 설계되었기 때문에 클러스터가 실행되고 있는 동안 계속해서 데이터가 입력(Indexing)되고 실시간에 가까운 속도로 색인된 데이터의 검색과 집계가 가능합니다.
*역인덱스: 색인된 키워드를 이용해 역으로 데이터를 찾는 방식
1) 검색의 유사성을 조정해서 검색 제안하기 때문에 전문 검색 이상의 특성을 가집니다.
2) 정형, 비정형, 위치정보, 메트릭 등 원하는 방법으로 다양한 유형의 검색을 수행하고 결합할 수 있습니다.
3) 표준 RESTful API와 JSON을 사용합니다.
2) Logstash
: Logstash는 오픈소스 서버측 데이터 처리 파이프라인으로, 다양한 소스에서 동시에 "데이터를 수집하고 변환"하여 자주 사용하는 stash 보관소로 보냅니다. 다시말해, ELK에서 수집된 데이터를 인덱싱하여 지정된 대상 서버(Elasticsearch) 등의 목적지로 전송하는 역할을 합니다.
3) Kibana
: Elasticsearch에 색인된 데이터를 검색하고 시각화하는 소프트웨어입니다. Elasticsearch로부터 document, 집계 결과 등을 불러와 웹으로 시각화합니다. 데이터를 시각적으로 탐색하고 실시간으로 모니터링, 분석을 제공합니다. Discover, Visualize, Dashboard 메뉴와 다양한 App으로 구성되어 있으며, 플러그인을 통해 확장할 수 있습니다.
- Discover : Elasticsearch에 색인된 소스 데이터들의 검색을 위한 메뉴
- Dashboard : Visualize에서 만든 시각화 도구로, 데이터 분석을 제공
4) Beats
: 서버에 에이전트 형식으로 설치하는 오픈소스 데이터 수집기입니다. Beats는 데이터를 Elasticsearch에 직접 전송할 수 있으며, Logstash를 통해서 데이터를 전송할 수도 있습니다. Beats 제품에는 Filebeat, Packetbeat, Winlogbeat, Metricbeat 등이 있으며 필요한 기능을 설치해 사용할 수 있습니다.
- Filebeat : Real-time insight into log data, 로그와 파일을 경량화된 방식으로 전달하고 중앙 집중화하여 작업을 보다 간편하게 만들어 주는 역할을 합니다.
- Packetbeat : Analyze network packet data, 데이터에 실시간으로 접근하여 내용을 분석하면 네트워크 트래픽의 흐름 데이터를 제공합니다.
- Winlogbeat : Analyze Windows event logs, Windows 이벤트 로그를 Elasticsearch와 Logstash로 스트리밍 합니다.
- Metricbeat : Ship and analyze metrics, CPU부터 메모리, Redis, NGINX까지 Metricbeat를 통해 다양한 시스템 서비스 통계를 가볍게 전송합니다.
ELK Stack Data Flow
Beats
: 경량 에이전트 Beats가 서버에 설치되어 데이터를 Logstash 또는 Elasticsearch로 전송합니다.
Logstash
: 다양한 소스( DB, csv파일 등)의 로그 또는 트랜잭션 데이터를 수집, 집계, 파싱하여 Elasticsearch로 전달합니다.
ElasticSearch
: Logstash로부터 받은 데이터를 저장하고, 검색 및 집계를 하여 필요한 관심 있는 정보를 획득합니다.
Kibana
: kibana에서 연동되있는 Elasticsearch에 저장된 데이터 셋을 통해 데이터를 시각화 및 모니터링합니다.
출처
- https://www.elastic.co/kr/what-is/elk-stack
- https://victorydntmd.tistory.com/308
- https://www.elastic.co/guide/en/beats/libbeat/7.16/beats-reference.html
- https://12bme.tistory.com/471?category=682921
'DB' 카테고리의 다른 글
[SQLAlchemy] 참조키 연결 (0) | 2020.05.12 |
---|---|
[SQLAlchemy] INSERT 중복방지, join 사용 (0) | 2020.05.12 |