대부분의 개발자들은 자기가 만든 프로그램을 잘 믿지 않는다. 서버 개발자인 나는 처음으로 외주 작업을 진행했을 때, 내 프로그램이 장애 없이 잘 돌아가는지 계속해서 확인해보기도 하고, 원격으로 서버에 접속하여 로그를 살펴보기도 하고, 서비스 페이지 또는 애플리케이션에 들어가 보면서 솟구치는 불안함과 의심을 확인해봤었다 ( 주로 쇼핑몰 또는 기업을 대상으로 외주를 해서, 내 잘못으로 장애가 일어나면 금전적으로 피해보상을 해줘야 하기 때문에 매우 불안했다...ㅜㅜ ).
이런 나의 불안함은 회사에 들어와서도 고쳐지지 않았다. 아침에 출근해서 컴퓨터를 켜고, 가장 먼저 하는 일은 운영 서버에 접속해서 서비스 프로그램들의 로그와 상태를 확인하는 것이었다. 이렇게 직접 확인하는 방법이 별로 효율적이지 않다고 생각을 하고 있었고, 내가 개발하고 관리해야 할 프로그램이 늘어남에 따라 모니터링 시스템이 절실하게 필요했다.
그래서 나는 다음과 같은 조건으로 모니터링 시스템을 찾아봤다.
1. 공짜! ( On-Premise 형태로 서비스를 제공하기도 해서, 별도의 라이선스 비용이 없는 오픈 소스여야 한다)
2. 난 여러 언어를 할 줄 아니까! 다양한 플랫폼 지원해야 함! (잘한다고는 안 했다ㅎ)
3. 30분 내외의 쉬운 연동과 마우스 클릭으로 할 수 있는 운영 ( 난 그다지 똑똑하지 않기 때문에 쉬워야 한다)
3. 모니터링 화면이 간지 작살나야 한다! (모니터링 화면이 멋있으면 화면을 켜놓고 멍 때려도 티가 안 난다)
4. 사용 사례가 있어야 한다!(안정성과 사용성을 확인해봐야 한다)
그래서 찾은 프로그램은 바로 Sentry ~☆!
Open-source error tracking that helps developers monitor and fix crashes in real time. Iterate continuously. Boost efficiency. Improve user experience.
Sentry는 실시간으로 프로그램 이슈를 트래킹 하며 에러 발생 시, 설정에 따라 특정 사용자 또는 특정 대상에게 알림을 보낼 수 있다. 또한 에러 발생에 따른 Stack trace 또한 수집할 수 있기 때문에 에러가 발생한 지점과 전후 상황을 매우 빠르게 파악할 수 있다.
또한 다음과 같이 지원하는 플랫폼이 매우 다양하다.
Javascript, Node, Python, PHP, Ruby, Go, Cocoa, Android, Java,
Kotlin, Scala, .NET, Perl, Elixir, Breakpad, Crashpad, Unreal Engine
또한 현재 Sentry를 서비스에 사용하고 있는 기업들은 다음과 같다.
이 정도의 사용 사례는 Sentry에 대한 사용성과 안정성은 신뢰할만하다고 생각할 수 있다.
라이선스 관련 정보는 찾아본 바 다음과 같다
1. SaSS 형태로 구축하는 경우 라이선스 비용이 발생한다(개발 유형 라이선스의 경우 제한적 무료이다.)
- AWS Marketplace 에도 Sentry 서비스가 있다.
2. self-hosted 형태로 직접 구축하는 경우는 무료이다.
위 내용을 보고 많은 많은 기업에서 사용하고 있고, 무료이고, 실시간 이슈 트래킹 및 스택트레이스 수집이 가능한 Sentry를 모니터링 및 로깅 시스템으로 사용하는 것이 좋을 것 같다는 생각이 들었다.
다음 포스트에서는 간단한 NodeJS 기반의 프로그램과 Sentry를 연동하는 간단한 예시를 소개하겠다.
'Programming > Infra & Architecture' 카테고리의 다른 글
[네트워크 기본] OSI 7계층 & TCP/IP Model (0) | 2022.04.25 |
---|---|
[System Design] 1. 사용자 수에 따른 규모의 확장성 (2) | 2021.10.14 |
Elasticsearch 설치 - 우분투(Ubuntu 16.04.1 LTS) (0) | 2017.06.29 |