Google Cloud Monitoring 알림
Google Cloud Monitoring 알림 (Alerting)
Google Cloud Monitoring 데이터 소스는 Grafana Alerting을 지원해서 GCP 지표와 Service Level Objectives(SLO)를 기반으로 알림 규칙을 만들 수 있어요. Google Cloud 환경을 모니터링하고 특정 조건이 충족되면 알림을 받을 수 있죠. 임계값 기반, 복잡한 MQL, SLO 오류 예산 등 다양한 쿼리 유형으로 알림을 구성해 보세요.
본문
Grafana Cloud를 이용하면 Grafana 인스턴스를 직접 설치·유지·확장할 필요가 없어요. 무료 계정을 만들면 10k 메트릭, 50GB 로그, 50GB 트레이스, 500VUh k6 테스트 등이 영구 무료로 제공돼요.
시작하기 전에
알림 규칙을 만들기 전에 다음을 확인하세요.
- Grafana에서 알림 규칙을 만들 적절한 권한이 있을 것
- Google Cloud Monitoring 데이터 소스가 설정되어 정상 작동할 것 (데이터 소스 구성)
- Grafana Alerting 개념에 익숙할 것
알림에 지원되는 쿼리 유형
다음 쿼리 유형이 알림을 지원해요.
| 쿼리 유형 | 용도 | 참고 |
|---|---|---|
| Builder | GCP 리소스 지표에 대한 임계값 기반 알림 | 알림에 가장 적합하며 시계열 데이터를 반환해요 |
| MQL | Monitoring Query Language를 사용한 복잡한 지표 쿼리 | 고급 필터링과 집계에 사용해요 |
| Service Level Objectives (SLO) | SLO 준수, 오류 예산, 번 레이트에 대한 알림 | 서비스 신뢰성을 모니터링해요 |
| PromQL | GCP 지표에 대한 Prometheus 스타일 쿼리 | Prometheus 사용자에게 익숙한 문법 |
참고: 알림 쿼리는 Grafana가 임계값에 대해 평가할 수 있는 숫자 데이터를 반환해야 해요. 텍스트나 숫자가 아닌 데이터만 반환하는 쿼리는 알림에 직접 사용할 수 없어요.
인증 요구 사항
알림 규칙은 사용자 컨텍스트 없이 백그라운드 프로세스로 실행돼요. 두 지원 인증 방법 모두 알림과 함께 동작해요.
| 인증 방법 | 지원 여부 |
|---|---|
| Google JWT File | ✓ |
| GCE Default Service Account | ✓ |
알림 규칙 만들기
Google Cloud Monitoring 데이터로 알림 규칙을 만들려면:
- Alerting > Alert rules로 이동해요.
- New alert rule을 클릭해요.
- 알림 규칙의 이름을 입력해요.
- Define query and alert condition 섹션에서:
- Google Cloud Monitoring 데이터 소스를 선택해요.
- 쿼리를 구성해요 (예: CPU 사용량을 위한 Builder 쿼리, 오류 예산을 위한 SLO 쿼리).
- 쿼리가 여러 시리즈를 반환하면 Reduce 표현식을 추가해요.
- 알림 조건을 정의하려면 Threshold 표현식을 추가해요.
- Set evaluation behavior를 구성해요:
- 폴더와 평가 그룹을 선택하거나 만들어요.
- 평가 간격(알림이 확인되는 주기)을 설정해요.
- 대기 기간(조건이 발화하기 전에 참이어야 하는 시간)을 설정해요.
- 알림에 맥락을 제공하도록 라벨과 어노테이션을 추가해요.
- Save rule을 클릭해요.
자세한 지침은 Grafana 관리형 알림 규칙 만들기를 참고하세요.
예시: VM CPU 사용량 알림
이 예시는 Compute Engine VM CPU 사용률이 80%를 초과하면 발화되는 알림을 만들어요.
- 새 알림 규칙을 만들어요.
- 쿼리를 구성해요:
- Query type: Builder
- Project: GCP 프로젝트 선택
- Service: Compute Engine
- Metric:
instance/cpu/utilization - Group by function: mean
- 표현식을 추가해요:
- Reduce: Last (가장 최근 데이터 포인트를 가져오기)
- Threshold: Is above 0.8 (CPU 사용률은 소수로 반환됨)
- 평가를 1분마다 실행하도록 설정하고 대기 기간을 5분으로 해요.
- 규칙을 저장해요.
예시: SLO 오류 예산 알림
이 예시는 SLO의 남은 오류 예산이 20% 아래로 떨어지면 알림을 보내요.
- 새 알림 규칙을 만들어요.
- 쿼리를 구성해요:
- Query type: Service Level Objectives (SLO)
- Project: GCP 프로젝트 선택
- Service: SLO 서비스 선택
- SLO: SLO 선택
- Selector: SLO Error Budget Remaining
- 표현식을 추가해요:
- Reduce: Last
- Threshold: Is below 0.2 (20% 남음)
- 평가를 5분마다 실행하도록 설정해요.
- 규칙을 저장해요.
예시: Cloud SQL 메모리 알림
이 예시는 Cloud SQL 인스턴스 메모리 사용률이 90%를 초과하면 알림을 보내요.
- 새 알림 규칙을 만들어요.
- 쿼리를 구성해요:
- Query type: Builder
- Project: GCP 프로젝트 선택
- Service: Cloud SQL
- Metric:
database/memory/utilization - Filter: 필요하면 특정 데이터베이스 인스턴스에 대한 필터 추가
- 표현식을 추가해요:
- Reduce: Last
- Threshold: Is above 0.9
- 평가를 1분마다 실행하도록 설정해요.
- 규칙을 저장해요.
모범 사례
Google Cloud Monitoring 데이터로 안정적이고 효율적인 알림을 만들려면 다음 권장 사항을 따르세요.
적절한 쿼리 간격 사용
- 알림 평가 간격을 Google Cloud Monitoring의 최소 데이터 해상도 이상으로 설정해요.
- 대부분의 GCP 지표는 최소 1분 단위예요.
- 1분 미만의 매우 짧은 간격은 평가 타임아웃이나 데이터 포인트 누락을 유발할 수 있으니 피해요.
여러 시리즈 줄이기
쿼리가 여러 시계열(예: 여러 VM의 CPU 사용량)을 반환할 때는 Reduce 표현식으로 집계해요.
- Last: 가장 최근 값 사용
- Mean: 모든 시리즈의 평균
- Max/Min: 최고/최저 값 사용
- Sum: 모든 시리즈의 합계
적절한 정렬 기간(alignment period) 사용
알림 쿼리에서는 정렬 기간이 충분한 데이터 포인트를 제공하는지 확인하세요.
- 대부분의 경우 "cloud monitoring auto" 또는 "grafana auto"를 사용해요.
- 더 정밀한 제어가 필요하면 평가 간격에 맞는 고정 정렬 기간을 설정해요.
No data 조건 처리
데이터가 반환되지 않을 때 어떻게 할지 구성해요.
- 알림 규칙에서 Configure no data and error handling을 찾아요.
- 적절한 동작을 선택해요:
- No Data: 알림을 현재 상태로 유지
- Alerting: no data를 알림 조건으로 취급
- OK: no data를 정상 상태로 취급
알림 전에 쿼리 테스트
알림을 만들기 전에 쿼리가 예상 데이터를 반환하는지 항상 확인하세요.
- Explore로 이동해요.
- Google Cloud Monitoring 데이터 소스를 선택해요.
- 알림에 사용할 쿼리를 실행해요.
- 데이터 형식과 값이 올바른지 확인해요.
- 쿼리가 임계값 평가에 적합한 숫자 데이터를 반환하는지 확인해요.
Recording rules (기록 규칙)
Google Cloud Monitoring 데이터 소스는 Grafana 관리형 기록 규칙을 지원해요. 기록 규칙은 자주 사용하거나 계산 비용이 큰 쿼리를 주기적으로 미리 계산해 그 결과를 새 시계열 지표로 저장해요.
기록 규칙을 다음 용도로 사용해요.
- 복잡한 집계를 미리 계산해 Google Cloud Monitoring에 대한 쿼리 부하를 줄이기
- GCP 데이터에서 알림과 대시보드에 사용할 파생 지표 만들기
- Google Cloud Monitoring 데이터를 Prometheus 호환 데이터베이스로 가져오기
참고: Grafana 관리형 기록 규칙은 Prometheus 호환 데이터베이스(예: Grafana Mimir 또는 Grafana Cloud 관리형 Prometheus)에 결과를 써요. 기록된 지표를 저장할 대상 데이터 소스를 구성해야 해요.
기록 규칙 생성 지침은 기록 규칙 만들기를 참고하세요.
문제 해결
Google Cloud Monitoring 알림이 예상대로 작동하지 않으면 다음 섹션으로 일반적인 문제를 진단하고 해결해요.
알림이 발화되지 않음
- Explore에서 쿼리가 숫자 데이터를 반환하는지 확인해요.
- 평가 간격이 데이터가 사용 가능해질 충분한 시간을 허용하는지 확인해요.
- 임계값이 올바르게 설정됐는지 확인해요 (많은 GCP 지표는 백분율이 아닌 소수를 반환한다는 점을 기억하세요).
- Alerting UI에서 알림 규칙의 상태와 오류 메시지를 검토해요.
알림 평가 시 인증 오류
알림이 평가될 때 인증 오류가 보이면:
- 서비스 계정에 Monitoring Viewer 역할이 있는지 확인해요.
- JWT 키 파일을 사용한다면 삭제되거나 해지되지 않았는지 확인해요.
- 필요한 API(Monitoring API, Cloud Resource Manager API)가 활성화되어 있는지 확인해요.
쿼리 타임아웃 오류
- 정렬 기간을 늘려 데이터 포인트 수를 줄여요.
- 쿼리의 시간 범위를 줄여요.
- 복잡한 MQL 쿼리를 단순화해요.
- 결과 집합을 좁히도록 필터를 추가해요.
추가 문제 해결 도움말은 Google Cloud Monitoring 문제 해결을 참고하세요.
추가 리소스
- Grafana Alerting documentation
- Create alert rules
- Create recording rules
- Google Cloud Monitoring query editor
더 알아보기 (Learn more)
- Grafana Alerting overview - Grafana 알림 개요
- Create a Grafana-managed alert rule - 알림 규칙 생성
- Google Cloud Monitoring query editor - 쿼리 편집기
- Troubleshoot Google Cloud Monitoring - 문제 해결
- Google Cloud Monitoring alerting - 원문 문서