경보 결합 - Amazon CloudWatch

경보 결합

CloudWatch를 사용하면 여러 경보를 하나의 복합 경보로 결합하여 전체 애플리케이션 또는 리소스 그룹에 대해 요약되고 집계된 상태 지표를 생성할 수 있습니다. 복합 경보는 다른 경보의 상태를 모니터링하여 상태를 확인하는 경보입니다. 사용자는 Boolean 논리를 사용하여 모니터링되는 경보의 상태를 결합하는 규칙을 정의합니다.

복합 경보를 사용하면 집계된 수준에서만 조치를 실행하므로 경보 노이즈를 줄일 수 있습니다. 예를 들어, 웹 서버와 관련된 경보가 트리거되는 경우 복합 경보를 생성하어 웹 서버 팀에 알림을 보낼 수 있습니다. 이러한 경보 중 하나라도 ALARM 상태로 전환되면 복합 경보는 스스로 ALARM 상태가 되어 팀에 알림을 보냅니다. 웹 서버와 관련된 다른 경보가 ALARM 상태로 전환되더라도 복합 경보가 이미 기존 상황에 대해 알렸기 때문에 팀에 새 알림이 과도하게 오지 않습니다.

또한 복합 경보를 사용하여 복잡한 경보 조건을 생성하고 여러 조건이 충족될 때만 조치를 취할 수 있습니다. 예를 들어, CPU 경보와 메모리 경보를 결합하여 CPU와 메모리 경보가 모두 트리거된 경우에만 팀에 알리는 복합 경보를 생성하 수 있습니다.

복합 경보 사용

복합 경보를 사용하는 경우 두 가지 옵션이 있습니다.

  • 복합 경보 수준에서만 수행할 작업을 구성하고, 조치가 없는 기본 모니터링 경보를 만듭니다

  • 복합 경보 수준에서 다양한 작업의 조합을 구성합니다. 예를 들어, 복합 경보 작업에서는 문제가 광범위하게 발생하는 경우 다른 팀을 참여시킬 수 있습니다.

복합 경보는 다음과 같은 작업만 수행할 수 있습니다.

  • Amazon SNS 주제 알림

  • Lambda 함수 간접 호출

  • Systems Manager Ops Center에 OpsItem 생성

  • Systems Manager Incident Manager에 인시던트 생성

참고

복합 경보의 모든 기본 경보는 복합 경보와 동일한 계정 및 동일한 리전에 있어야 합니다. 그러나 CloudWatch 크로스 계정 관측성 모니터링 계정에서 복합 경보를 설정하면 기본 경보가 다른 소스 계정과 모니터링 계정 자체에서 지표를 관찰할 수 있습니다. 자세한 내용은 CloudWatch 크로스 계정 관찰성 섹션을 참조하세요.

단일 복합 경보로 100개의 기본 경보를 모니터링할 수 있고, 150개의 복합 경보로 단일 기본 경보를 모니터링할 수 있습니다.

규칙 표현식

모든 복합 경보에는 규칙 표현식이 포함됩니다. 규칙 표현식은 모니터링하고 상태를 확인할 다른 경보를 복합 경보에 알려줍니다. 규칙 표현식은 지표 경보 및 복합 경보를 참조할 수 있습니다. 규칙 표현식에서 경보를 참조할 경우, 다음 세 가지 상태 중 경보가 어떤 상태로 전환될지를 결정하는 함수를 경보에 지정합니다.

  • 경보

    경보가 ALARM 상태인 경우 ALARM ("alarm-name or alarm-ARN")이 TRUE입니다.

  • 정상

    경보가 OK 상태인 경우 OK ("alarm-name or alarm-ARN")가 TRUE입니다.

  • INSUFFICIENT_DATA

    명명된 경보가 INSUFFICIENT_DATA 상태인 경우 INSUFFICIENT_DATA ("alarm-name or alarm-ARN")가 TRUE입니다.

참고

TRUE는 항상 TRUE로 평가되고 FALSE는 항상 FALSE로 평가됩니다.

경보 참조

