시작하며

이번에 vultr로 이사를 가게 되면서 서버 성능을 최소로 줄였다. 그리고 그에 따라서 발생하는 문제들을 모니터링 하기 위해서 모니터링 툴을 찾던 중 프로메테우스와 그라파나를 많이 사용하는것을 보고 한번 도입해봤다.

서버 구성 

이렇게 서버 구성이 바뀌게 되었다. 전체 구성도의 일부를 가져온것이라 설명이 안 보이는데 빨간줄은 공인망, 초록망은 내부망(VPC), 파란선은 로컬 통신을 뜻한다. seulchuksaengmonitor.store라는 도메인을 추가로 구입하여 그라파나 서버에 적용하였다. 지금은 백엔드와 디비서버 이렇게 두가지 서버를 모니터링하고 있다. 프론트는 제니퍼프론트라는 툴로 모니러팅하고 있는데 이는 따로 다루겠다.

 

구성은 간단하게 3가지로 나눌 수 있는데 데이터를 프로메테우스로 보내주는 exporter, 데이터를 수집하고 저장하는 prometheus, 그리고 마지막으로 저장된 데이터를 시각화 해주는 grafana로 나눠진다. 프로메테우스와 그라파나를 다른 서버에 구성할까 고민을 했지만 그냥 한 서버에 포트를 다르게 해서 띄워놨다. 귀찮아서 그런게 아니라 굳이 둘이 나눠야하나 싶었다, 사실 좀 귀찮긴 했다.

그라파나 대시보드

어찌저찌 잘 연동해서 그라파나 대시 보드를 띄워봤는데 일단 인상 깊었던건 사람들이 많은 대쉬보드를 간단하게 고유번호 하나로 import해서 사용할 수 있는것이였다. 그라파나와 프로메테우스간의 연동 과정은 너무나도 쉽고 간편하여서 놀라웠다.

 

일단 네가지를 모니러팅하기로 했다. mysql, spring, jvm, 백엔드 서버 자원에 대한 대시보드를 구성하였다.

백엔드 jvm 대시보드다. 여러 기술블로그를 보거나 기타 문서들을 볼때 가끔 jvm 튜닝이라는 말을 접해봤다. 아직까진 공부해본적은 없지만 높은 성능을 요하는 환경에서는 jvm도 직접 튜닝해서 사용하는가? 라는 의문이 들때가 많아서 일단 한번 모니터링을 구성해봤다. 

이건 백엔드 서버 하드웨어 자원 사용량에 대한 대시보드이다. cpu, ram, 디스크 사용랑등을 모니터링한다.

이것은 mysql 자원 사용에 대한 대시보드이다. 보통 qps나 슬로우 쿼리에 대한 모니터링용으로 많이 보는듯 하다.

사실 아직 다 완벽하게 사용할 정도로 이해도가 깊지는 않은것 같다.

마지막으로 스프링 서버에 대한 대시보드이다. 여기는 엔드포인트로 얼마나 많은 요청이 왔는지 보여주는데 ssh 로그인 요청만큼이나 get이나 post로 / url로 요청하는 해커의 스캔 요청이 많은것을 알 수 있었다. 더욱 더 보안에 신경써야겠다는 생각이 들었다.

마무리하며

slack으로 특성 수치의 임계치가 넘었을때 알림을 보내는 기능도 설정해보려다가 일단 잠시 보류해놨다. 생각보다 좀 복잡했다, 더 익숙해져야겠다는 생각이 들었는데 네이버 핀포인트라고 비슷하게 제공하는 모니터링 툴이 있는데 기존에 프로메테우스 구성을 버리고 네이버 핀 포인트로 전환 하는 방향을 고려하고 있다. 인프랩에서 사용하고 있는걸로 알고 있어서 궁금해졌다. 다음 글은 프론트엔드 배포 자동화와 모니터링에 대한 주제로 오도록 하겠다.

 

반응형
복사했습니다!