複製グループとフェールオーバーグループのエラー通知

プライマリ複製またはフェールオーバーグループの通知統合を設定することで、更新操作の失敗に関するエラー通知を受け取ることができます。

リフレッシュ操作失敗時のエラー通知

複製グループまたはフェールオーバーグループのエラー通知を有効にすると、リフレッシュ操作に失敗したときに、指定の電子メール、クラウドメッセージサービス、または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.commy_notification_int という名前の電子メール通知統合を作成するには、以下の手順に従います。

  1. 電子メールアドレス first.last@example.com が検証済みであることを確認してください

  2. CREATE NOTIFICATION INTEGRATION コマンドを実行して通知統合を作成します。例:

    CREATE NOTIFICATION INTEGRATION my_notification_int
      TYPE = EMAIL
      ENABLED = TRUE
      DEFAULT_RECIPIENTS = ('first.last@example.com');
    
    Copy

通知統合の作成(TYPE = QUEUE)

クラウドプロバイダーのキューに通知をプッシュするための通知統合を作成するには、現在サポートされているクラウドプロバイダーのキューについて提供されている手順に従ってください。

通知統合の作成(TYPE = WEBHOOK)

外部システムWebhookに通知をプッシュするための通知統合を作成するには、現在サポートされている外部システムWebhookについて提供されている手順に従ってください。

重要

Webhook通知統合では、 SNOWFLAKE_WEBHOOK_MESSAGE をプレースホルダー値として WEBHOOK_BODY_TEMPLATE パラメーターを指定する必要があります。通知が送信されると、 リフレッシュ操作の失敗に対するエラー通知 で説明されているように、プレースホルダーは複製エラー通知の内容に置き換えられます。

WEBHOOK_BODY_TEMPLATE を指定する形式は、外部システムによって異なります。

  • SlackまたはMicrosoft Teamsの場合、 WEBHOOK_BODY_TEMPLATE は値として以下の単一値 JSON オブジェクト形式を利用します。

    WEBHOOK_BODY_TEMPLATE='{"text": "SNOWFLAKE_WEBHOOK_MESSAGE"}'
    
    Copy
  • 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"
        }
      }
    }'
    
    Copy

複製グループまたはフェールオーバーグループのエラー通知の追加

既存の複製/フェールオーバーグループのエラー通知を有効にするには、 ALTER REPLICATION GROUP または ALTER FAILOVER GROUP コマンドを使用して、 ERROR_INTEGRATION パラメーターをセットします。

例えば、通知統合 my_notification_int をフェールオーバーグループ my_fg に追加します。以下のステートメントは、 ソース アカウントから実行する必要があります。

ALTER FAILOVER GROUP my_fg SET
  ERROR_INTEGRATION = my_notification_int;
Copy

複製/フェールオーバーグループを作成し、エラー通知を有効にするには、 CREATE REPLICATION GROUP または CREATE FAILOVER GROUP コマンドを使用し、 ERROR_INTEGRATION パラメーターをセットします。

たとえば、フェールオーバーグループ my_fg を作成して、データベース db1db2 の複製とフェールオーバーを組織 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;
Copy

注釈

複製またはフェールオーバーグループの複製スケジュールが1分など高い頻度にセットされている場合、スケジュールされたリフレッシュ操作ごとに同じ問題のエラー通知が送信されます。