상세 컨텐츠

본문 제목

Logging 기능 비교 및 분석

Ops/Monitoring

by 크리두 2024. 10. 23. 15:46

본문

반응형

Logging Tool Research

Logging이란, 프로그램을 개발하거나 운영할 때 생기는 문제점을 관리하고 모니터링 할수 있는 데이터를 말함.

Logging Tool은 애플리케이션 또는 시스템에서 발생하는 이벤트, 동작, 오류 등의 정보를 기록하고 저장하는 도구이다. 주로 개발 및 운영 환경에서 사용되며, 애플리케이션의 동작을 추적하고 디버깅하는데 사용된다.

Logging, 바로 시스템을 모니터링 하는 데이터를 어떻게 구성하고 저장할 것인지에 대해서 생각해봐야한다.

타사의 사례를 일단 참조하여 Tool을 정하고 기능을 분석하여 알맞은 선택에 도움을 줄 것이라고 본다.

타사 사례

회사명 Tool Link Summary

리멤버 AWS CloudWatch, New Relic https://blog.dramancompany.com/2022/06/how-remember-monitors/  
토스 prometheus + Thanos https://toss.im/slash-21/sessions/1-2 Istio + k8s 인프라 전환하여 ServiceMesh 형태로 운영
해당 Metric을 Prometheus로 수집하여 Monitoring 운영      
Hashmod로 샤딩 기능을 사용하여 메트릭을 분산해서 저장하여 관리      
우아한형제들 ELK https://techblog.woowahan.com/2659/ Logstash 통해 배치 로그 전송
Open Distro Alert 기능을 사용하여 알람 구성      
Kibana와 Slack 연동하여 링크 전송, 링크를 통해 로그 바로 확인      
무신사 prometheus + grafana https://medium.com/musinsa-tech/sre-fe8c7edfb772 로깅 부분은 아니지만 jenkins 모니터링을 통해 CI 개선
CI 서버(jenkins) 팀/프로젝트 단위로 분리하여 관리      
당근마켓 Istio    
prometheus + grafana      
Datadog      

모니터링 방법론

The RED Method: How to Instrument Your Services | Grafana Labs

  1. USE Method
    1. https://www.brendangregg.com/usemethod.html
    2. Utilization : % time that the resource was busy
    3. Saturation : amount of work resource has to do, often queue length
    4. Errors : count of error events
  2. RED Method
    1. Rate : the number of requests per second
    2. Errors : the number of those requests that are failing
    3. Duration : the amount of time those requests take
  3. The Four Golden Signals
    1. Latency : time taken to serve a request
    2. Traffic : how much demand is placed on your system
    3. Errors : rate of requests that are failing
    4. Saturation : how “full” your service is

비교

타사 사례를 보면서 인프라 모니터링 위주의 사례가 대부분이며, 직접적인 로그 수집에 관한 자료가 아니었다.

여러가지 tool이 있지만 크게 다음과 같은 도구를 많이 사용하는 것으로 보인다.

  • EFK (Fluentd / Fuluentbit)
  • ELK (Logstash)
  • Loki

고려사항

  1. 어떤 도구를 활용할 것인지
  2. 어떤 로그를 수집할 것인지
  3. 멀티 클러스터의 로그를 어떻게 수집할 것인지
  4. 로그 수집 후 보관 주기는?
  5. 로그 대시보드는 필요한가?
  6. Alerting 체계는?
  7. 기타 등등 고려해야 할 항목 추가

Fluentd Fluentbit Logstash Loki

언어 C, Ruby C Java  
Resource 30-40MB 메모리      
13,000 events/second/core 처리 가능 ~1MB 메모리      
로그 수집 방식 JSON      
aggregator, collector&forwarder 등 활용 가능 JSON, Regex, LTSV and Logfmt grok 패턴    
Plugin 지원 1000+ 외부 플러그인 지원 100+ built-in 플러그인 다양  
License Apache v2.0 Apache v2.0 OSS 버전 따로 존재  
Outputs S3      
kafka        
elasticsearch        
Cloudwatch        
S3        
azure Blob, Data Explorer, Log Analytics        
Elasticsearch        
Kafka        
Loki        
New Relic Cloudwatch      
Datadog        
elasticsearch        
kafka        
s3        
helm 지원 O O O O
멀티 클러스터 aggregator, collector 형태로 수집 가능 aggregator, collector 형태로 수집 가능    

통합 모니터링 Tools

Ref. Gartner APM and Observability

제품

Dynatrace  
Datadog  
New Relic  
Grafana Labs  
반응형

'Ops > Monitoring' 카테고리의 다른 글

Elasticsearch 개념정리  (0) 2021.12.16
리눅스 로그 관리 - Logrotate  (0) 2020.11.03
fluentd 설치 및 설정  (0) 2020.04.07
모니터링 시스템 Prometheus 설치 #2 (docker & grafana )  (0) 2020.02.18
fluentd 설치 (CentOS 7)  (0) 2020.01.10

관련글 더보기

댓글 영역