측정항목 부재 알림 정책 만들기

이 문서에서는 Google Cloud 콘솔을 사용하여 모니터링되는 시계열에 특정 기간 동안 데이터가 없을 때 알림을 전송하는 알림 정책을 만드는 방법을 설명합니다.

측정항목 부재 조건에 정책이 설치되거나 수정된 후 최대 기간 내에 데이터가 검색된 성공적인 측정이 최소 하나 이상 있어야 합니다. 구성 가능한 최대 기간은 Google Cloud 콘솔을 사용하는 경우 24시간, Cloud Monitoring API를 사용하는 경우 24.5시간입니다.

예를 들어 측정항목 부재 정책의 기간을 30분으로 설정했다고 가정하겠습니다. 측정항목 데이터가 기록되는 하위 시스템에서 데이터 포인트를 작성하지 않을 경우 조건을 충족할 수 없습니다. 이 하위 시스템은 적어도 하나의 데이터 포인트를 출력한 후 30분 동안 추가 데이터 포인트를 출력하는 데 실패해야 합니다.

이 콘텐츠는 로그 기준 알림 정책에 적용되지 않습니다. 특정 메시지가 로그에 표시될 때 알림을 표시하는 로그 기준 알림 정책에 대한 자세한 내용은 로그 모니터링을 참조하세요.

이 문서에서는 다음에 대해 설명하지 않습니다.

시작하기 전에

  1. Google Cloud 콘솔을 사용하여 알림 정책을 만들고 수정하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Monitoring 편집자(roles/monitoring.editor) IAM 역할 부여를 요청합니다. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.

    커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

    Cloud Monitoring 역할에 대한 자세한 내용은 Identity and Access Management로 액세스 제어를 참조하세요.

  2. 알림 정책의 일반 개념을 숙지해야 합니다. 이러한 주제에 대한 자세한 내용은 알림 개요를 참조하세요.

  3. 알림을 수신하는 데 사용할 알림 채널을 구성합니다. 중복화 목적으로 여러 유형의 알림 채널을 만드는 것이 좋습니다. 자세한 내용은 알림 채널 만들기 및 관리를 참고하세요.

알림 정책 만들기

모니터링되는 시계열에 특정 기간 동안 데이터가 없을 때 알림을 전송하는 알림 정책을 만들려면 다음을 수행합니다.

  1. Google Cloud 콘솔의 탐색 패널에서 Monitoring을 선택한 후  알림을 선택합니다.

    알림으로 이동

  2. 정책 만들기를 선택합니다.
  3. 모니터링할 시계열을 선택합니다.

    1. 측정항목 선택을 클릭하고, 메뉴를 탐색하여 리소스 유형 및 측정항목 유형을 선택한 다음 적용을 클릭합니다.

      측정항목 선택 메뉴에는 사용 가능한 측정항목 유형을 찾는 데 도움이 되는 기능이 포함되어 있습니다.

      • 특정 측정항목 유형을 찾으려면 필터 막대를 사용합니다. 예를 들어 util을 입력하면 util이 포함된 항목이 표시되도록 메뉴를 제한합니다. 항목이 대소문자를 구분하지 않는 'contains' 테스트를 통과하면 표시됩니다.

      기본 제공 측정항목 또는 사용자 정의 측정항목을 모니터링할 수 있습니다.

    2. 선택사항: 이전 단계에서 선택한 측정항목 및 리소스 유형과 일치하는 시계열의 하위 집합을 모니터링하려면 필터 추가를 클릭합니다. 필터 대화상자에서 필터링할 라벨, 비교 연산자를 선택한 후 필터 값을 선택합니다. 예를 들어 zone =~ ^us.*.a$ 필터는 정규 표현식을 사용하여 해당 영역 이름이 us로 시작하고 a로 끝나는 모든 시계열 데이터를 찾습니다. 자세한 내용은 선택한 시계열 필터링을 참조하세요.

    3. 선택사항: 시계열의 지점을 정렬하는 방식을 변경하려면 데이터 변환 섹션에서 순환 기간 순환 기간 함수 필드를 설정합니다.

      이 필드에서는 일정 범위에 기록된 지점을 결합하는 방식을 지정합니다. 예를 들어 범위가 15분이고 범위 함수가 max라고 가정합시다. 정렬된 지점은 최근 15분 동안 모든 지점의 최댓값입니다. 자세한 내용은 정렬: 시리즈 내 정규화를 참조하세요.

    4. 선택사항: 정책이 모니터링하는 시계열 수를 줄이거나 시계열 컬렉션만 모니터링하려는 경우 시계열을 조합합니다. 예를 들어 각 VM 인스턴스의 CPU 사용률을 모니터링하는 대신 영역에 있는 모든 VM에 대해 평균 CPU 사용률을 계산한 후 해당 평균을 모니터링해야 할 수 있습니다. 기본적으로 시계열은 조합되지 않습니다. 일반 정보는 축소: 시계열 조합을 참조하세요.

      모든 시계열을 조합하려면 다음을 수행하세요.

      1. 시계열 간 섹션에서 확장을 클릭합니다.
      2. 시계열 집계 필드를 none 이외의 값으로 설정합니다. 예를 들어 시계열의 평균 값을 표시하려면 mean을 선택합니다.
      3. 시계열 그룹화 기준 필드가 비어 있는지 확인합니다.

      라벨 값으로 시계열을 조합하거나 그룹화하려면 다음을 수행합니다.

      1. 시계열 간 섹션에서 확장을 클릭합니다.
      2. 시계열 집계 필드를 none 이외의 값으로 설정합니다.
      3. 시계열 그룹화 기준 필드에서 그룹화할 라벨을 선택합니다.

      예를 들어 zone 라벨별로 그룹화한 후 집계 필드를 mean 값으로 설정하면 차트에 데이터가 있는 각 영역마다 시계열이 하나씩 표시됩니다. 특정 영역에 표시되는 시계열은 해당 영역의 모든 시계열의 평균입니다.

    5. 다음을 클릭합니다.

  4. 조건 트리거를 구성합니다.

    1. 조건 유형으로 측정항목 부재를 선택합니다.
    2. 알림 트리거 메뉴의 값을 선택합니다. 이 메뉴를 통해 조건이 충족되기 전 데이터가 없어야 하는 시계열의 하위 집합을 지정할 수 있습니다.
    3. 트리거 부재 시간 필드를 사용하여 알림 표시 전 측정항목 데이터가 부재 상태로 있어야 하는 시간을 지정합니다.
    4. 다음을 클릭합니다.
  5. 선택사항: 여러 조건을 포함하여 알림 정책을 만듭니다.

    대부분의 정책은 단일 측정항목 유형을 모니터링합니다. 예를 들어 한 정책은 VM 인스턴스에 기록되는 바이트 수를 모니터링할 수 있습니다. 여러 측정항목 유형을 모니터링해야 할 때는 다중 조건이 포함된 정책을 만듭니다. 각 조건은 하나의 측정항목 유형을 모니터링합니다. 조건을 만든 후 조건이 조합되는 방식을 지정합니다. 자세한 내용은 여러 조건이 포함된 정책을 참조하세요.

    여러 조건이 포함된 알림 정책을 만들려면 다음 안내를 따르세요.

    1. 각 추가 조건에 대하여 알림 조건 추가를 클릭한 다음 해당 조건을 구성합니다.
    2. 다음을 클릭하고 조건 조합 방법을 구성합니다.
    3. 다음을 클릭하여 알림 및 문서 설정으로 이동합니다.
  6. 알림을 구성합니다.

    1. 알림 및 이름 메뉴를 확장하고 알림 채널을 선택합니다. 중복화 목적으로 여러 유형의 알림 채널을 알림 정책에 추가하는 것이 좋습니다. 자세한 내용은 알림 채널 관리를 참조하세요.

    2. 선택사항: 이슈가 종료되었을 때 알림을 받으려면 이슈 종료 시 알림을 선택합니다. 기본적으로 Google Cloud 콘솔로 알림 정책을 만들면 이슈가 생성될 때만 알림이 전송됩니다.

    3. 선택사항: 데이터 도착이 중지된 후 이슈를 종료하기 전 Monitoring의 대기 시간을 변경하려면 이슈 자동 종료 기간 메뉴에서 옵션을 선택합니다. 기본적으로 데이터 도착이 중지하면 Monitoring이 열린 이슈를 종료하기 전 7일 동안 대기합니다.

    4. 정책 심각도 수준 메뉴에서 옵션을 선택합니다. 이슈 및 알림에 심각도 수준이 표시됩니다.

    5. 선택사항: 알림 정책에 커스텀 라벨을 추가하려면 정책 사용자 라벨 섹션에서 다음을 수행합니다.

      1. 라벨 추가를 클릭하고 필드에 라벨 이름을 입력합니다. 라벨 이름은 소문자로 시작해야 하며 소문자, 숫자, 밑줄, 대시를 포함할 수 있습니다. 예를 들어 severity을 입력합니다.
      2. 을 클릭하고 라벨 값을 입력합니다. 라벨 값에는 소문자, 숫자, 밑줄, 대시를 포함할 수 있습니다. 예를 들어 critical를 입력합니다.

      정책 라벨을 사용하여 알림을 관리하는 방법에 대한 자세한 내용은 라벨로 알림에 주석 추가를 참조하세요.

  7. 선택사항: 문서 섹션에서 알림에 포함할 콘텐츠를 입력합니다.

    문서 형식을 지정하려면 일반 텍스트, 마크다운, 변수를 사용하면 됩니다. 또한 내부 플레이북, Google Cloud 대시보드, 외부 페이지에 대한 링크 등 사용자가 이슈를 디버그하는 데 도움이 되는 링크를 포함할 수 있습니다. 예를 들어 다음 문서 템플릿은 gce_instance 리소스의 CPU 사용률 이슈를 설명하고 알림 정책과 조건 REST 리소스를 참조하는 여러 변수를 포함합니다. 그리고 문서 템플릿은 디버깅에 도움이 되도록 독자를 외부 페이지로 안내합니다.

    알림이 생성되면 Monitoring이 문서 변수를 해당 값으로 바꿉니다. 이 값은 알림의 변수만 바꿉니다. 미리보기 창과 Google Cloud Console의 다른 위치에서만 마크다운 형식을 표시합니다.

    미리보기

    ## CPU utilization exceeded
    
    ### Summary
    
    The ${metric.display_name} of the ${resource.type}
    ${resource.label.instance_id} in the project ${resource.project} has
    exceeded 90% for over 15 minutes.
    
    ### Additional resource information
    
    Condition resource name: ${condition.name}
    Alerting policy resource name: ${policy.name}
    
    ### Troubleshooting and Debug References
    
    Repository with debug scripts: example.com
    Internal troubleshooting guide: example.com
    ${resource.type} dashboard: example.com
    

    알림 형식

    알림에서 문서가 렌더링되는 방법의 예시

    자세한 내용은 사용자 정의 문서로 알림에 주석 추가채널 컨트롤 사용을 참조하세요.

  8. 알림 이름을 클릭하고 알림 정책 이름을 입력합니다.

  9. 정책 만들기를 클릭합니다.

선택한 시계열 필터링

필터를 사용하면 일부 기준 집합을 충족하는 시계열만 모니터링할 수 있습니다. 필터를 적용할 때는 차트 줄 수를 줄여서 차트 성능을 향상시킬 수 있습니다. 집계를 적용하여 모니터링되는 데이터 양을 줄일 수도 있습니다. 필터를 사용하면 일정 기준 집합을 충족하는 시계열만 사용할 수 있습니다. 필터를 적용하면 평가할 시계열 수가 줄어들어 알림 성능을 개선할 수 있습니다.

필터는 라벨, 비교 연산자, 값으로 구성됩니다. 예를 들어 zone 라벨이 "us-central1"로 시작하는 모든 시계열을 일치시키려면 정규 표현식을 사용하여 비교를 수행하는 zone=~"us-central1.*" 필터를 사용하면 됩니다.

프로젝트 ID 또는 리소스 컨테이너로 필터링할 때는 등호 연산자((=))를 사용해야 합니다. 다른 라벨로 필터링할 때는 지원되는 비교 연산자를 사용할 수 있습니다. 일반적으로 측정항목 및 리소스 라벨과 리소스 그룹을 기준으로 필터링할 수 있습니다.

여러 필터링 기준을 제공하면 모든 기준을 충족하는 시계열만 모니터링됩니다.

필터를 추가하려면 필터 추가를 클릭하고, 대화상자를 완료한 후 완료를 클릭합니다. 대화상자에서 필터 필드를 사용하여 필터링에 사용할 기준을 선택하고 비교 연산자를 선택한 후 값을 선택합니다. 다음 표에서 각 행은 비교 연산자와 그 의미 및 예시를 보여줍니다.

연산자의미예시
= 같음 resource.labels.zone = "us-central1-a"
!= 같지 않음 resource.labels.zone != "us-central1-a"
=~ 정규 표현식2 같음 monitoring.regex.full_match("^us.*")
!=~ 정규 표현식2 같지 않음 monitoring.regex.full_match("^us.*")
starts_with 값이 다음으로 시작함 resource.labels.zone = starts_with("us")
ends_with 값이 다음으로 끝남 resource.labels.zone = ends_with("b")
has_substring 값이 포함 resource.labels.zone = has_substring("east")
one_of 1개 resource.labels.zone = one_of("asia-east1-b", "europe-north1-a")
!starts_with 값이 다음으로 시작하지 않음 resource.labels.zone != starts_with("us")
!ends_with 값이 다음으로 끝나지 않음 resource.labels.zone != ends_with("b")
!has_substring 값이 포함하지 않음 resource.labels.zone != has_substring("east")
!one_of 값이 다음 중 하나가 아님 resource.labels.zone != one_of("asia-east1-b", "europe-north1-a")