본문 바로가기
DATA

로그란? & 로그 수집 아키텍처

by bzerome240 2023. 1. 11.

Log 

유의미한 내용을 남기는 기록

내용

  • 로그를 남긴 시간
  • 로그 레벨
    • TRACE : 어플리케이션에서 어떤 상황이 일어나는지 상세한 내용을 보고 싶을 때 ex) 라이브러리의 내부 동작
    • DEBUG
    • INFO
    • WARN
    • ERROR
    • FATAL : 시스템 이용이 불가능한경우 ex) Memory Crash, Disk Full
  • 로그 내용
  • 로그가 발생한 위치
    • 로그가 WARN, ERROR라면 Line 까지 남기면 좋다.

 

 

로그가 파일에 남아있다면 찾아보면될텐데 왜 수집을 해야할까?

 

1. 시스템에 장애가 나면 로그 파일에 다시 접근하지 못할 수 있다.
2. 사용하는 프로그램이 많아지거나 인스턴스의 수가 많다면 일일히 들어가서 확인하기 어렵다
3. 필터링, 그룹, 검색을 이용하여 더 신뢰있는 시스템을 만들 수 있다.


 

로그 수집 아키텍처

 

https://platform9.com/learn/v1.0/tutorials/efk-with-fluentd


1) 파일을 이용한 수집

APP --> Log File --> Log Collector --> 로그 수집 저장소

 

장점

어플리케이션과 로그 수집기과 관심사의 분리(SoC)가 된다.
컨테이너 환경에서 리소스를 분리하면 수집기 때문에 어플리케이션에 부하를 주지 않는다.

 

단점

어플리케이션, 로그 수집기를 별도로 관리해야한다.


2) 네트워크를 이용한 수집

APP --> Log File
        --> 로그 수집 저장소 push (TCP, HTTP)


장점

로그 전송 여부 확인을 어플리케이션에서 판단 가능

단점

어플리케이션 로직과 로그 전송을 같은 process 에서 수행하므로 서로 영향을 줄 수 있다.
로그 전송때문에 어플리케이션의 부하가 있을 수 있다.


3) 네트워크를 이용한 polling

수집기에서 주기적으로 polling으로 scrap 하는 방식


어플리케이션에서 scrap 가능한 채널(network port, path)를 열어둔다.
Log보다는 통계정보, 상태정보에 대한 snapshot (metric) 수집에 더 적합하다.

APP --> LogFile
        <-- poling --- Log Collector --> 로그 수집 저장소


장점

어플리케이션과 metric에 수집에 대한 관심사 분리(SoC)
어플리케이션에서 개발자가 수집에 대한 관리를 할 필요가 없다.


단점

polling 주기나 scrap 시점에 따라 값이 바뀌므로 특정 순간의 정확한 정보를 보는데 적합하지 않다.



728x90
반응형

'DATA' 카테고리의 다른 글

분산시스템 이해  (0) 2023.03.18
분산 시스템의 특징  (0) 2023.02.18
MongoDB 기본 개념  (0) 2022.12.26
NoSQL 종류 - MongoDB, Redis, Hbase, Druid  (0) 2022.12.25
MongoDB란? windows 설치하기 / Studio 3T, Compass 사용하기  (0) 2022.12.24

댓글