ELK - 1

hoegon kim·2023년 4월 25일
0

ELK

목록 보기
1/10
post-thumbnail

1.1 엘라스틱서치의 탄생

사이트 내에서 전문 검색 기능을 제공하는 강력한 소프트웨어의 필요성이 필요


1.2 엘라스틱 스택으로 발전

엘라스틱은 단순 검색 엔진에 머무르는 대신 플랫폼으로 발전하는 길을 택했다.

문제점 : 데이터가 점점 늘어나는 상황에서 전문 검색은 대량의 데이터를 저장해서 처리하는 한 가지 방법에 불과했고, 다양한 사용 사례를 유연하게 지원하기 위해서는 검색 엔진을 뛰어넘는 플랫폼이 필요해 졌다.

유연성의 문제를 해결하기위한 방안 :

데이터를 수집, 가공, 저장, 분석, 시각화 하는 일련의 파이프라인을 구성하기 위해 다양한 오픈소스 소프트웨어를 조합해야하는 불편함이 있다. → 엘라스틱서치가 간편하게 빅데이터 파이프라인을 구성하고 싶은 기업의 요구사항을 충족하기 위한 스택을 층층이 쌓아 올리기 시작했다.

일반적인 빅데이터 분석 파이프라인 → 엘라스틱 스택으로 이러한 문제점을 해결


1.3 엘라스틱 스택의 구성요소

엘라스틱 스택은 일반적인 빅데이터 파이프라인을 구성하기 위한 데이터 수집, 가공, 저장, 분석, 시각화에 필요한 모든 소프트웨어를 갖추고 있다.

비츠와 로그스태시 : 데이터를 수집하고 가공하는 역활
엘라스틱서치 : 저장하고 분석하는 역활
키바나 : 엘라스틱 서치에 저장된 데이터를 시각화하고 모니터링하는 역할을 수행한다.

필요에 따라서는 키바나를 제외한 엘라스틱 스택의 나머지 구성요소만으로도 개별적인 빅데이터 파이프라인의 일부로 사용될 수 있다.


1.3.1 엘라스틱서치 : 분산 검색 엔진

엘라스틱 서치란

엘라스틱 서치는 검색 엔진 이지만 구글이나 네이버 같은 포털 서비스와는 다르다.

검색 엔진은 내부적으로 각 도큐먼트를 인덱싱하고 빠르게 검색하는 데 사용하는 기술로 우리는 검색엔진을 이용해 상위에서 구글, 네이버 같은 서비스를 만들게 된다.

엘라스틱서치는 모든 레코드를 JSON 도큐먼트 형태로 입력하고 관리하고 있으며, 일반적인 데이터베이스와 마찬가지로, 쿼리한 결과에 대해 일치하는 원본 도큐먼트를 반환한다.

또한 엘라스틱서치는 텍스트 외에도 숫자, 날짜, IP 주소, 지리정보 등 다양한 데이터 타입을 지원한다는 점이 엘라스틱서치라는 이름과 쉽게 매칭되지 않지만 엘라스틱서치를 일종의 NoSQL 데이터베이스라고 생각하면 훨 씬 더 큰 그림이 보일 것이다.

엘라스틱서치는 텍스트나 도큐먼트의 경우 인덱싱 시점에 분석을 거쳐 용어 단위로 분해되고
역인덱스 사전을 구축한다.

엘라스틱 서치 특징

  • 최적화된 자료구조들을 바탕으로 병렬처리나 분산 처리를 할 수 있다.

  • 검색엔진인 동시에 데이터베이스이다.

    • 그에 따른 이유로 관계형 데이터베이스와 NoSQL제품이 상상하기 어려운 빠른검색과 집계성능이 나타난다.
  • 데이터의 양과 무관하게 1초 이내의 응답속도가 나온다.

  • 엘라스틱서치는 〓 몽고디비 〓 nosql 비슷하며 두가지 디비보다 압도하는 검색기능과 성능이 특징이다.

  • 엘라스틱서치의 스코어링, 연관도에 따른 정렬

    • 검색어에 대한 유사도 스코어를 기반으로 한 정렬을 제공한다.
    • 그러므로 복잡한 문자열 콘텐츠에서 검색을 수행할 때 큰 효과를 보인다.

엘라스틱 서치의 쿼리 DSL

