바닥부터 알아보는 웹 서비스 모니터링 시스템 구조

Metrics Monitoring and Alerting System Design

System Design — Metrics Monitoring & Alerting System

An Introduction to Metrics, Monitoring, and Alerting | DigitalOcean

SLF4J

모니터링

모니터링이란?

<aside> 🤖 Monitoring in software is the process of tracking important events and metrics to help identify anomalies, errors, and downtime. It can also involve collecting, processing, aggregating, and displaying real-time data about a system.

소프트웨어에서 모니터링은 이상 현상, 오류 및 다운타임을 식별하는 데 도움이 되는 중요한 이벤트와 메트릭을 추적하는 과정입니다. 또한 시스템에 대한 실시간 데이터를 수집, 처리, 집계 및 표시하는 작업도 포함될 수 있습니다.

</aside>

즉, 우리 시스템의 여러 측정 가능한 정보들을 추적해 제공하는 것을 모니터링 시스템이라 부른다.

모니터링 시스템의 구조

모니터링 시스템은 어떤 대상을 모니터링하는지에 따라 그 구조가 조금씩 달라지지만 크게 세가지 구성 요소들로 나눌 수 있다.

모니터링 시스템의 구성 요소

모니터링 시스템의 구성 요소

  1. 모니터링 대상 시스템
  2. 데이터 처리 시스템
  3. 데이터 시각화 시스템

구성 요소들의 명칭은 내가 정한 것이다. 다른 문서에서는 이를 다르게 표현하고 있을 수 있다. 중요한 것은 모니터링 시스템이라는 큰 시스템을 보다 낮은 추상화 수준으로 바라보면 이런 요소들이 있을 수 있다는 것이다.

모니터링 대상 시스템은 정보를 알고 싶은 시스템을 말한다. 즉, 우리가 서비스하는 웹사이트가 모니터링 대상 시스템에 해당한다.

데이터 처리 시스템은 모니터링 대상 시스템으로부터 제공받은 데이터를 적절히 가공하여 유용한 데이터로 만드는 시스템이다. 우리가 필요한 대다수의 정보들은 일정 시간 내에 발생한 데이터다. 일정 시간동안 접속한 접속자 수, 일정 시간 동안 발생한 오류 개수 등이 그 예다. 반면, 모니터링 대상 시스템은 단순히 특정 시점의 데이터만 알고 있다. 따라서, 이를 일정 시간동안 축적해 데이터를 분석할 필요가 있다. 이런 분석 작업을 하는 것이 데이터 처리 시스템이다.

데이터 시각화 시스템은 데이터 처리 시스템이 처리한 데이터를 사람이 알아보기 쉽게 시각적으로 표현해주는 시스템을 말한다. 아래는 내가 사용하고 있는 NAS의 모니터링 대시보드 화면이다. 이런 식으로 데이터를 적절한 그래프로 표현하는 것이 데이터 시각화 시스템이다.