복제·장애 조치 그룹에 대한 오류 알림(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라는 이메일 알림 통합을 만들려면 다음 단계를 따라요.
- 이메일 주소
[email protected]이 검증되었는지 확인해요. - CREATE NOTIFICATION INTEGRATION 명령을 실행해 알림 통합을 만들어요. 예를 들어:
CREATE NOTIFICATION INTEGRATION my_notification_int
TYPE = EMAIL
ENABLED = TRUE
DEFAULT_RECIPIENTS = ('[email protected]');
알림 통합 생성(TYPE = QUEUE)
클라우드 제공자 큐로 알림을 푸시하는 알림 통합을 만들려면 현재 지원되는 클라우드 제공자 큐에 대해 제공된 지침을 따라요.
- Amazon SNS 토픽으로 알림을 보내는 알림 통합 생성
- Microsoft Azure Event Grid 토픽으로 알림을 보내는 알림 통합 생성
- Google Cloud Pub/Sub 토픽으로 알림을 보내는 알림 통합 생성
알림 통합 생성(TYPE = WEBHOOK)
외부 시스템 웹훅으로 알림을 푸시하는 알림 통합을 만들려면 현재 지원되는 외부 시스템 웹훅에 대해 제공된 지침을 따라요.
- Slack 시크릿 및 Slack 알림 통합 생성
- Microsoft Teams 시크릿 및 Microsoft Teams 알림 통합 생성
- PagerDuty 시크릿 및 PagerDuty 알림 통합 생성
중요(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분)로 설정된 경우, 같은 문제에 대한 오류 알림이 예정된 매 새로고침 작업마다 전송돼요.