DevOps

로그 관리 툴 선정

A든 2024. 9. 22. 16:30

 

결론 부터 얘기 하자면 Sentry로 선정하였다.

 

얼마전 유저 문의 사항으로부터, 서버 오류로 인해 비밀번호 재설정이 안된다는 문의가 들어왔다.

위 이슈에 대한 결론부터 얘기하자면, 서버의 문제가 아니라 유저의 실수(?) 였던 것이였다.

 

이 부분에 관련해서 오류 문의가 들어왔을 때 빠르게 에러 로그의 필요성을 느껴 로그 관리를 해야겠다고 생각하고 도입하기로 하였다.



몇 가지 우선순위 및 기준을 정해두고 선정하기로 하였다.

1. 개발 인력이 풍부한 상황은 아니기에, 러닝커브가 비교적 적어야함

2. 당장 로그 데이터를 활용한 기획 및 분석이 없기에 에러 로그만 잡아도 괜찮음

3. 알람 기능 필요

 

로그 관리툴은 정말 다양하지만, 많이 언급되고 레퍼런스도 많은 것들을 리스트업 해보았을 때 아래 5가지 정도로 추려 볼 수 있었다.

1. ELK Stack (Elasticsearch, Logstash, Kibana)

  • 특징: 오픈 소스 로그 관리 플랫폼으로, Logstash를 통해 로그를 수집하고 Elasticsearch로 저장한 후 Kibana를 사용해 시각화 및 분석을 수행.
  • 장점: 높은 확장성, 강력한 검색 및 분석 기능.
  • 단점: 설정 및 유지 관리가 복잡할 수 있음.

2. Sentry

  • 특징: 오류 모니터링 및 성능 모니터링 도구로 주로 애플리케이션 에러 로그에 중점.
  • 장점: 개발자 친화적, 오류 추적 및 알림 기능 강력.
  • 단점: 로그의 전반적인 분석 기능은 제한적일 수 있음.

3. Prometheus + Loki (Grafana Stack)

  • 특징: Prometheus는 모니터링 및 알림 도구로, Loki는 로그를 관리하는 도구.
  • 장점: 모니터링 및 로그 관리를 하나의 스택으로 관리 가능, Grafana와의 통합으로 강력한 시각화 제공.
  • 단점: 설정에 기술적인 이해가 필요할 수 있음.

4. AWS CloudWatch

  • 특징: AWS에서 제공하는 로그 모니터링 및 관리 서비스.
  • 장점: AWS 서비스와의 긴밀한 통합, 서버리스 환경에서 적합.
  • 단점: AWS 외부 서비스와의 통합이 복잡할 수 있음

5. 모든 로그를 DB에 저장 혹은 파일로 S3에 저장

  • 특징: 모든 로그를 저장하여 확인 할 수 있음
  • 장점: 단순 저장이라 구현이 쉬움
  • 단점: 정제된 데이터가 아니기에 시각적으로나 빠르게 대응하기가 쉽지 않음 

 

우선순위에서 1번과 2번이 크게 작용하여 Sentry로 선정을 하게 되었다.

문서를 찾아봤는데, FastAPI에 적용하려고 보니 적용 난이도가 정말정말 쉬웠다... 

당장 모든 로그를 수집 할 필요도 없었고... 에러 관련 로그만 바로 확인 할 수 있어도 만족스러운 상황이였기에 Sentry로 최종 결정을 하게 되었다.

 

추후 회사가 더 성장하고, 개발 인력이 많아진다면, ELK 혹은 프로메테우스로 적용을 할 것 같다.