Skip to content

Prometheus + Grafana 모니터링 구성 추가#227

Merged
minibr merged 7 commits into
mainfrom
feature/#226-add-prometheus-grafana-monitoring
Jun 22, 2026
Merged

Prometheus + Grafana 모니터링 구성 추가#227
minibr merged 7 commits into
mainfrom
feature/#226-add-prometheus-grafana-monitoring

Conversation

@minibr

@minibr minibr commented May 15, 2026

Copy link
Copy Markdown
Member

관련 이슈

PR 설명

  • Prometheus + Grafana 기반 HTTP 모니터링 시스템 구축
  • EC2 리소스 절약을 위해 HTTP 메트릭만 수집 (JVM/시스템 메트릭 비활성화)

구현 내용

수집 메트릭

  • HTTP Request Rate: 초당 요청 수 추이
  • HTTP Error Rate: 4xx/5xx 에러율 (%)
  • HTTP Response Time: 응답 시간 백분위수 (p50, p95, p99)
  • Requests by Status Code: 상태 코드별 분포
  • Top 10 Slowest Endpoints: 가장 느린 API 10개
  • Top 10 Most Requested Endpoints: 가장 많이 호출되는 API 10개

리소스 설정

  • Prometheus/Grafana 각 메모리 256MB 제한
  • 메트릭 스크래핑 간격: 30초
  • 데이터 보존 기간: 3일

Grafana 대시보드

  • HTTP Request Rate: 초당 요청 수 추이
  • HTTP Error Rate: 4xx/5xx 에러율 (%)
  • HTTP Response Time: 응답 시간 백분위수
  • Requests by Status Code: 상태 코드별 분포

배포 준비 완료 작업

  • GitHub Secrets에 GRAFANA_ADMIN_PASSWORD 추가
  • GitHub Secrets의 APPLICATION에 management 설정 추가
  • EC2 보안그룹에서 3001 포트 오픈

접속 방법

  1. PR 머지 → CD 자동 실행 → 배포 완료
  2. 접속 URL:
    • Grafana: http://(EC2-IP):3001
  3. Grafana 로그인: admin / 노션 참조
  4. 좌측 메뉴 → Dashboards → Linkiving HTTP Overview 선택
스크린샷 2026-05-21 오후 3 21 58

@minibr minibr linked an issue May 15, 2026 that may be closed by this pull request
@github-actions

github-actions Bot commented May 15, 2026

Copy link
Copy Markdown

📊 코드 커버리지 리포트

Overall Project 94.28% 🍏

There is no coverage information present for the Files changed

@minibr minibr force-pushed the feature/#226-add-prometheus-grafana-monitoring branch from d3a5fdc to 8cd8612 Compare May 15, 2026 12:25
@ckdals4600

Copy link
Copy Markdown
Contributor

@minibr 모니터링 시스템 구축하시느라 고생 많으셨습니다! 적용된 Grafana 대시보드의 실제 예시 사진과 팀원들을 위한 간단한 접속/사용 방법을 PR 내용에 같이 첨부해 주시면 내용 파악에 훨씬 도움이 될 것 같습니다. 감사합니다!

@minibr

minibr commented May 21, 2026

Copy link
Copy Markdown
Member Author

@minibr 모니터링 시스템 구축하시느라 고생 많으셨습니다! 적용된 Grafana 대시보드의 실제 예시 사진과 팀원들을 위한 간단한 접속/사용 방법을 PR 내용에 같이 첨부해 주시면 내용 파악에 훨씬 도움이 될 것 같습니다. 감사합니다!

넵 확인했습니다.

@Goder-0 Goder-0 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이번 모니터링 구성은 애플리케이션/도커 설정만으로 끝나지 않고, 실제 접근 경로 기준으로는 Nginx 라우팅이나 EC2 Security Group 설정까지 함께 맞아야 할 것 같은데요. 혹시 /actuator/prometheus, 9090, 3001 관련해서 외부/내부 접근 정책을 어떻게 가져갈지도 같이 정리해두신 부분이 있을까요?

예를 들어 Prometheus/Grafana를 외부에 직접 노출할지, Nginx 뒤에서 제한할지, 특정 IP만 허용할지 같은 운영 전제가 있어야 실제 적용 시 혼선이 적을 것 같아서 질문드립니다.

