본문 바로가기
기타

[MSA] 모니터링에서 관찰가능성으로

by Nhahan 2025. 5. 21.

시스템의 관찰가능성은 외부 출력으로부터 시스템의 내부 상태를 이해할 수 있는 수준을 의미한다. 일반적으로 소프트웨어에 전체적인 이해가 필요하며, 소프트웨어를 서로 다른 개체의 집합이 아닌 시스템으로 보는 것이 중요하다.

 

반면에 모니터링은 우리가 하는 일이다. 우리가 시스템을 모니터링한다. 즉, 우리는 그것을 바라보고, 모니터링 활동으로 무엇을 기대할 것인지 생각하지 않고 모니터링 활동에만 집중하면 상황이 잘못되기 시작한다.

 

관찰가능성은 외부로 출력된 것을 기반으로 기스템이 수행하는 작업을 이해할 수 있는 수준을 나타낸다. 로그, 이벤트, 메트릭은 대상을 관찰 가능하게 만들도록 도와주지만, 많은 도구를 사용하기보다는 시스템을 이해할 수 있도록 만드는 데 집중해야 한다.

 

시스템을 관찰 가능하게 만들려고 할 때는 수집하고 조사할 수 있는 이벤트 측면에서 필요한 출력을 생각하자.지금은 다른 종류의 이벤트를 노출하기 위해 다른 도구를 사용해야할 수도 있지만, 향후에는 그렇지 않을 수 있다.

 

문제가 있다면, 사용자가 발견하기 전에 그 문제를 알아야한다.

문제가 발생하면 시스템을 정상화하기 위해 할 수 있는 일을 찾아야며, 상황이 진정된 후 대체 무엇이 잘못됐고 문제가 재발되지 않도록 무엇을 할 수 있는지 알아낼 만한 충분한 정보를 가져야한다.

 

다음은 시스템 아키텍처의 관찰가능성을 개선하는 데 도움이 되는 여러 구성 요소이다.

 

  1. 로그 집계: 여러 마이크로서비스에서 정보를 수집
  2. 메트릭 집계: 원시 수치를 캡처해 문제를 탐지
  3. 분산 추적: 호출 흐름을 추적
  4. 지금 괜찮은가? 에러 예산, SLA, SLO 등을 살펴보고, 마이크로서비스가 소비자의 요구 사항을 충족하는지 확인하는 과정의 일부로 사용할 수 있는 방법을 확인
  5. 알림: 무엇을 알려야할까? 무엇이 좋은 알림일까?
  6. 시멘틱 모니터링: 시스템의 상태와 새벽 3시에 우리를 깨워야 하는 것에 대해 다른 방식으로 생각
  7. 운영 환경에서 테스트: 운영 환경의 다양한 테스트 기법에 대한 요약

 

특징 모니터링 관찰가능성
주요 목표 알려진 문제 알려지지 않은 문제
답변하는 질문 무엇이 왜/어떻게
데이터 특성 사전 집계된 데이터 원시/고세분화 데이터
시스템 상태 이해 피상적 심층적 내부 상태
능동성 사후 대응적 사전 예방적/탐색적
핵심 가능 요소 대시보드/알림 풍부한 원격 측정/쿼리

 

댓글