뉴스레터 구독

최신 소식과 업데이트를 받아보세요.

1. 로그 데이터(log data)란?

  • IT인프라에서 발생하는 모든 상황의 데이터(서비스나 시스템 가동 시 발생되는 이벤트의 기록)

  • 소프트웨어 및 하드웨어,인프라의 상태를 파악하는 시각적 정보의 역할

  • 최근 사용자의 사용성 및 행동 패턴을 확인하거나 유저 클러스터링, 모델링 등 다양한 목적으로 사용되는 행동 기반 데이터

  • 사용자의 행동 패턴을 분석하는데 근간이 되는 데이터의 역할

  • 대체로 시간(TimeStamp)와 함께 출력 되기 때문에 시계열 데이터 개념에 포함되는 개념


2. 로그의 형태

  • 정해진 규칙에 의거하여 Key-Value, JSON 형태로 표현

  • Key 순서에 맞게 Value 값으로 표현하는 것이 일반적

  • 타임스탬프, 호스트 이름, 프로세스 타입, 애플리케이션, 실행 내용, 이벤트값, 파라미터 등의 정보를 저장

    이런 패턴을 통해 분석과 모니터링 정보를 제공

용도별 로그

  • 시스템 로그 : OS에서부터 RDBMS 등과 같은 미들웨어에서 올라오는 로그 등, 시스템의 문제가 발생 했을 때 장애의 원인 파악을 위해서 필요

  • 애플리케이션 로그 : 개발자가 작성한 애플리케이션 로그, 애플리케이션의 장애 원인 파악이나 디버깅을 위해서 생성되는 로그

  • 비즈니스 로그 : 사용자의 서비스 사용 형태, 거래 기록을 이용한 감사 등을 이용해서 애플리케이션에서 인위적으로 찍어내고 수집하는 로그 (사용자 행동 로그)


3. 로그 시스템

image

4. 로그 관리

로그 관리는 아래와 같은 순서로 이뤄지게 됩니다.

1. 수집(Collect)

시스템의 로그 수집기(Collector)를 설치하여 HTTPS 등의 방식으로 로그 관리 시스템에 전달


2. 중앙 처리와 인덱싱(Centralize & Indexing)

로그를 중앙 집중화하여 저장 후 누락된 데이터가 없도록 일원화

로그 데이터에 필요한 인덱스 값을 추가하여 필요한 로그 정보를 빠르게 찾을 수 있도록 함


3. 검색과 분석(Search & Analyze)

인덱싱이 완료된 데이터에 대한 검색과 분석을 진행하며 데이터의 공통 패턴이 존재한다면 찾아냄


4. 모니터링과 경고(Monitor & Alert)

슬랙(slack)과 같은 협업 도구, Notification/Alert 시스템과 로그 관리 시스템을 연동하여 필요시 담당자에게 Alert 전달


5. 리포트와 대시보드(Report & Dashboard)

전반적인 시스템 상태의 인사이트 확보를 위해 비주얼 한 리포트와 대시보드를 생성하고 RBAC를 적용하여 권한을 가진 팀원들과 공유




5. 로그 데이터 수집

로그 데이터를 수집하는 방법에는 다양한 방법이 있습니다.

  • 파일을 주기적으로 FTP로 끌어 오기

  • Log4J와 같은 Log Appender를 이용해서 직접 수집

  • 시스템에 연결하거나 DBMS 등에 쓴 로그를 주기적으로 긁어 오는 방법

  • 로그를 수집하기 위해서 여러가지 프레임워크가 제공되는 LogStash가 대표적

Log4j vs logstash



log4j는 애플리케이션 로그를 캡처 및 저장하기 위해 사용되는 로깅 유틸리티

logstash는 중앙화된 로깅 및 분석을 위한 도구

많이 사용 되는 로그 수집 프레임 워크

1. ELK Stack(ElasticSearch, Logstash, Kibana)

Netflix, LinkedIn, Uber, Airbnb, Cisco, IBM에서 사용 중