Comment thread deploy.sh Outdated
@Goder-0 Goder-0 mentioned this pull request May 27, 2026
14 tasks
@minibr

minibr commented May 31, 2026

Copy link
Copy Markdown
Member Author

이번 모니터링 구성은 애플리케이션/도커 설정만으로 끝나지 않고, 실제 접근 경로 기준으로는 Nginx 라우팅이나 EC2 Security Group 설정까지 함께 맞아야 할 것 같은데요. 혹시 /actuator/prometheus, 9090, 3001 관련해서 외부/내부 접근 정책을 어떻게 가져갈지도 같이 정리해두신 부분이 있을까요?

예를 들어 Prometheus/Grafana를 외부에 직접 노출할지, Nginx 뒤에서 제한할지, 특정 IP만 허용할지 같은 운영 전제가 있어야 실제 적용 시 혼선이 적을 것 같아서 질문드립니다.

좋은 지적 감사합니다. 아래와 같이 접근 정책을 정리하고 적용했습니다.

/actuator/prometheus

  • Prometheus는 도커 내부망(app-network)에서 blue:8080, green:8080으로 스크래핑하므로 외부 포트를 통하지 않습니다.
  • 추가로 Nginx에서 /actuator/ 경로를 deny all 처리하여 외부 접근을 차단했습니다.

/9090 삭제

Grafana (3001)

  • 팀원 전체가 원격으로 접근해야 하는 환경이라 IP 제한 대신 Grafana 자체 인증으로 관리합니다.
  • GF_USERS_ALLOW_SIGN_UP=false 설정과 Secret으로 관리되는 관리자 비밀번호로 접근을 제한합니다.

@ckdals4600

ckdals4600 commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

@minibr
로컬 테스트를 진행하려고 하는데 3001, 9090 접속이 되지 않습니다, 혹시 로컬에서의 정확한 접속 방법을 알려주실 수 있을까요?
그리고 이후 설정 공유를 위해 이번에 반영된 내용을 서버 application.yml 노션에도 함께 업데이트 부탁드립니다!

@minibr

minibr commented Jun 18, 2026

Copy link
Copy Markdown
Member Author

@minibr 로컬 테스트를 진행하려고 하는데 3001, 9090 접속이 되지 않습니다, 혹시 로컬에서의 정확한 접속 방법을 알려주실 수 있을까요? 그리고 이후 설정 공유를 위해 이번에 반영된 내용을 서버 application.yml 노션에도 함께 업데이트 부탁드립니다!

  1. 로컬 접속 방법
    먼저 9090(Prometheus)은 보안 정리 작업 때 호스트 포트 노출을 의도적으로 제거해서, 로컬/서버 모두 직접 접속이 안 되는 게 정상입니다. 모니터링은 Grafana(3001)로만 보시면 됩니다.

로컬에서 Grafana 띄우는 법:

echo "GRAFANA_ADMIN_USER=admin" > docker/.env
echo "GRAFANA_ADMIN_PASSWORD=admin" >> docker/.env
docker compose -f docker/docker-compose.yml up -d prometheus grafana

http://localhost:3001 접속 (admin / admin)

단, 이 상태에선 Prometheus가 스크랩할 대상(blue/green)이 안 떠서 대시보드는 비어 보입니다. 메트릭까지 확인하려면 앱을 blue/green 컨테이너로 함께 띄워야 하고, 그땐 먼저 docker
network create linkiving-internal 를 실행해야 해요.

(로컬에서 위 절차로 Grafana 3001 접속/로그인까지 직접 테스트해서 동작 확인했습니다.)

  1. application.yml management 설정은 노션에 업데이트해두겠습니다

@minibr minibr force-pushed the feature/#226-add-prometheus-grafana-monitoring branch from 3f2f5fe to 5ed578c Compare June 21, 2026 11:51
@minibr minibr merged commit 91c1972 into main Jun 22, 2026
1 check passed
@ckdals4600 ckdals4600 deleted the feature/#226-add-prometheus-grafana-monitoring branch June 24, 2026 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Prometheus + Grafana 모니터링 시스템 구축

3 participants