복제·장애 조치 그룹에 대한 오류 알림(Error Notifications)

복제·장애 조치 그룹에 대한 오류 알림(Error Notifications)

기본 복제 또는 장애 조치 그룹에 알림 통합(notification integration)을 설정하면 새로고침 작업 실패에 대한 오류 알림을 받을 수 있어요. 이 페이지에서는 알림 통합 설정과 새로고침 실패 알림 사용 방법을 설명해요.

출처: Snowflake 문서

본문

Standard & Business Critical 기능

  • 데이터베이스 및 공유 복제는 모든 계정에서 사용할 수 있어요.
  • 기타 계정 객체의 복제와 장애 조치/장애 복구는 Business Critical Edition 이상이 필요해요. 업그레이드 문의는 Snowflake Support에 연락해 주세요.

새로고침 작업 실패에 대한 오류 알림

복제 또는 장애 조치 그룹에 대해 오류 알림을 활성화하면, 새로고침 작업이 실패할 때 지정된 이메일, 클라우드 메시징 서비스, 또는 웹훅을 통해 알림이 전송돼요.

알림에는 다음 정보가 포함돼요.

  • 소스 및 대상 계정 이름
  • 소스 및 대상 리전(적용 가능하면 리전 그룹)
  • 기본 및 보조 복제 또는 장애 조치 그룹 이름
  • 오류 발생 시각 타임스탬프
  • 오류 코드와 메시지
  • 소스 및 대상 로그인 URL

오류 알림과 장애 조치

알림은 기본 복제 또는 장애 조치 그룹에서 활성화되며 알림 통합을 사용해 전송돼요. 알림 통합은 대상 계정으로 복제될 필요는 없어요. 장애 조치의 경우, 알림 통합이 복제되었거나 새로 승격된 소스 계정에 같은 이름의 기존 알림 통합이 있으면 오류 알림이 계속 전송돼요.

알림 통합을 사용할 수 없으면 새로고침 작업 실패에 대한 오류 알림이 전송되지 않아요.

전제 조건: 오류 알림용 알림 통합

오류 알림을 보내려면 알림 통합이 필요해요. 새로고침 작업 실패 시 이메일 알림을 보내려면 알림 통합이 다음 유형 중 하나여야 해요.

TYPE = EMAIL:

이메일 알림 통합은 DEFAULT_RECIPIENTS 목록에 검증된 이메일 주소가 하나 이상 있어야 해요.

기본 수신자 목록으로 이메일 알림을 만드는 방법에 대한 자세한 내용은 기본 수신자 목록과 기본 제목 줄 지정을 참고해요.

TYPE = QUEUE:

Snowflake가 지원하는 클라우드 제공자 중 하나의 메시징 서비스로 알림을 푸시하도록 구성된 알림 통합을 사용할 수 있어요. 알림 통합의 TYPE 파라미터를 QUEUE로, DIRECTION 파라미터를 OUTBOUND로 설정해야 해요.

자세한 내용은 클라우드 제공자 큐로 알림 보내기(Amazon SNS, Google Cloud PubSub, Azure Event Grid)를 참고해요.

TYPE = WEBHOOK:

Snowflake가 지원하는 외부 시스템 중 하나의 웹훅으로 알림을 푸시하도록 구성된 알림 통합을 사용할 수 있어요. 알림 통합의 TYPE 파라미터를 WEBHOOK로 설정해요. 외부 시스템이 요구하면 시크릿(secret)을 만들어야 할 수도 있어요.

자세한 내용은 웹훅 알림 보내기를 참고해요.

알림 통합 생성(TYPE = EMAIL)

이메일 주소 [email protected]으로 my_notification_int라는 이메일 알림 통합을 만들려면 다음 단계를 따라요.

CREATE NOTIFICATION INTEGRATION my_notification_int
  TYPE = EMAIL
  ENABLED = TRUE
  DEFAULT_RECIPIENTS = ('[email protected]');

알림 통합 생성(TYPE = QUEUE)

