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 혹은 프로메테우스로 적용을 할 것 같다.