DSL : Domain Specific Language
1. DSL쿼리를 채용하는데 JOIN 쿼리가 사실상 어렵기 때문에 반정규화를 기본으로 모델링해야한다.

  1. 인덱스가 불변의 자료구조이기 때문에 도큐먼트를 수정하거나 삭제할 경우에 비용이 저렴하지 않다.

  2. 위 2가지 단점을 보완하기 위해 검색성능을 끌어올리기 위해 어느정도 트레이드 오프가 이루어진 것으로, 엘라스틱서치가 필요한 수준의 대량 데이터를 처리할 때는 일반적으로 용인되는 제약들이다.

결론: 엘라스틱서치는 대용량 데이터에 대한 빠른 검색과 집계가 필요할 경우 우선적으로 고려해야 하는 데이터 베이스 중 하나이다.


1.3.2 키바나 : 시각화와 엘라스틱서치 관리 도구

엘라스틱서치 : 사용자의 모든 입력을 REST API 형태로 받아들인다.

별도의 드라이버 라이브러리 없이 웹 브라우저나 curl 명령 등 친숙한 도구들을 이용해 기능을 활용할 수 있다.

엘라스틱 서치는 REST API가 잘 설계된 제품이긴 하지만 복잡한 요청을 일일이 작성하기에는 다소 불편할 수 있다.

→ 해결방안 : 키바나

키바나는 엘라스틱 스택의 UI를 담당한다.

  1. 관리기능
  2. API를 실행할 수 있는 콘솔
  3. 솔루션 페이지들
  4. 스택의 각 구성요소들을 위한 모니터링 페이지
  5. 시각화 도구로써 시각화와 대쉬보드 (라인차트, 파이차트, 테이블)

1.3.3 로그스태시 : 이벤트 수집과 정제를 위한 도구

대량의 데이터를 적재

수집되는 데이터 : 로그, 메트릭, 웹 애플리케이션 등의 로그를 수집 할 수 있다.

필터기능 : 비정형 반정형 데이터를 분석하기 쉬운 형태로 정제할 수 있다, 다양한 플랫폼으로 정제된 데이터를 내보낼 수 있다.


로그스태쉬 동작방식과 구성요소

데이터를 동적으로 수집, 변환, 전송하는 구조로 되어 있다.

비구조적인 데이터에서 구조를 도출하며,

IP 주소에서 위치 정보 좌표를 해독하고,

민감한 필드를 익명화 하거나 제외시키는 등의 전반적인 작업을 쉽게 해준다.


로그스태쉬 장점

  1. 단순 소스 데이터 정제뿐 아니라, 엘라스틱 서치의 인덱싱 성능을 최적화하기 위한 배치 처리와 병렬 처리가 가능하다.

  2. 영속적인 큐를 사용해 현재 처리중인 이벤트의 최소 1회 전송을 보장해줄 뿐만 아니라,

  3. 유동적인 처리 방식으로 인해 수집 중인 데이터 양이 급증하는 부하 상황에서도 안정성을 보장해준다.


1.3.4 비츠 : 엣지단에서 동작하는 경량 수집 도구

로그스태시의 기능은 충분히 강력하다. 하지만 이벤트 정보를 수집하기 위해서는 실제 서비스가 동작하는 호스트에 수집기를 설치해야 하는 경우가 많은데 로그스태시는 다양한 필터와 설정을 지원하는 만큼 무겁기 때문에 이러한 목적으로는 활용도가 떨어질 수 있다. 엘라스틱 스택
에는 이를 위해 파일비트, 메트릭비트 등 비츠라고 부르는 경량 수집기가 포함되어 있다.

각 비트는 로그 수집, 시스템 지표 수집 등 특정 목적에 최적화된 에이전트이며, 가볍기로 유명한 고프로그래밍 언어로 작성되었다.

또한 로그스태시 수준의 복잡한 이벤트 기공은 지원하지않아 가벼우므로, 각 서비스 호스트에 비교적 부담 없이 설치할 수 있다. 이러한 양쪽의 장점을활용하기 위해 비츠와 로그스태시를 혼합해 많이 사용한다.

흔히 비츠에서 각 서비스 호스트의정보를 수집하며. 로그스태시에서 이를 취합하고 가공해 엘라스틱서치로 전송하는 형태의 아키텍처가 많이 사용된다.


