안녕하세요,

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제로 "Application 에러에 대한 Alert 설정이 가능한지"를 다루고자 합니다. 

일반적으로 Monitoring Alert을 만드는 대상은 Monitoring Metric으로 관측이 가능한 CPU, Memory 등 GCP 인프라 리소스입니다.

하지만 Application 레벨의 Log가 Cloud Logging에 표시되도록 설정되어 있는 경우, Log Based Metric을 사용하여 Application 에러에 대한 Alert도 설정할 수 있습니다.



[Application 에러에 대한 Log Base Metric 만들기] 


※ Log Based Metric에 대해서는 해당 문서[1]를 참고하시기 바랍니다.


Application Log를 Cloud Logging Log에서 확인이 가능한 경우, 아래와 같이 Alert을 만들고자 하는 Log Filter를 Logs Explorer에서 확인 합니다.

- GCP 콘솔 > Logging > Logs Explorer

 


Log Filter가 확인되었으면 중앙의 Create Metric 버튼을 클릭하여 Log filter에 대응하는 Log based metric을 생성합니다.

이때, Metric의 데이터 유형은 아래 중 원하는 유형으로 설정합니다.


 - 카운터: 이 측정항목은 특정 기간 내에 지정된 필터와 일치하는 로그 항목 개수를 카운트합니다. 로그에 값 또는 문자열이 나타나는 횟수를 추적하려면 카운터를 사용하세요.

 - 분산: 이 측정항목도 값의 수를 세지만 값 범위(히스토그램 버킷)로 개수를 수집합니다. 지연 시간과 같은 값을 추출하려면 분산을 사용합니다.


Log-based Metrics 화면으로 이동하여 정상적으로 Metric이 생성되었는지를 확인합니다.


- GCP 콘솔 > Logging > Log-based Metrics





[Log Based Metric Alert 생성]


생성된 Log Based Metric으로 Alert을 생성합니다.

Log based Metirc 우측의 :(More Actions)를 클릭한 후 Create alert from metric을 선택합니다.


Create alerting policy 창으로 이동한 후 원하는 조건의 Alert을 생성합니다.


1. Alert Condition 설정


해당 화면에 대한 자세한 설명은 아래와 같습니다.



1) Select a metric : 어떤 Metric으로 Alert을 생성할지를 선택합니다.

※ 만약 원하시는 Metric이 검색이 되지 않으신다면 아직 해당 Metric으로 데이터가 쌓이지 않아서 일 수 있습니다.

그럴 때에는 Active 버튼을 비활성화 해주시기 바랍니다. 


2) Add filters(선택사항) : Alert에 대한 필터를 추가하여 보다 상세한 조건의 Alert을 생성합니다.

filter 추가 시에는 선택한 시계열 필터링[2] 문서를 참고하시기 바랍니다.


3) Transform data : 순환 기간 및 순한 기간 함수 필드를 설정합니다.

ex : 10분간 10회 이상 시 count 되었을 때의 Alert이 발생하도록 설정하고 싶다면 아래와 같이 설정합니다.

 - Rolling window : 10

 - Rolling window function : count


4) Across time series(선택사항) : 시계열 데이터를 그룹화하여 볼 수 있도록 설정합니다.

ex : GCE VM CPU Utilization의 경우 설정 값에 따라 아래와 같이 나타납니다.

 - none : 개별 VM의 CPU Utilization이 표시됩니다.

 - sum : 전체 VM CPU Utilization 합계 값이 표시됩니다.

 - mean : 전체 VM CPU Utilization 평균 값이 표시됩니다.



2. Trigger 설정


원하는 조건의 Trigger를 설정합니다.

예를 들어 원하는 조건이 10회 이상 발생하는 경우라면 아래 조건으로 설정합니다.



아래 Condition 유형에 대한 설명을 참고하여 원하시는 유형의 Trigger를 설정하시기 바랍니다.


 - Threshold : 측정항목의 값이 특정 기간 동안 임곗값보다 크거나 작을 때 측정항목 임곗값 조건이 트리거됩니다.

 - Metric absence : 측정항목 부재 조건은 모니터링 시계열에 특정 기간 동안의 데이터가 없을 때 트리거됩니다. 

기간은 Google Cloud 콘솔에서 조건을 만들 경우 최대 24시간, Cloud Monitoring API에서 최대 24.5시간입니다.

 - Forecast : 예측된 측정항목 값 조건은 알림 정책에서 예정된 예측 기간 내에 기준을 위반할 것으로 예측하는 경우 트리거됩니다. 예측 기간은 1시간에서 7일 사이입니다.



3. Notification Channel 설정(권장사항)


Alert이 발생 시 사용자에게 즉시 알림을 보낼 수 있는 Notification Channel을 설정합니다.

Notification Channel 종류는 아래와 같으며, 이중 원하는 종류를 추가하여 사용[3]하시면 됩니다.


1) Email

2) 모바일 앱(앱스토어에서 Google Cloud 콘솔 모바일 앱 설치 필요)

3) SMS

4) Slack

5) Webhook

6) Pub/Sub

7) Google Chat

8) PagerDuty



※ Notification Channel 추가 후 Refresh를 하면 최신 Notification Channel을 바로 불러올 수 있습니다.


Notification Channel 설정까지 완료되었다면 정책에 대한 설명, severity level, 정책 이름 등을 설정 후 생성을 완료합니다.

생성 완료 후에는 설정한 Alert 발생 여부를 반드시 확인하시기 바랍니다.



참조링크


[1] Google Cloud Log Based Metric 개요 문서

링크 : https://cloud.google.com/logging/docs/logs-based-metrics


[2] Google Cloud 선택한 시계열 필터링 문서

링크 : Create metric-threshold alerting policies  |  Cloud Monitoring  |  Google Cloud 


[3] Google Cloud Notification Channel 생성 & 관리 문서

링크 : https://cloud.google.com/monitoring/support/notification-options


관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.