도도한 개발자
[TIL] 2023/08/16 본문
🐈⬛ 오늘 공부한 내용
- 개발 서버, 운영 서버 분리
- Spring Boot Actuator, Prometheus, Grafana를 사용한 스프링 부트 모니터링 환경 구축
- 카페인 프로젝트 아키텍쳐 정리
🐾 느낀 점 & 배운 점
ec2를 추가로 받아서 할 일이 생겼다. 한 서버에 띄워져 있던 dev와 prod를 각각의 서버에 띄우는 작업. 직접 보니까 이제 좀 알 것 같다. 그리고 모니터링 환경 구축은 페어로 같이 싶었는데 다행히 넷이서 했다. 중간중간 이해를 못해서 넘어간 부분이 좀 있었는데 이를 보강하려면 한 번 글을 쓰는 게 좋을 것 같다. 살짝 정리를 해보자면
1. Spring Boot Actuator는 스프링 부트의 서브 프로젝트다. 스프링 부트 애플리케이션에서 Spring Boot Actuator를 활성화하면, 애플리케이션을 모니터링하고 관리할 수 있는 엔트포인트에 접속할 수 있게 된다.(의존성 추가 필요)
이 엔드포인트 중 Prometheus에서 사용되는 메트릭에 대한 엔드포인트를 노출시켜야하는데, 설정은 application.yml파일에
추가할 수 있다.
2. Prometheus는 주기적 엔드포인트에 접속하여 메트릭을 수집하고 저장한다. 이를 통해 모니터링을 하거나 경고할 수 있게 도와준다.
메트릭이란, 간단하게 말하면 숫자 데이터로, 예로는 요청 시간, 데이터베이스 활성 연결 수, CPU 사용량 등이 있다. 그리고 Prometheus는 이 메트릭을 HTTP를 통한 pull model을 통해 주기적으로 수집하여 시계열(time series) 데이터로 저장한다. 따라서, 숫자로 구성된 시계열 데이터를 수집하고 모니터링 하는데 적합하다.(이부분 보강 필요)
Prometheus는 YAML 파일로 설정을 작성하기에 prometheus.yml 라는 이름으로 파일을 생성하고 거기에 메트릭을 수집할 호스트 정보와 메트릭 정보의 경로를 명시한다. 추가호 메트릭을 수집할 주기도 설정할 수 있다.
도커 컨테이너를 실행해 9090 포트로 접속하면 Prometheus의 대시보드를 확인할 수 있다.
3. Grafana는 데이터 시각화 및 메트릭 분석 도구다. Prometheus도 기본적으로 시각화를 제공하지만, Grafana는 더 강력한 시각화를 제공한다고 한다. Grafana를 도커로 설치하고 컨테이너를 실행하면, 외부에서 80포트로 접속이 가능하다.
여기까지 정리한 내용인데 숭덩숭덩 부족한 부분이 많아 직접 타이핑 하면서 익히고 글로 정리하는 게 좋겠다.
우리 프로젝트 아키텍쳐를 그림으로 정리해봤는데 정리가 중요한게 아니라 정리하면서 개념을 익히는 과정이 재밌었다. 근데 아직도 네트워크는 어려워..
💭 감정회고
하루 종일 머리가 아팠는데 집에 갈 쯤 괜찮아졌다. 낮에 모니터링 구축 끝내고 당 떨어져서 오랜만에 왁자지껄한 자바칩 프라페 마셨는데 당 떨어진게 아니라 그냥 졸린거였다. 금요일이면 짐을 다 빼야해서 조금씩 짐을 빼내고 있다. 왜냐면 난 가는 곳 마다 살림을 차리니까..ㅎㅎ
'TIL' 카테고리의 다른 글
[TIL] 2023/08/18 (0) | 2023.08.18 |
---|---|
[TIL] 2023/08/17 (0) | 2023.08.17 |
[TIL] 2023/08/15 (0) | 2023.08.15 |
[TIL] 2023/08/14 (0) | 2023.08.14 |
[TIL] 2023/08/13 (0) | 2023.08.13 |