1.3.5 기타 솔루션

엘라스틱 스택에는 애플리케이션 성능 모니터링을 위한 APM, 보안 이벤트 분석을 위한 SIEM, 컨테이너나 다수의 서비스를 쉽게 모니터링하기 위한 인프라 모니터링 등의 솔루션이 포함되어 있다.


1.4 엘라스틱 스택의 용도

로그분석 및 머신러닝


1.4.1 전문 검색 엔진

검색 엔진 용도로 엘라스틱서치를 활용할 때는 일반적으로 도큐먼트의 양이 다른 용도에 비해 많지 않기 때문에 상대적으로 작은 클러스터 크기로도 충분한 활용이 가능하며 레플리카 수를 늘려 동일 인덱스에 대한 검색 성능을 높일 수도 있다.


1.4.2 로그 통합 분석

엘라스틱 스택은 여러 장비와 서비스에서 발생하는 로그들을 통합하고 검색하는 데 최적화된 솔루션이라 할 수 있다.

시스템과 호스트, 쿠버네티스, 아파치, MySQL, 윈도우 같은 다양한 환경에서 생성되는 로그를 별도의 복잡한 구성 없이도 바로 수집 가능하다. 비츠를 사용하면 적은 리소스로 각 장비의 로그들을 빠르게 수집할 수 있고, 로그스태시는 다양한 필터를 통해 일원화된형태로 가공을 도우며, 엘라스틱서치의 대용량 로그에 대한 빠른 인덱싱 성능과 텍스트 검색 능력은 여러 곳에 흩어진 서비스 로그들을 통합해서 연관 분석을 지원한다.
키바나의 로그 UI나대시보드는 시계열로 발생하는 로그들을 직관적으로 모니터링할 수 있도록 도와준다.


엘라스틱 스택에서 할 수 있는 업무들

  1. 파일비트는 내장된 모듈을 이용해 별도의 설정 없이도 빠르게 로그를 수집할 수 있게 해준다.
  • 파일비트의 모듈은 알려진 서비스들을 정제하기 위한 파이프라인 설정, 샘플 대시보드 등을 포함하고 있기 때문이다.
  1. 커스텀 애플리케이션에서 발생한 로그의 경우 로그스태시의 필터 기능이나 엘라스틱 서치의 수집 파이프라인 기능으로 정제가 가능하다.

  2. 패턴을 기반으로 원문을 가공해 반정형의 텍스트 메시지로부터 정형화된 수치 등의 정보를 뽑아내어 인덱싱하면 훨씬 더 다양한 방식으로 로그 분석이 가능해진다.

  3. 엘라스틱 서치에서는 로그 원문의 빠른 검색 후 하이라이트가 가능하다.

  4. 날짜나 수치에 대한 범위 조회, IP 대역 조회등은 로그 분석시 큰 도움이 된다.

  5. 엘사스틱서치에 저장된 데이터들은 손쉽게 교차분석이나 연관분석이 가능해진다.

  6. 복잡한 JOIN 쿼리 없이도 각기 다른 서비스에서 동시간대에 어떤 로그가 발생했는지 탐색하고 공통된 요소를 찾아 문제의 원인을 분석할 수 있게 해준다.

  7. 특히 비츠의 모듈을 사용할 경우 엘라스틱에서 제공하는 ECS(Elastic Common Schema)구조에 맞춰 로그를 인덱싱한다.

  8. 다른 서비스들을 같은 스키마에 매핑함으로써 연관 분석을 용이하게 해준다.


1.4.3 보안 이벤트 분석

SIEM 이나 ESM 등으로 불리는 솔루션은 조직내에 속한 다양한 장비들로 부터 보안 이벤트를 수집하고 분석할 수 있게 하려는 목적으로 만들어 졌다.

SIEM(Security Information and Event Management), ESM(Enterprise Security Management)

보안과 관련된 이벤트는 다양한데 보안 장비, 웹 서버, 애플리케이션, 각 사용자의 PC 등에서 실시간으로 발생하는 이벤트의 양은 다른 어떤 로그와 비교해도 무시할 수 없는 수준이다

검색과 필터링을 통한 연관 분석과 머신러닝을 이용한 이상 징후 탐지까지 연결돼야 한다.


