(로그, 메트릭) 모니터링 대시보드가 뭐죠?(1) 로그와 메트릭

이돈이면 official·2023년 8월 8일
0
post-thumbnail

안녕하세요.

드디어 글을 쓰게 된.
우테코 5기 이돈이면 팀의 이리내입니다.

인프라의 인자도 모르는 제가 이번 4차 스프린트에서 인프라를 맡게 되었어요.
이참에 많이 배워가도록 하겠읍니다^^
그리고 저는 글을 긴 호흡으로 쓰는 것을 못하기 때문에 단편으로 여러번 올릴게용~
글에 이상한 부분이 있다면 댓글 달아주세용

이제 본론입니다.
이번 스프린트에서 완성해야 하는 요구사항중에 다음 요구사항이 있었어요!

(로그, 매트릭) 모니터링 대시보드 구성

아니, 이게 대체 뭐죠?
그래서 지선생에게 물어봤는데요. 지선생 피셜에 따르면 아래와 같다네요.

(로그, 메트릭) 모니터링 대시보드

서비스의 상태, 성능, 문제점을 시각적으로 표현하여 실시간으로 모니터링할 수 있는 인터페이스이다. 이는 팀이나 조직 내에서 중요한 데이터와 지표를 한 눈에 확인하고 분석하는 데 사용되며, 문제를 신속하게 식별하고 조치할 수 있는 도구이다.

로그와 메트릭 모니터링은 로그(Log)와 메트릭(Metric) 데이터를 모니터링하는 것이다.

로그(Log) 모니터링

로그는 시스템 및 애플리케이션 내부에서 발생하는 이벤트와 정보를 기록한 데이터이다. 로그는 디버깅, 오류 분석, 보안 검사 등 다양한 목적으로 사용된다.

로그 모니터링은 서비스의 작동 상태, 오류 발생 여부, 경고 및 알림 등을 추적하고 이해하기 위한 중요한 도구이다. 로그 데이터를 수집하고 분석하면 서비스의 문제를 식별하고 해결하는데 도움이 된다.

메트릭(Metric) 모니터링

메트릭은 시스템의 성능과 상태에 대한 통계적인 정보를 의미한다. 예를 들어, CPU 사용률, 메모리 사용량, 응답 시간 등이 있다.

메트릭 모니터링은 서비스의 성능을 추적하고, 용량 계획을 수립하며, 장애 시 경고 및 대응을 할 때 사용된다.

로그와 메트릭

또, 오늘 읽은 책(가상 면접 사례로 배우는 대규모 시스템 설계 기초)에서는 이런 정보도 있었습니다!

로그

에러 로그를 모니터링 하는 것은 중요하다. 시스템의 오류와 문제들을 보다 쉽게 찾아낼 수 있도록 하기 때문이다. 에러 로그는 서버 단위로 모니터링 할 수도 있지만, 로그를 단일 서비스로 모아주는 도구를 활용하면 더 편리하게 검색하고 조회할 수 있다.

메트릭

메트릭을 잘 수집하면 사업 현황에 관한 유용한 정보를 얻을 수도 있고, 시스템의 현재 상태를 손쉽게 파악할 수도 있다.

  • 호스트 단위 메트릭: CPU, 메모리, 디스크 I/O에 관한 메트릭
  • 종합(aggregated) 메트릭: 데이터베이스 계층의 성능, 캐시 계층의 성능 등
  • 핵심 비즈니스 메트릭: 일별 능동 사용자(daily active user), 수익(revenue), 재방문(retention) 등

이제 대충 로그와 메트릭, 그리고 이것들을 모니터링해야할 필요성을 조금 알 것 같아요!
그런데 모니터링을 할 도구들에는 뭐가 있죠?

모니터링 도구

얼핏, 지난 3차 데모데이 ppt에 여우가 잠시 알아봤다가 던진 모니터링 툴 이름으로 그뭐시기와 키뭐시기가 지나 갔던 것 같아요.
그래서 둘의 차이를 구글링을 해봤는데,

그라파나(Grafana)
시스템 관점인 CPU 메모리, 디스크 IO 및 사용율과 같은 메트릭스 지표를 시각화 하는데 특화

키바나(kibana)
로그메세지 분석과 검색에 특화

허걱.. 로그와 메트릭 모니터링 도구가 다를 수도 있는 것이었군요..!
이제 진짜 뭘 써야할지 모르겠어요.

하지만 이렇게 감이 안올때는 지난 기수들의 깃허브 저장소 readme를 살펴보면 돼요.
그럼 어떤 기술을 선택했는지를 알 수 있거덩요.

메트릭 모니터링 도구

일단 메트릭 모니터링 도구에 대해 최종적으로 두가지 후보를 추려봤어요.
바로 프로메테우스+그라파나aws cloudwatch+그라파나입니다.
(저희는 여선생이 수제로 만든 임시 로그 모니터링 웹페이지가 있기 때문에 로그 모니터링은 잠시 후순위로 밀려나버렸어요..)

프로메테우스 + 그라파나
프로메테우스는 오픈 소스 기반의 시스템 및 서비스 모니터링 도구예요.
프로메테우스가 메트릭 정보를 수집, 저장해준다면,
그라파나는 프로메테우스로 수집한 메트릭을 예쁘게 시각화해서 웹페이지로 볼수있게 해주는 도구이죠!
프로메테우스는 스프링부트 프로젝트의 build 파일에 간단히 추가할 수 있는데요, 프로메테우스를 쓴다면 저희의 스프링 부트 애플리케이션에 대해서 세부적인 메트릭 데이터를 모을 수 있을 것으로 기대됩니다!

aws cloudwatch + 그라파나
aws cloudwatch는 aws 웹페이지를 통해서 모니터링을 할 수 있는 도구라네요!
저희는 현재 하나의 운영서버, 하나의 개발서버 안에 각각의 데이터베이스를 같이 저장하고 있는 구조인데요, 이러한 구조라면 스프링 부트 애플리케이션/mysql 각각에 대해 모니터링 하는 것보단 퉁쳐서 ec2 하나를 모니터링을 하는 것이 좋을 수도 있겠다 생각합니다!
물론 그라파나를 쓰지 않고 aws cloudwatch만 쓰는 방법도 있긴 해요.
하지만 매번 모든 팀원이 aws 로그인 할 때마다 mfa 인증을 위해 호선생을 호출하기는 귀찮습니다.
그래서 cloudwatch로 수집한 데이터를 그라파나를 통해 바로 모니터링 할 수 있으면 편하겠다 생각했어요.

이 두 방법중에 뭘 선택했나면요,프로메테우스+그라파나를 선택했어요.

그 이유는
1. aws cloudwatch 쓰려면 aws 로그인을 해야하고, 로그인을 하려면 mfa인증이 필요한데, 매번 aws 로그인 할 때마다 호선생을 호출해서 물어봐야 한다는 점.
2. 사실은 선택권이 없었다는 점. aws cloudwatch를 쓰려면 iam에서 역할을 만들라길래 한번 그거 해보려 했더니 권한이 없다며 거부당해버렸죠

포스팅 끝!

좋아요! 이제 내일 캠퍼스에 가서 저희의 세번째 ec2를 만들어 한번 메트릭 모니터링 대시보드를 도입해봐야겠습니다~ 우하하

profile
이돈이면 기술 블로그입니다 🫶🏻

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

감사합니다.

답글 달기