본문 바로가기

인프라,데이터/Elasticsearch, Logstash, Kibana

ELK란? + ELK 8.2.0 버전에 추가된 사항

ELK(Elastic) Stack

Elasticsearch

  • 분산 검색 엔진 (검색 엔진 + NoSQL 데이터베이스)
  • 모든 레코드를 JSON 도큐멘트 형태로 입력, 관리
  • 텍스트, 숫자, 날짜, IP 주소, 지리 정보 등 다양한 데이터 타입에 대해 최적화되어 있음
  • 인덱싱 시점에 분석을 거쳐 용어 단위로 분해해 역인덱스 사전 구축
  • 숫자, 키워드 타입의 데이터들은 집계에 최적화된 컬럼 기반 자료구조로 저장됨 → 병렬이나 분산 처리 가능
  • 검색어에 따른 유사도 스코어를 기반으로 데이터 정렬 → 복잡한 문자열 콘텐츠를 검색할 때 큰 효과
  • 통신을 REST API를 이용하도록 만들어 사용자가 쉽게 접근할 수 있음
  • AWS, GCP, 애져 모두 엘라스틱서치 서비스를 제공하고 있음

단점

  • 저장공간이 크게 압축되지 않고 시스템 리소스를 많이 사용
  • 인덱스는 불변의 자료구조 → 도큐먼트를 수정하거나 삭제할 경우에 비용이 저렴하지 않음
  • 그러나 대량 데이터를 검색하기 위해 일반적으로 용인되는 제약들

 

Logstash

  • 이벤트 수집과 정제를 위한 도구
  • 대량의 데이터를 검색하기 위해서는 데이터를 적재해야 함
  • 로그, 메트릭(페이지 뷰나 사이트에 머무른 시간, 새로운 방문자의 퍼센트 등등..), 웹 애플리케이션 등 다양한 소스로부터 로그를 수집할 수 있음.
  • 비정형, 반정형 데이터를 분석하기 쉬운 상태로 정제
  • 엘라스틱서치 외 다양한 플랫폼으로 정제된 데이터를 내보낼 수 있음
  • 데이터를 동적으로 수집, 변환, 전송
  • 민감한 필드를 익명화하거나 제외 가능
  • 엘라스틱서치의 인덱싱 성능을 최적화하기 위한 배치 처리, 병렬 처리 가능
  • 영속적인 큐를 사용해 현재 처리 중인 이벤트의 최소 1회 전송 보장
  • 유동적인 처리 방식 → 수집 중인 데이터양이 급증하는 부하 상황에서도 안정성 보장

 

Kibana

  • 시각화, 엘라스틱서치 관리 도구
    • 엘라스틱 스택의 UI를 담당
  • 실시간으로 인덱싱되는 로그를 지속적으로 확인할 수 있음

 


Elasticsearch 8.0 버전에 추가된 기능

  • ES 클러스터 보안 추가
    • network encryption(TLS)
    • 키바나에 연결할 때 별도의 과정 없이 authentication 과정을 거침
  • System indice
    • configuration, 내부 데이터 저장하는 공간
    • direct access로부터 제한하는 옵션 추가
  • k-nearest neighbor search API 추가
  • field 추가
    • message field의 인덱스의 사이즈를 14.4% 감소
  • PyTorch model support