Skip to content

Conversation

@StoneCAU
Copy link
Member

@StoneCAU StoneCAU commented Dec 23, 2025

🪐 작업 내용

서비스 운영 안정성 확보 및 실시간 장애 대응을 위해 에러 트래킹(Sentry)성능 모니터링(Prometheus + Grafana) 환경을 구축했습니다.


🛠 모니터링 스택

구분 사용 툴 목적
Error Tracking Sentry 실시간 애플리케이션 에러 로그 수집 및 알림
Metrics Prometheus 서버 리소스 및 애플리케이션 메트릭 데이터 수집
Visualization Grafana 수집된 메트릭 데이터의 시각화 및 대시보드 제공

✅ 관리자 설정 가이드 (Infrastructure)

서버 배포 시 아래 설정 사항들을 반드시 반영해 주셔야 모니터링이 정상 작동합니다.

1. 환경 변수 (.env) 설정

2. 모니터링 설정 파일 생성

  • 경로: /home/ubuntu/app/monitoring/prometheus.yml
  • 내용: 프로젝트 내 monitoring/prometheus.yml 파일을 해당 위치에 생성 및 복사해 주세요.

3. AWS EC2 보안 그룹(SG) 포트 개방

외부에서 모니터링 대시보드에 접속할 수 있도록 인바운드 규칙 추가가 필요합니다.

  • 3000번 포트: Grafana 대시보드 접속용
  • 9090번 포트: Prometheus 설정 확인용 (필요 시 개방)

📦 주요 변경 사항

  • application-prod.yml: Prometheus 메트릭 노출을 위한 Actuator 엔드포인트 활성화
  • docker-compose.yml: Prometheus 및 Grafana 서비스 정의 추가 및 전용 네트워크(catchy-network) 설정
  • monitoring/prometheus.yml: 애플리케이션 컨테이너(catchy-server) 데이터 수집을 위한 스크레이핑 규칙 정의
  • github-actions.yml: 배포 시 전체 서비스를 갱신하도록 docker-compose up -d 명령 수정

🔍 확인 방법

  1. 배포 후 http://[EC2-IP]:3000으로 접속하여 Grafana 로그인 여부 확인
  2. http://[EC2-IP]:8081/actuator/prometheus 접속 시 메트릭 텍스트가 정상 출력되는지 확인

- Sentry SDK 및 Gradle 플러그인 추가
- JwtAuthenticationFilter 및 ExceptionAdvice 리팩토링 (에러 마스킹 이슈 해결)
- 환경 변수(${SENTRY_DSN}) 추가
- GitHub Actions 빌드 단계에 SENTRY_AUTH_TOKEN 주입 설정 추가
- application-prod.yml: Prometheus 메트릭 노출을 위한 Actuator 설정 추가
- docker-compose.yml: Prometheus, Grafana 서비스 및 전용 네트워크 추가
- monitoring/prometheus.yml: 애플리케이션 메트릭 수집을 위한 스크레이핑 설정 추가
- github-actions.yml: 다중 컨테이너 배포를 위해 docker-compose up 명령어 수정
@StoneCAU StoneCAU self-assigned this Dec 23, 2025
@StoneCAU StoneCAU added the feat label Dec 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants