개요
모니터링을 통해 애플리케이션에 문제가 발생한 경우 빠르게 문제를 파악하고 해결할 필요가 있다.
하지만 모니터링을 사람이 24시간 내내 보고 있을 수 없기 때문에 Grafana를 통해 모니터링 중 문제가 발생했을 경우 Slack을 통해 알림 메시지를 보내는 실습을 해볼 것이다.
모니터링 설정 방법
Monitoring Notification(모니터링 알림)
모니터링 시스템에서 알림은 시스템 상태 변화나 문제 발생 시 즉각적으로 대응할 수 있도록 알려주는 핵심 기능으로 IT 시스템과 서비스 운영의 안정성과 가용성을 유지하는 데 필수적.
알림의 필요성
- 문제 조기 발견:
- 시스템의 성능 저하, 오류 발생, 리소스 부족 등을 실시간으로 감지하여 빠르게 대응할 수 있다.
- 서비스 가용성 유지:
- 장애 발생 시 알림을 통해 즉각적인 대응을 유도하여 서비스 중단 시간을 최소화한다.
- 비용 절감:
- 심각한 문제 발생 전에 조치를 취해 리소스 손실과 운영 비용을 줄일 수 있다.
- 데이터 보호:
- 보안 침해 시 빠른 경고로 시스템을 보호할 수 있다.
- 법적/계약적 준수:
- 서비스 수준 협약(SLA)을 유지하기 위해 시스템 가용성을 실시간으로 모니터링하고 보호할 수 있다.
알림의 유형
- 실시간 알림:
- 즉시 문제 해결이 필요한 중요한 이벤트(예: 서버 다운).
- 임계값 기반 알림:
- CPU 사용량이 80% 이상일 때 등 특정 조건을 기준으로 발생.
- 예방적 알림:
- 향후 문제가 발생할 가능성을 미리 알려주는 알림.
- 주기적 보고 알림:
- 시스템 상태 보고서를 일정 주기로 제공.
알림 시스템 설계 시 고려 사항
- 우선순위 설정:
- 알림 심각도를 구분하여 불필요한 알림을 줄인다.
- 알림 채널:
- 이메일, 문자, 메신저, 대시보드 등 다양한 채널을 통해 전달.
- 대응 프로세스 정의:
- 알림 수신 시 대응 절차와 담당자 지정.
- 알림 이력 관리:
- 알림 기록을 저장해 문제 원인을 분석하고 대응 프로세스를 개선한다.
Grafana - Slack Alert 보내기
1. Slack App 생성
1-1. 슬랙에 가입해 워크 스페이스를 생성한다.
1-2. https://api.slack.com/apps에 접속해 Create App 선택
1-3. 팝업에서 From scratch 선택 후 앱 이름 및 워크스페이스 선택
1-4. OAuth & Permissions 메뉴 선택
1-5. Scopes 항목 → Bot Token Scopes에 chat:write 추가
1-6. Install to Monitor(Worksapce) 클릭 후 권한 허용
1-7. Incoming Webhooks 메뉴 → Activate Incoming Webhooks 활성화 → Add New Webhooks to Workspace 선택
1-8. 생성된 Webhook URL 복사
1-9. Slack app의 Alert에 사용할 워크스페이스 채널로 이동 후 @로 생성한 App 추가
2. Grafana Alert 설정
2-1. 그라파나 사이드 메뉴 Alerting → Contact points → Add contact point(Create contact point)
2-2. 이름 입력 → Integration → Slack 선택 후 Webhook URL 복사(1-8번) → Test
2-3. Slack으로 테스트 메시지 전송되는지 확인
2-4. 그라파나 사이드 메뉴 → Alerting → Notification policies → Default policy edit → 생성한 contact point 선택
2-5. Alerting → Alert rules → New alert rule
2-6. 알림 이름 입력 → Define query and alert condition → matric up → Label filter → Job: spring-boot
2-7. 스크롤 해서 Expression 항목으로 이동 Threshold: is blow 선택 및 1 입력
2-8. 스크롤해서 Set evaluation behavior 섹션 설정
- 폴더 및 그룹 생성 및 선택 후 pending period 설정
2-9. 스크롤해서 Confifure labels and notification 메뉴 → contact point slack으로 설정
2-10 생성된 Alert 설정 확인
3. 그라파나 Alert 테스트
3-1. 모니터링 실행 중인 Spring 애플리케이션 정지 및 Alert 상태 확인
- 애플리케이션 정지 후 1분 뒤에 새로고침하면 대기 상태로 변경된 것을 확인할 수 있다.
- 추가로 1분 후에는 Firing 상태로 변경되고 Slack의 알림 채널으로 정지 알림 메시지가 보내진다.
3-2. 알림 메시지 확인 후 애플리케이션 재실행 및 모니터링(Alert) 상태 확인
- 슬랙으로 Firing 메시지가 제대로 송신된 것을 확인할 수 있다.
- 애플리케이션 재실행 후 Normal 상태로 변경된 것을 확인할 수 있고, 5분 정도 후에 slack으로 정상 상태로 복구되었다는 메시지가 도착한다.
정리
- slack과 grafana를 사용해 애플리케이션의 상태를 모니터링하고 알림을 보내는 실습을 진행했다.
- 간단한 알림 설정이지만 필요한 사항이 꽤 많다는 것을 느꼈고, 좀 더 다양한 형태의 알림을 전송하기 위해서는 해당 알림 설정 등에 대한 것들을 충분히 학습하고 실습해볼 필요성을 느꼈다.
'자바 심화 > TIL' 카테고리의 다른 글
장애 대응 (1) | 2024.12.24 |
---|---|
시큐어 코딩(Secure Coding) (0) | 2024.12.23 |
모니터링(Monitoring) (1) | 2024.12.19 |
프로젝트 회고 (0) | 2024.12.18 |
Open Route Service API 사용 (1) | 2024.12.16 |