클라우드 제공자 큐로 알림을 푸시하는 알림 통합을 만들려면 현재 지원되는 클라우드 제공자 큐에 대해 제공된 지침을 따라요.

알림 통합 생성(TYPE = WEBHOOK)

외부 시스템 웹훅으로 알림을 푸시하는 알림 통합을 만들려면 현재 지원되는 외부 시스템 웹훅에 대해 제공된 지침을 따라요.

중요(Important): 웹훅 알림 통합은 WEBHOOK_BODY_TEMPLATE 파라미터에 SNOWFLAKE_WEBHOOK_MESSAGE를 플레이스홀더 값으로 지정해야 해요. 알림이 전송될 때 플레이스홀더는 새로고침 작업 실패에 대한 오류 알림에 설명된 대로 복제 오류 알림 내용으로 대체돼요.

WEBHOOK_BODY_TEMPLATE 지정 형식은 외부 시스템에 따라 달라져요.

  • Slack 또는 Microsoft Teams의 경우 WEBHOOK_BODY_TEMPLATE는 값으로 다음 단일 값 JSON 객체 형식을 사용해요.
WEBHOOK_BODY_TEMPLATE='{"text": "SNOWFLAKE_WEBHOOK_MESSAGE"}'
  • PagerDuty의 경우 WEBHOOK_BODY_TEMPLATE는 값으로 다중 값 JSON 객체를 사용하지만, 표준 PagerDuty 알림 통합과는 다음 차이점이 있어요.
    • payload 키 내에서 summary 키는 SNOWFLAKE_WEBHOOK_MESSAGE를 지정하는 데 사용되지 않아요.
    • 대신 추가 custom_details 키가 SNOWFLAKE_WEBHOOK_MESSAGE를 지정하는 데 사용돼요.

예를 들어:

WEBHOOK_BODY_TEMPLATE='{
  "routing_key": "SNOWFLAKE_WEBHOOK_SECRET",
  "event_action": "trigger",
  "payload": {
    "summary": "Snowflake replication failure",
    "source": "Snowflake monitoring",
    "severity": "INFO",
    "custom_details": {
      "message": "SNOWFLAKE_WEBHOOK_MESSAGE"
    }
  }
}'

복제 또는 장애 조치 그룹에 오류 알림 추가

기존 복제/장애 조치 그룹에 대해 오류 알림을 활성화하려면 ALTER REPLICATION GROUP 또는 ALTER FAILOVER GROUP 명령을 사용해 ERROR_INTEGRATION 파라미터를 설정해요.

예를 들어 장애 조치 그룹 my_fg에 알림 통합 my_notification_int을 추가해요. 다음 문장은 소스 계정에서 실행해야 해요.

ALTER FAILOVER GROUP my_fg SET
  ERROR_INTEGRATION = my_notification_int;

복제/장애 조치 그룹을 만들면서 오류 알림을 활성화하려면 CREATE REPLICATION GROUP 또는 CREATE FAILOVER GROUP 명령을 사용하고 ERROR_INTEGRATION 파라미터를 설정해요.

예를 들어 조직 myorg의 계정 myaccount2와 myaccount3에 데이터베이스 db1, db2의 복제와 장애 조치를 가능하게 하는 장애 조치 그룹 my_fg를 만들려면 소스 계정에서 다음 문장을 실행해 기본 장애 조치 그룹을 만들어요.

CREATE FAILOVER GROUP my_fg
  OBJECT_TYPES = DATABASES
  ALLOWED_DATABASES = db1, db2
  ALLOWED_ACCOUNTS = myorg.myaccount2, myorg.myaccount3
  REPLICATION_SCHEDULE = '10 MINUTE'
  ERROR_INTEGRATION = my_notification_int;

참고(Note): 복제 또는 장애 조치 그룹의 복제 일정이 높은 빈도(예: 1분)로 설정된 경우, 같은 문제에 대한 오류 알림이 예정된 매 새로고침 작업마다 전송돼요.

더 알아보기 (Learn more)