ELK

박준수·2023년 1월 15일
0

Elasticsearch

Elasticsearch는 Apache Lucene에 구축되어 배포된 검색 및 분석 엔진입니다. 다양한 언어를 지원하고 고성능에 스키마가 없는 JSON 문서로 Elasticsearch는 다양한 로그 분석과 검색 사용 사례에 최고의 선택이 되었습니다.

Logstash

Logstash는 다양한 소스로부터 데이터를 수집하고 전환하여 원하는 대상에 전송할 수 있도록 하는 오픈 소스 데이터 수집 도구입니다. 사전 구축된 필터와 200개가 넘은 플러그인에 대한 지원으로 Logstash는 사용자가 데이터 원본이나 유형에 관계없이 데이터를 쉽게 수집할 수 있도록 도와줍니다.

Kibana

Kibana는 로그 및 이벤트 검토에 사용하는 데이터 시각화 및 탐색 도구입니다. Kibana는 사용하기 쉽고 대화형 차트와 사전 구축된 집계 및 필터, 지리 공간적 지원을 제공하고 이를 사용해 Elasticsearch에 저장된 데이터를 시각화할 때 원하는 선택을 할 수 있습니다.

ELK 쓰는 이유

IT 인프라가 점점 더 퍼블릭 클라우드로 이동할수록, 해당 인프라와 서버 로그, 애플리케이션 로그, 클릭스트림 프로세스를 모니터링하기 위해 로그 관리와 분석 솔루션이 필요합니다. ELK 스택은 개발자와 DevOps 엔지니어가 오류 진단, 애플리케이션 성능, 인프라 모니터링으로부터 값진 인사이트를 얻을 수 있도록 적은 비용으로 단순하면서도 강력한 로그 분석 솔루션을 제공합니다.

  • 서버가 각각 나뉘어 있으면 로그를 하나하나 확인하기 어려움
  • 로그를 한 곳으로 집중시키고 분석하고 적당한 쿼리를 만들어 원하는 데이터를 도출 해낼 수 있는 로그 관리 솔루션 활용

정리

로그수집 및 모니터링 기술인 ELK

  • Elasticsearch : 로그 저장 및 검색
  • Logstash : 로그 수집 엔진
  • Kibana : 로그 시각화 및 관리

Data Processing (Logstash)

  • 서버 내의 로그, 웹, 메트릭 등 다양한 소스에서 데이터를 수집하여 입력
  • 데이터 변환 및 구조 구축
  • 데이터 출력 및 송신'

Storage (Elasticsearch)

  • 데이터 저장
  • 데이터 분석
  • 데이터 관리

Visualize (Kibana)

  • Dashboard를 통한 데이터 탐색
  • 팀원들과 공유 및 협업하는데 사용 가능
  • 엑세스 제어 (Access Control) 사용 가능

Beats의 도입

기존의 ELK에서의 큰 문제점 중 하나는 Logstash였다.
데이터 수집의 역할을 맡고 있는 Logstash는, 원하는 형태로의 데이터 입출력 변환 기능까지 맡고 있었기 때문에 그 오버헤드가 컸다.
많은 사용자들의 요구사항을 받아들인 Elastic 회사는, 오로지 데이터의 수집만을 담당하는 경량화된 모듈 Beats를 도입했다.

Beats는 한 가지를 이르는 말이 아니며 위와 같이 수집하고자 하는 데이터의 유형별로 다른 모듈이 존재한다. 그중 나는 filebeat를 사용했다.

  • Filebeat - Real-time insight into log data
    로그와 파일을 경량화된 방식으로 전달하고 중앙 집중화하여 작업을 보다 간편하게 만들어 주는 역할을 합니다

filebeat와 logstash

Filebeat데이터의 변화를 감지하여 전달하는 일이 주된 역할이고
Logstash입력받은 데이터를 Filter를 통해 가공하여 전달하는 일이 주된 역할이다.

filebeat & logstash & elasticsearch & kibana 연결

멘토님의 깃허브를 따라하니 바로 연결이 되었다 ㅋㅋ

부하테스트를 위한 Prometheus, Gragana, K6자료

다음과 같이 kibana로 시각화 하였다.

참고 : ELK stack

추가로 ..

Cloud 기반의 Elasticsearch 도입

  • 큰 규모의 회사들은 기존 On-Premise 기반의 서비스들을 클라우드 기반으로 마이그레이션하기 위해 움직이고 있음
  • ELK 또한 Cloud 기반의 Elasticsearch를 도입

X-pack

  • ELK Stack의 확장
  • 기존 ELK Stack에서 x-pack을 이용하여 구축 및 유지를 편리하게 해주는 솔루션
    • Security : 데이터 보호
    • Alerting : 데이터 변경 사항에 대한 알림을 제공
    • Monitoring : ELK Stack 상태를 지속적으로 체크
    • Reporting : 주기적으로 보고서를 생성하여 이메일로 전송
    • Graph : 데이터에서 의미 있는 관계를 살필 수 있음
profile
방구석개발자

0개의 댓글