通知が表示されない場合のトラブルシューティング

このページでは、通知が想定どおりに届かない理由と、そのような状況に備えるための方法について説明します。

通知が受信されない

構成した通知チャンネルから通知が届かない場合は、次の操作を行います。

  1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。

  2. 適切な Google Cloud プロジェクトを選択します。
  3. ログで通知チャンネル イベントをクエリします。

    1. [ログ名] メニューを開き、[notification_channel_events] を選択します。
    2. [重大度] メニューを開き、[エラー] を選択します。
    3. 省略可: カスタム期間を選択するには、期間セレクタを使用します。
    4. [クエリを実行] をクリックします。

    前述の手順では、次のクエリを作成します。

    resource.type:"stackdriver_notification_channel"
    logName="projects/PROJECT_ID/logs/monitoring.googleapis.com%2Fnotification_channel_events"
    severity=ERROR
    

    通常、障害情報は概要行と jsonPayload フィールドに含まれます。たとえば、ゲートウェイ エラーが発生すると、概要行に「failed with 502 Bad Gateway」が表示されます。

Webhook 通知を受信できない

このセクションは、構成済みの Webhook 通知チャンネルで通知を受信しない場合に該当します。

プライベート エンドポイント

プライベート エンドポイントがある場合は、この通知トピックへの pull サブスクリプションと組み合わせて、Pub/Sub 通知を使用します。プライベート エンドポイントへの通知に Webhook を使用することはできません。

Pub/Sub 通知チャンネルを構成すると、インシデント通知は Identity and Access Management 制御が設定された Pub/Sub キューに送信されます。Pub/Sub トピックにクエリまたはリッスンできるすべてのサービスでこれらの通知を使用できます。たとえば、App Engine、Cloud Run、Compute Engine 仮想マシンで実行されているアプリケーションでこれらの通知を使用できます。

pull サブスクリプションを使用する場合、メッセージの受信を待機するリクエストが Google に送信されます。これらのサブスクリプションには Google へのアクセスが必要ですが、ファイアウォールやインバウンド アクセス用のルールは必要ありません。

パブリック エンドポイント

配信が失敗した理由を特定するには、Cloud Logging ログエントリで失敗情報を調べます。

たとえば、ログ エクスプローラを使用し、次のようなフィルタによって、通知チャンネル リソースのログエントリを検索できます。

resource.type="stackdriver_notification_channel"

Pub/Sub 通知を受信できない

構成済みの Pub/Sub 通知チャンネルで通知を受信しない場合は、次の操作を試してください。

  • 通知サービス アカウントが存在することを確認します。サービス アカウントが削除されている場合、通知は送信されません。

    サービス アカウントが存在することを確認するには、次のようにします。

    1. Google Cloud コンソールで [IAM] ページに移動します。

      [IAM] に移動

      このページを検索バーで検索する場合は、小見出しが「IAM と管理」の結果を選択します。

    2. 次の命名規則のサービス アカウントを検索します。

      service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com

      このサービス アカウントが一覧にない場合は、[Google 提供のロール付与を含める] を選択します。

    通知のサービス アカウントが存在しない場合は、Monitoring がサービス アカウントを作成するための Pub/Sub 通知チャンネルを作成する必要があります。

    1. Google Cloud コンソールで、[ アラート] ページに移動します。

      [アラート] に移動

      このページを検索バーで検索する場合は、小見出しが「Monitoring」の結果を選択します。

    2. [Edit notification channels] をクリックします。
    3. [Pub/Sub] セクションで、[新しく追加] をクリックします。

      通知サービス アカウントが存在しない場合、Monitoring によって作成されます。[Create Pub/Sub Channel] ダイアログに、通知サービス アカウントの名前が表示されます。

    4. 通知チャンネルを追加しない場合は、[キャンセル] をクリックします。それ以外の場合は、通知チャンネルの作成を完了し、[チャネルを追加] をクリックします。

    5. サービス アカウントに Pub/Sub トピックをパブリッシュする権限を付与します。

      1. 新しいブラウザタブでドキュメント(通知チャンネルを作成する)を開きます。
      2. Pub/Sub」タブを選択し、そのページの「サービス アカウントを承認する」セクションの手順に沿って操作します。
  • 通知のサービス アカウントに、目的の Pub/Sub トピックの通知を送信する権限があることを確認します。

    サービス アカウントの権限を表示するには、Google Cloud コンソールか Google Cloud CLI コマンドを使用します。

    • Google Cloud コンソールの [IAM] ページに、各サービス アカウントのロールが一覧表示されます。
    • Google Cloud コンソールの Pub/Sub の [トピック] ページに、各トピックが一覧表示されます。トピックを選択すると、[権限] タブに、サービス アカウントに付与されたロールが一覧表示されます。
    • すべてのサービス アカウントとそれらのロールを一覧表示するには、次の Google Cloud CLI コマンドを実行します。

      gcloud projects get-iam-policy PROJECT_ID
      

      このコマンドに対するレスポンスの一部を次に示します。

          serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
             role: roles/monitoring.notificationServiceAgent
           - members:
             [...]
             role: roles/owner
           - members:
             - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
             role: roles/pubsub.publisher
      

      コマンド レスポンスにはロールのみが含まれ、トピックごとの権限は含まれません。

    • 特定のトピックの IAM バインディングを一覧参照するには、次のコマンドを実行します。

      gcloud pubsub topics get-iam-policy TOPIC
      

      このコマンドのレスポンスの例を次に示します。

          bindings:
          - members:
            - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
            role: roles/pubsub.publisher
          etag: BwXPRb5WDPI=
          version: 1
      

    通知サービス アカウントを認可する方法については、サービス アカウントを認可するをご覧ください。

VM がシャットダウンしても通知は届きません

仮想マシン(VM)がシャットダウンしたときに通知を受け取るには、VM を定期的に照会する稼働時間チェックを作成し、その稼働時間チェックをモニタリングするアラート ポリシーを作成します。Virtual Private Cloud(VPC)を使用している場合は、プライベート稼働時間チェックの作成が必要になることがあります。

compute.googleapis.com/instance/uptime 指標をモニタリングするアラート ポリシーでは、VM がシャットダウンしても通知されません。この指標の場合、アラート ポリシーは RUNNING 状態の VM インスタンスの時系列のみをモニタリングします。VM が STOPPEDDELETED などの他の状態にある場合はモニタリングされません。VM インスタンスの状態については、VM インスタンスのライフサイクルをご覧ください。

リクエスト数のアラート ポリシーの通知が受信されない

serviceruntime.googleapis.com/api/request_count 指標をモニタリングするアラート ポリシーの通知が届かない場合は、ポリシーの調整期間が 7 時間 30 分以内になっているか確認してください。

SMS 通知メッセージまたは確認コードが届かない

SMS 通知や確認コードが届かない場合は、SMS メッセージの上限に達していないことを確認してください。このエラーを確認できるログが残っている可能性があります。ログで Denied quota token を確認してください。

一般的な推奨事項として、通知を SMS チャンネルにのみ依存することはおすすめしません。SMS 通知は「ベスト エフォート」ベースで提供されます。