경보 이름 또는 ARN을 사용하여 경보를 참조할 경우, 규칙 구문에서는 경보 이름 또는 ARN을 따옴표(")로 묶거나 묶지 않아도 경보를 참조하도록 지원할 수 있습니다.

  • 따옴표 없이 지정한 경우 경보 이름 또는 ARN에 공백, 둥근 괄호 또는 쉼표를 포함해서는 안 됩니다.

  • 따옴표 내에 지정한 경우, 참조가 올바르게 해석되려면 큰따옴표(")가 포함된 경보 이름 또는 ARN은 큰따옴표(")를 백슬래시 이스케이프(\) 문자로 묶어야 합니다.

구문

여러 경보를 하나의 복합 경보로 결합하는 데 사용하는 표현식의 구문에서는 부울 로직과 함수를 사용합니다. 다음 표에서는 규칙 표현식에서 사용할 수 있는 연산자와 함수를 설명합니다.

연산자/함수 설명
AND 논리적 AND 연산자. 지정된 모든 조건이 TRUE일 때 TRUE를 반환합니다.
OR 논리적 OR 연산자. 지정된 조건 중 하나 이상이 TRUE일 때 TRUE를 반환합니다.
NOT 논리적 NOT 연산자. 지정된 조건이 FALSE일 때 TRUE를 반환합니다.
AT_LEAST 지정된 경보의 최소 개수 또는 백분율이 원하는 상태일 때 TRUE를 반환하는 함수. 형식: AT_LEAST(M, STATE_CONDITION, (alarm1, alarm2, ...alarmN)) 여기서 M은 절대 수 또는 백분율(예: 50%)일 수 있으며 STATE_CONDITION은 ALARM, OK, INSUFFICIENT_DATA, NOT ALARM, NOT OK 또는 NOT INSUFFICIENT_DATA일 수 있습니다.

괄호를 사용하여 조건을 그룹화하고 복잡한 표현식에서 평가 순서를 제어할 수 있습니다.

예제 표현식

요청 파라미터 AlarmRule은 논리 연산자 AND, OR, NOT, AT_LEAST 함수를 지원하므로 작업자가 여러 함수를 단일 표현식으로 결합할 수 있습니다. 다음 예제 표현식은 복합 경보의 기본 경보를 구성하는 방법을 보여줍니다.

  • ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh)

    이 표현식은 CPUUtilizationTooHighDiskReadOpsTooHighALARM 상태인 경우에만 복합 경보를 ALARM 상태로 전환하도록 지정합니다.

  • AT_LEAST(2, ALARM, (WebServer1CPU, WebServer2CPU, WebServer3CPU, WebServer4CPU))

    표현식은 웹 서버 CPU 경보 4개 중 2개 이상이 ALARM 상태일 때 복합 경보가 ALARM으로 전환되도록 지정합니다. 이렇게 하면 모든 리소스가 경보 상태에 있어야 하거나, 하나의 리소스만 경보 상태에 있어야 할 필요 없이 영향을 받은 리소스의 임곗값에 따라 알림을 트리거할 수 있습니다.

  • AT_LEAST(50%, OK, (DatabaseConnection1, DatabaseConnection2, DatabaseConnection3, DatabaseConnection4))

    표현식은 데이터베이스 연결 경보의 50% 이상이 OK 상태일 때 복합 경보가 ALARM으로 전환되도록 지정합니다. 백분율을 사용하면 모니터링되는 경보를 추가하거나 제거할 때 규칙을 동적으로 조정할 수 있습니다.

  • ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress)

    이 표현식은 CPUUtilizationTooHighALARM 상태이고 DeploymentInProgressALARM 상태인 경우에만 복합 경보를 ALARM 상태로 전환하도록 지정합니다. 배포 기간 동안 경보 노이즈를 줄이는 복합 경보의 예입니다.

  • AT_LEAST(2, ALARM, (AZ1Health, AZ2Health, AZ3Health)) AND NOT ALARM(MaintenanceWindow)

    표현식은 가용 영역 상태 경보 3개 중 2개 이상이 ALARM 상태이고 유지 관리 기간 경보가 ALARM 상태가 아닐 경우 복합 경보가 ALARM으로 전환되도록 지정합니다. 이렇게 하면 더 복잡한 모니터링 시나리오를 위해 AT_LEAST 함수가 다른 논리 연산자와 결합됩니다.