인포그랩
home
회사 소개
home

Sentry 구축하기

소개

운영 중인 서비스에서 장애가 발생하면 고객이 불편을 겪게 됩니다. 이로 인해 고객 이탈이 발생할 수 있으며, 이는 매출 감소의 원인이 되어 비즈니스적으로 큰 손실이 발생할 수 있습니다. 따라서, 장애를 탐지하고 발생 시 빠르게 대응하는 것이 중요합니다. 장애의 원인으로는 인프라 문제, 애플리케이션 오류, 네트워크 문제, 데이터베이스 문제 또는 그 외 다른 문제가 있을 수 있습니다. 이러한 다양한 원인을 파악하는 것은 어렵습니다. 특히 프론트엔드에서 발생한 오류를 파악하는 것은 더욱 어렵습니다. 서버 또는 인프라 문제는 로그, 메트릭, 트레이스 등을 통해 모니터링하는 도구가 많이 있습니다. 하지만 프론트엔드에서 발생한 오류까지 트래킹할 수 있는 도구는 많지 않습니다. Sentry는 웹 앱, 모바일 앱, 백엔드 서비스를 포함하여 애플리케이션에서 발생하는 오류 및 예외를 캡처하고 기록합니다. 또한 애플리케이션 오류를 실시간으로 모니터링하여 문제가 발생하면 Slack, Teams 등 다양한 채널로 알림을 받을 수 있어 빠르게 대응할 수 있습니다.
학습의 결과로 연관된 서비스 도구들을 포함하여 Sentry를 Kubernetes 클러스터에 배포합니다. 이후에 Sentry를 이용하여 애플리케이션의 오류를 추적하고 모니터링 할 수 있습니다.

Sentry란?

Sentry는 실시간으로 애플리케이션 오류를 추적하고, 모니터링하는 도구입니다. Sentry는 애플리케이션에서 발생하는 오류 및 예외에 대한 자세한 인사이트를 제공함으로써 문제를 빠르고 효율적으로 이해, 분류 및 해결합니다. 이로써 애플리케이션의 전반적인 품질과 안정성을 개선할 수 있도록 도와줍니다. 이는 다양한 프로그래밍 언어와 플랫폼을 지원하며 강력한 시각화 도구와 알림 기능을 제공합니다.
Sentry의 주요 기능은 아래와 같으며, 이는 애플리케이션의 페이지로 표시됩니다.
알림(Alerts) : 새 알림 규칙을 만들고 기존 알림 규칙을 관리할 수 있는 곳입니다.
대시보드(Dashboards) : 여러 프로젝트의 오류 및 성능 데이터를 탐색할 수 있도록 하여 애플리케이션의 상태에 대한 광범위한 개요를 제공합니다. 대시보드는 하나 이상의 위젯으로 구성되며, 각 위젯은 하나 이상의 검색 또는 이슈 쿼리를 시각화합니다.
검색(Discover) : 여러 환경의 이벤트를 쿼리하여 오류 및 트랜잭션에 대한 가시성을 제공하고 전체 시스템 상태에 대한 인사이트를 얻을 수 있습니다. 검색 페이지는 쿼리 결과를 시각화합니다.
이슈(Issues) - 애플리케이션에서 그룹화된 문제에 대한 정보를 표시합니다. 여기에서 이슈 세부 정보 페이지로 이동하여 모든 이슈를 더 자세히 볼 수 있습니다.
성능(Performance) : 트랜잭션 데이터를 검색하거나 찾아볼 수 있는 Sentry의 기본 보기입니다. 이 페이지에는 트랜잭션 또는 추세를 시각화하는 그래프와 관련 트랜잭션을 보고 해당 트랜잭션에 대한 자세한 정보로 드릴다운할 수 있는 테이블이 표시됩니다.
프로젝트(Projects) : 팀별로 소속되어 있는 프로젝트를 나열하고 프로젝트에 대한 개략적인 개요를 제공합니다. 여기에서 각 프로젝트의 프로젝트 세부정보 페이지로 이동하여 더 자세히 볼 수 있습니다.
릴리즈(Releases) - 각 릴리즈 버전, 관련 프로젝트, 각 릴리즈의 채택 단계, 각 커밋의 작성자, 크래시 없는 사용자 비율, 크래시 없는 세션 비율을 포함한 릴리즈 상태 데이터에 대한 개략적인 보기를 제공합니다. 릴리즈 페이지로 바로 이동하거나 이슈 상세정보 페이지에서 '마지막으로 본 날짜' 아래에 나열된 릴리즈 ID를 선택하여 이동할 수 있습니다.

학습 내용

Sentry Helm 차트 리포지터리를 구성하는 방법
Sentry Helm 차트의 구성 정보를 배포 환경에 맞게 설정하는 방법
Helm 차트로 Sentry를 배포하고 확인하는 방법

아키텍처

사전 준비사항

기본 요건

Kubernetes에 대한 기본 개념
Helm, kubectl에 대한 기본 개념

필요 항목

Sentry를 배포할 Kubernetes 클러스터가 구축되어 있어야 합니다.
TLS/SSL 인증서를 사용할 수 있도록 cert-manager가 구축되어 있어야 합니다.
Sentry Ingress 리소스를 사용할 수 있도록 NGINX Ingress Controller가 구축되어 있어야 합니다.