그림 1.10은 키바나에서 제공하는 엘라스틱 이벤트 분석 화면이다. 엘라스틱 SIEM은 비츠의 모듈을 이용해 애플리케이션, 엔드포인트, 인프라스트럭처, 클라우드, 네트워크 등 다양한 소
스에서 수집한 이벤트를 기반으로 엔드포인트 활동, 인증 로그, DNS 트래픽, 네트워크 플로우
에서 이상 징후, 불법적인 로그인 시도, 사용자 접근 패턴 등의 문제를 빠르게 찾아낼 뿐만 아니라, SIEM UI에서는 분석을 비롯한 고유한 탐지 규칙 관리 또한 가능하다. 또한 미리 빌드된 머신러닝 모델과 즉시 사용 가능한 알고리즘을 통해 알려지지 않은 위협도 밝혀낼 수 있다.

엘라스틱서치의 실시간 검색 성능, 비츠의 이기종 장비들에 대한 각종 이벤트 수집 기능, ECS에 의해 통일된 스키마에 기반한 원활한 연관 분석, 키바나에서 제공되는 SIEM, 지도(그림 1.11 참고),그래프 등의 각종 지원 이로 인해 보안 이벤트 분석은 엘라스틱 스택의 가장 대표적인 사용 사례 중 하나라 할 수 있다.


1.4.4 애플리케이션 성능 분석

애플리케이션을 운영하는데 있어 가장 중요한 것 중 하나는 안정적인 서비스 유지다.

이를 위해서는 필연적으로 애플리케이션의 상태를 지속적으로 모니터링 해야한다.

단순히 하나의 애플리케이션뿐만 아니라 연계된 다른 모든 서비스의 성능 정보를 모니터링 해야한다.

앨라스틱 스택의 애플리케이션 성능 모니터링 도구인 APM은 프로그래밍 언어별 에이전트를 통해 성능 지표 수집을 돕고 분석을 위한 UI를 제공한다.

매트릭비트와 패킷비트를 사용하면 시스템을 비롯해 여기 연계된 다양한 서비스들의 성능 정보를 수집할 수 있게 도와준다.


다음 그림은 엘라스틱에서 제공하는 성능 모니터링 화면이다. 일명 APM 화면이다.

엘라스틱 APM 은

로그, 인프라 모니터링등 다른 UI와 연계했을 때 효과가 배가 되며, 서비스 지도를 통한 서비스 연결관계 파악, 트랜잭션의 분산 추적, 경보 기능을 사용한 즉각적인 대응, 자바, 노드, PHP, 닷넷 같은 다양한 프로그래밍 언어 지원, 머신러닝을 사용한 비정상적인 응답 시간 탐지와 같은 APM의 핵심적인 기능을 제공함므로 단순 모니터링을 넘어 문제 원인 분석과 서비스의 상태 파악을 위한 관측성 강화에 이바지하고 있다.


1.4.5 머신러닝

앞서 보안 이벤트 분석과 애플리케이션 성능 분석에서도 잠깐 등장한 머신러닝은 엘라스틱 스
택에서 유료 라이선스를 구매할 경우 사용할 수 있는 강력한 기능 중 하나다. 데이터를 엘라스
틱서치에 넣은 다음에 비지도형 머신러닝 기법을 활용해 데이터에서 패턴을 발견할 수 있다. 시
계열 모델링은 시간과 관련된 데이터에서 이상 징후를 탐지하고 과거 데이터를 기반으로 동향
을 예측하게 도와준다. 이런 기능을 활용해 SIEM 통합, APM 통합, 로그 통합 부문에서 비정상
적인 상황을 특별한 규칙 지정 없이도 빠르게 발견할 수 있다.


1.5 빅데이터 플랫폼의 일부로 동작하는 엘라스틱 스택

엘라스틱 스택은 간편하게 빅데이터 파이프라인을 구성하고 싶은 기업의 요구사항을 충족
하기 때문에 인기를 끌고 있다고 이야기했다. 그렇다면 빅데이터 파이프라인을 복잡하게 구축
한 회사에서는 엘라스틱을 어떤 식으로 활용할까?


1.5.1 엔터프라이즈 데이터 버스인 카프카와 연동


1.5.2 하둡 생태계와 연동


1.5.3 관계형 데이터베이스와 연동


0개의 댓글