複製グループとフェールオーバーグループのエラー通知¶
プライマリ複製またはフェールオーバーグループの通知統合を設定することで、更新操作の失敗に関するエラー通知を受け取ることができます。
リフレッシュ操作失敗時のエラー通知¶
複製グループまたはフェールオーバーグループのエラー通知を有効にすると、リフレッシュ操作に失敗したときに、指定の電子メール、クラウドメッセージサービス、またはWebhookを介して通知が送信されます。
通知には以下の情報が含まれます。
ソースとターゲットのアカウント名。
ソースリージョンとターゲットリージョン(該当する場合はリージョングループも)。
プライマリおよびセカンダリの複製またはフェールオーバーグループ名。
エラーが発生したときのタイムスタンプ。
エラーコードとメッセージ。
ソースとターゲットのログイン URL。
エラー通知とフェールオーバー¶
通知はプライマリ複製グループまたはフェールオーバーグループで有効になり、通知統合を使用して送信されます。通知統合はターゲットアカウントに複製する必要はありません。フェールオーバーの場合、通知統合が複製されているか、新しく昇格したソースアカウントに同じ名前の既存の通知統合がある場合、エラー通知は引き続き送信されます。
通知統合が利用可能でない場合、エラー通知はリフレッシュ操作の失敗に対して送信されません。
前提条件: エラー通知の通知統合¶
エラー通知を送信するには、通知統合が必要です。リフレッシュ操作の失敗時に電子メール通知を送信するには、通知統合を以下のタイプのいずれかにする必要があります。
- TYPE = EMAIL:
電子メール通知統合には、 DEFAULT_RECIPIENTS リストに少なくとも1つの認証済み電子メールアドレスが必要です。
デフォルトの受信者リストで電子メール通知を作成する方法については、 デフォルトの受信者リストとデフォルトの件名の指定 を参照してください。
- TYPE = QUEUE:
Snowflakeがサポートするクラウドプロバイダーのメッセージサービスに通知をプッシュするように構成された通知統合を使用できます。通知統合 TYPE パラメーターを QUEUE に、 DIRECTION パラメーターを OUTBOUND にセットする必要があります。
詳細については、 クラウドプロバイダーのキューへの通知送信(Amazon SNS、Google Cloud PubSub、Azure Event Grid) をご参照ください。
- TYPE = WEBHOOK:
Snowflakeがサポートする外部システムのWebhookに通知をプッシュするように構成された通知統合を使用できます。通知統合 TYPE パラメーターを WEBHOOK にセットします。また、シークレットを作成する必要がある場合もあります(外部システムで必要な場合)。
詳細については、 Webhook通知の送信 をご参照ください。
通知統合の作成(TYPE = EMAIL)¶
電子メールアドレス first.last@example.com
で my_notification_int
という名前の電子メール通知統合を作成するには、以下の手順に従います。
電子メールアドレス
first.last@example.com
が検証済みであることを確認してください。CREATE NOTIFICATION INTEGRATION コマンドを実行して通知統合を作成します。例:
CREATE NOTIFICATION INTEGRATION my_notification_int TYPE = EMAIL ENABLED = TRUE DEFAULT_RECIPIENTS = ('first.last@example.com');
通知統合の作成(TYPE = QUEUE)¶
クラウドプロバイダーのキューに通知をプッシュするための通知統合を作成するには、現在サポートされているクラウドプロバイダーのキューについて提供されている手順に従ってください。
通知統合の作成(TYPE = WEBHOOK)¶
外部システムWebhookに通知をプッシュするための通知統合を作成するには、現在サポートされている外部システムWebhookについて提供されている手順に従ってください。
Slackシークレット と Slack通知統合 の作成
重要
Webhook通知統合では、 SNOWFLAKE_WEBHOOK_MESSAGE
をプレースホルダー値として WEBHOOK_BODY_TEMPLATE パラメーターを指定する必要があります。通知が送信されると、 リフレッシュ操作の失敗に対するエラー通知 で説明されているように、プレースホルダーは複製エラー通知の内容に置き換えられます。
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_notification_int
をフェールオーバーグループ my_fg
に追加します。以下のステートメントは、 ソース アカウントから実行する必要があります。
ALTER FAILOVER GROUP my_fg SET
ERROR_INTEGRATION = my_notification_int;
複製/フェールオーバーグループを作成し、エラー通知を有効にするには、 CREATE REPLICATION GROUP または CREATE FAILOVER GROUP コマンドを使用し、 ERROR_INTEGRATION パラメーターをセットします。
たとえば、フェールオーバーグループ my_fg
を作成して、データベース db1
、 db2
の複製とフェールオーバーを組織 myorg
内のアカウント myaccount2
および myaccount2
に有効にするには、 ソース アカウントで次のステートメントを実行して、プライマリフェールオーバーグループを作成します。
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;
注釈
複製またはフェールオーバーグループの複製スケジュールが1分など高い頻度にセットされている場合、スケジュールされたリフレッシュ操作ごとに同じ問題のエラー通知が送信されます。