다디와 괴발개발

모니터링과 로그 본문

DevOps

모니터링과 로그

아임다디 2022. 2. 24. 22:22

CI/CD 파이프라인의 마지막 단계는 운영이다.

운영 단계에서 모니터링은 서비스의 현황과 문제를 파악하여 사용자에게 더 나은 서비스를 제공할 수 있도록 해주는 중요한 단계이다. 로그는 모니터링을 하기위한 필수적인 자료이다.

 

그렇다면, 모니터링을 할 때 어떤 지표를 수집해야하고 기준은 또 어떻게 될까?

 

먼저, 모니터링에 대해 자세히 알아보기 전에 메트릭이란 단어에 대해 알아두고 가자

💡 메트릭이란?

시간에 따라 측정한 결과값
넓은 의미로는 비즈니스 개념을 나타내는 수치 측정

예를 들어, 시간당 CPU 사용률, 연간 순매출과 같이 시간이라는 차원이 함께 적용된 값이 메트릭이다.

꼭! 시간이 들어가야되는 것은 아니다. 서비스 별 매출과 같이 시간이 아른 다른 차원을 기준으로 삼을 수도 있다.

 

메트릭은 한 대의 서버일 경우 리눅스를 통해 측정하며, 클러스터 형태(여러 대의 노드로 구성)인 경우 모니터링 전문 도구를 통해 수집한다.

마이크로소프트(Azure)에서는 메트릭으로 CPU, Memory, 인스턴스의 개수, 연결 유지를 수집한다.

 

모니터링의 목표

모니터링은 왜 하는 것일까?

  1. 시간 기준으로 측정되는 주요 메트릭을 최소화하여 고가용성을 달성하기 위해
  2. 사용량을 추적하여, 배포에 앞서 세운 가설을 검증하고 개선하기 위해서 -> 이를 애자일에서는 "검증된 학습"을 적용한다고 한다.

용어 정리
고가용성 : 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 말한다. 한 마디로 고장나지 않는다.

구글에서 말하는 모니터링의 목표

  1. 장기적인 트렌드 분석
    • 데이터베이스가 얼마만큼 용량을 차지하는지, 얼마나 빨리 용량이 증가하는지
    • DAU(일간 활성 사용자수)는 얼마나 빨리 증가하는지?
  2. 시간의 경과 및 실험 그룹 간의 비교
    • 어떤 데이터베이스를 썼을 때 쿼리가 빠른가?
    • 지난 주보다 사이트가 얼마나 느려졌는가?
  3. 경고
    • 인프라의 어떤 부분이 고장났는가? 고장날 가능성이 있는가?

 

이처럼, 모니터링은 소프트웨어를 장기적으로 운영하기 위한 필수적인 과정이다.

보다 좋은 DevOps 개발자가 되기 위해서는 모니터링을 소홀히해선 안된다.