通知チャネルの管理

このページでは、Cloud Monitoring アラート ポリシーで使用可能な、サポートされている通知チャネルの種類を紹介し、Google Cloud Console を使用して通知チャネルを構成する方法について説明します。Cloud Monitoring API を使用して通知チャネルを構成するには、通知チャネルの管理をご覧ください。

アラート ポリシーの通知については、次のページをご覧ください。

  • 問題の発生からアラートが作成されるまでの間の遅延については、通知レイテンシをご覧ください。
  • アラート ポリシーに対して生成される通知の数については、インシデントごとの通知をご覧ください。

デフォルトでは、アラート ポリシーはインシデントが作成された場合にのみ通知を送信します。インシデントが開かれたときと閉じたときに通知を受け取るには、アラート ポリシーを編集し、[通知] セクションで [Notify on incident closure] を選択します。

チャネルの作成

通知チャンネルを構成するには、指標スコープのスコープ対象プロジェクトに対して次のいずれかの Identity and Access Management ロールを持っている必要があります。

  • モニタリング通知チャネルの編集者
  • モニタリング編集者
  • モニタリング管理者
  • プロジェクト編集者
  • プロジェクト オーナー

これらのロールの詳細については、アクセス制御をご覧ください。

アラート ポリシーを作成するときに、構成されている通知チャネルを選択してポリシーに追加できます。通知チャネルを事前に構成することも、アラート ポリシーの作成プロセスの一環として構成することもできます。詳しくは、オンデマンドでチャネルを作成するをご覧ください。

Cloud Console を使用して通知チャネルを作成する手順は次のとおりです。

  1. Cloud Console で、プロジェクト選択ツールを使用して Google Cloud プロジェクトを選択し、[Monitoring] を選択するか、次のボタンをクリックします。

    [Monitoring] に移動

  2. Monitoring のナビゲーション パネルで、 [アラート] をクリックします。

  3. [Edit notification channels] をクリックします。

  4. 新しい通知チャネルを追加するには、チャネルの種類を見つけて [新しく追加] をクリックし、次の表に示すチャネル固有の手順に従います。

Email

メールを追加するには、[メール] セクションで [新規追加] をクリックし、手順に沿って操作します。

アラート ポリシーの作成中にメール チャネルを作成できます。詳しくは、オンデマンドでチャネルを作成するをご覧ください。

アラート ポリシーの通知チャネルとしてグループのメールアドレスを使用する場合は、alerting-noreply@google.com からのメールを受け入れるようにグループを構成します。

モバイル アプリ

Cloud Console モバイルアプリで、どこからでも Cloud Console リソースと Monitoring の情報をモニタリングできます。

特定の Google Cloud プロジェクトの Cloud Console モバイルアプリ通知チャンネルを構成する手順は次のとおりです。

  1. モバイル デバイスのアプリストアから Cloud Console モバイルアプリをインストールします。
  2. Cloud Console モバイルアプリで表示するプロジェクトを選択します。この操作によって、アプリと選択した Google Cloud プロジェクトとの間でデータが交換されます。 通知チャンネルが存在しない場合は自動的に作成され、数分後にこのチャンネルが [通知チャンネル] の [モバイル デバイス] セクションに表示されます。

アラート ポリシーの通知チャンネルとしてモバイル デバイスを追加するには、アラートの [通知] セクションで [Google Cloud Console(モバイル)] を選択し、リストからモバイル デバイスを選択します。

通知されるデバイスについて

[通知チャンネル] ページの [モバイル デバイス] セクションの [スコープ] 列で、通知の送信先を指定します。

Cloud Console モバイルアプリ通知チャンネルのリスト。

  • デバイスは、通知チャンネルを作成した特定のデバイスにのみ通知を送信することを示します。デバイス スコープの通知チャンネルの場合、[表示名] フィールドにはデバイス情報が含まれます。
  • ユーザーは、Cloud Console モバイルアプリがインストールされているすべてのデバイスに通知を送信することを示します。

チャンネルが作成されると、Cloud Monitoring によって通知スコープが決定されます。スコープを選択または変更することはできません。

PagerDuty

PagerDuty と統合すれば、Monitoring との一方向または双方向の同期が可能になります。構成に関係なく、以下のようになります。

  • Monitoring でインシデントが作成された場合、そのインシデントは PagerDuty で開かれます。
  • PagerDuty を使用して Monitoring のインシデントを閉じることはできません。

一方向の同期を使用し、PagerDuty でインシデントを解決した場合、PagerDuty のインシデントの状態は Monitoring のインシデントの状態から切り離されます。PagerDuty でインシデントを解決した場合、そのインシデントは PagerDuty で完全にクローズされ、再び開くことはできません。

双方向同期を使用する場合、PagerDuty で表示される状態は Monitoring によって制御されます。PagerDuty でインシデントを解決し、Monitoring がインシデントを開いている場合、そのインシデントは PagerDuty で再度開かれます。

PagerDuty の通知を設定するには、次の手順を行います。

  1. PagerDuty で: PagerDuty サイトで PagerDuty アカウントを作成します。
  2. PagerDuty の Stackdriver 統合ガイドに記載されている手順に従って、PagerDuty と Monitoring の統合を完了します。
  3. Google Cloud Console の [通知チャネル] ウィンドウで、PagerDuty 通知チャネルを追加します。
    1. [PagerDuty] セクションで、[Add new] をクリックします。
    2. [表示名] を入力します。この名前は、統合を追加したときに PagerDuty に指定した名前と一致する必要があります。
    3. PagerDuty によって生成された Integration Service Key を [Service Key] フィールドに入力します。
    4. [保存] をクリックします。
  4. (省略可)双方向同期を構成する場合は、次の操作を行います。
    1. PagerDuty で、[構成]、[サービス] の順に選択し、統合の構成時に入力したサービス名を選択します。
    2. [設定を編集] をクリックして [インシデントの作成] を選択し、[アラートとインシデントの作成] をクリアします。

アラート ポリシーを作成するときは、[通知] セクションで [PagerDuty] を選択し、PagerDuty 設定を選択します。

このドキュメントの Stackdriver のスクリーンショットは古いバージョンのものですが、情報は正確です。

SMS

SMS 通知を設定するには、次の手順を行います。

  1. [SMS] セクションの [新規追加] をクリックして、表示される手順を行います。
  2. [保存] をクリックします。

アラート ポリシーを設定したら、[SMS] 通知タイプを選択し、リストから確認済みの電話番号を選択します。

Slack

Monitoring と Slack を統合すると、新しいインシデントが作成されたときに、アラート ポリシーで Slack チャンネルに投稿できるようになります。Slack 通知を設定する方法は次のとおりです。

  1. Slackの場合: Slack サイトで Slack ワークスペースとチャネルを作成します。チャネル URL をメモしておきます。

  2. Cloud Console で、[モニタリング] を選択します。

    [Monitoring] に移動

  3. [アラート]、[Edit notification channel] の順にクリックします。

  4. [Slack] セクションで、[新規追加] をクリックして Slack のログインページを開きます。

    1. Slack ワークスペースを選択します。
    2. [許可] をクリックして Cloud Monitoring の Slack ワークスペースへのアクセスを有効にします。この操作を行うと、通知チャンネルの Monitoring 構成ページに戻ります。
    3. 通知に使用する Slack チャンネルの名前を入力します。
    4. Slack 通知チャンネルの表示名を入力します。
    5. (省略可)Cloud Monitoring と Slack ワークスペースの間の接続をテストするには、[接続をテスト] をクリックします。接続に成功すると、指定した Slack 通知チャネルに This is a test alert notification... というメッセージが表示されます。
  5. Slack の場合:

    1. Monitoring の通知チャンネルとして指定したチャンネルに移動します。

    2. チャネルに次のメッセージを送信して、Monitoring アプリをチャネルに招待します。

      /invite @Google Cloud Monitoring

      Monitoring で通知チャンネルを作成するときに指定したチャネルに、Monitoring アプリを招待するようにしてください。

    アラート ポリシーを作成するときは、[通知] セクションの [Slack] を選択し、Slack の構成を選択します。

Webhook

通知に Webhook を使用するには、パブリック エンドポイント URL が必要です。Webhooks 通知を設定するには、次の手順を行います。

  1. webhook ハンドラ: Monitoring から webhook データを受信するパブリック エンドポイント URL を指定します。
  2. [Webhooks] セクションの [Add new] をクリックして表示される手順を行います。
  3. [接続をテスト] をクリックして、テスト ペイロードを Webhook エンドポイントに送信します。受信エンドポイントに移動して、配信状況を確認できます。
  4. [保存] をクリックします。

アラート ポリシーを作成する場合は、[通知] セクションで [Webhook] を選択し、webhook 構成を選択します。

基本認証

Cloud Monitoring から送信された Webhook リクエストに加えて、基本的な認証では、ユーザー名とパスワードに HTTP 仕様が使用されます。Cloud Monitoring では、サーバーが適切な WWW-Authenticate ヘッダーで 401 応答を返す必要があります。基本認証の詳細については、次を参照してください。

トークン認証

トークン認証では、エンドポイント URL のクエリ文字列パラメータと、サーバーがそれ自体と Monitoring の間で秘密であると期待するキーが必要です。トークンを含む URL の例を次に示します。

https://www.myserver.com/stackdriver-hook?auth_token=1234-abcd

Monitoring がインシデントをエンドポイント URL に送信した場合、サーバーは接続されたパラメータを検証できます。この認証方法は、SSL/TLS を使用して HTTP リクエストを暗号化し、スヌーパにトークンを知られないようにする場合に最も効果的です。

Python でのサーバー例については、このサンプル サーバーをご覧ください。

Pub/Sub

Pub/Sub トピックに通知を送信する方法は次のとおりです。

  1. プロジェクトで次のボタンをクリックして Pub/Sub API を有効にします。

    Pub/Sub API を有効にする

    1. 正しい Google Cloud プロジェクトが選択されていることを確認します。
    2. [有効にする] ボタンが表示されている場合は、ボタンをクリックします。
    3. [API が有効です] が表示されている場合、API はすでに有効になっています。
  2. Pub/Sub トピックをまだ持っていない場合は、トピックの作成の説明に従って作成します。トピックは、通知チャネルとして使用する前に作成しておく必要があります。トピックを作成する次のコマンドは、notificationTopic というものです。

    gcloud pubsub topics create notificationTopic
  3. トピックを使用する通知チャネルを作成します。Monitoring API、gcloud コマンドライン ツール、Cloud Console を使用できます。

    Cloud Console を使用して通知チャネルを作成するには、[Edit notification channels] ウィンドウに移動して、次の操作を行います。

    1. [Cloud Pub/Sub] セクションで、[新しく追加] をクリックします。
    2. チャネルの表示名を入力し、Pub/Sub トピック名を入力して [Add channel] をクリックします。

    Monitoring API または gcloud コマンドライン ツールを使用して通知チャネルを作成する方法については、チャネルの作成をご覧ください。

  4. 通知サービス アカウントに、通知チャネルとして使用する各 Pub/Sub トピックを公開する権限を付与します。

    最初の Pub/Sub チャネルを作成すると、Cloud Monitoring は、チャネルが作成されたプロジェクトの Monitoring Notification Service Agent 用のサービス アカウントを作成します。 このサービス アカウントは、このプロジェクトの通知チャネルへの Pub/Sub ベースでの通知の送信を管理します。

    このサービス アカウントには、次の構造の ID があります。

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

    サービス アカウントを表示するには、[IAM] ページに移動します。

    IAM に移動

    サービス アカウントが表示されない場合は、次の手順を試してください。

    • 次のスクリーンショットに示すように、[Google 提供のロール付与を含む] を選択します。

      [Google 提供のロール付与を含む] オプションを選択します。

    • ページを再読み込みします。

    このアカウントにトピックへの公開を許可するには、サービス アカウントにトピックの pubsub.publisher IAM ロールを与える必要があります。たとえば、次のコマンドは、notificationTopic トピックの IAM ロールを構成します。

    gcloud pubsub topics add-iam-policy-binding \
    projects/[PROJECT_NUMBER]/topics/notificationTopic --role=roles/pubsub.publisher \
    --member=serviceAccount:service-[PROJECT_NUMBER]@gcp-sa-monitoring-notification.iam.gserviceaccount.com
    

    コマンドが成功すると、次のような出力が返されます。

    Updated IAM policy for topic [notificationTopic].
    bindings:
    ‐ members:
      ‐ serviceAccount:service-[PROJECT_NUMBER]@gcp-sa-monitoring-notification.iam.gserviceaccount.com
      role: roles/pubsub.publisher
    etag: BwWcDOIw1Pc=
    version: 1
    

    詳細については、pubsub topics add-iam-policy-binding リファレンス ページをご覧ください。

    プロジェクト番号がプロジェクト ID と同じではありません。プロジェクト ID は通常、my-test-project のようにプロジェクト名を表す文字列です。プロジェクト番号は一意の数値の ID です。 プロジェクトの名前、ID、番号は、Cloud Console のプロジェクトのランディング ページで確認できます。また、次のコマンドでも取得できます。

    gcloud projects describe [PROJECT_ID] --format="value(project_number)"
    
  5. チャネルタイプとして Pub/Sub を、通知チャネルとして名前付きトピックを選択して、アラート ポリシーに Pub/Sub チャネルを追加します。

オンデマンドでのチャネルの作成

アラート ポリシーに通知チャネルを追加する際は、リストからチャネルを選択する必要があります。使用する通知チャネルがリストにない場合は、次の手順で構成済みの通知チャネルを更新できます。

  1. 通知ダイアログで、[通知チャネルを管理] をクリックします。新しいブラウザタブの [通知チャネル] ウィンドウに移動します。
  2. 新しい通知チャネルを追加するには、チャネルの種類を見つけて [新しく追加] をクリックし、以前の表に含まれるチャネル固有の手順を行います。
  3. 元のタブに戻り、通知ダイアログで [更新] をクリックします。

    「更新」ボタンと「チャネルを管理する」ボタンを表示する通知ダイアログ。

  4. 更新されたリストから [通知チャネル] を選択します。

チャネルの編集と削除

Cloud Console を使用して通知チャネルを編集または削除するには、次の操作を行います。

  1. Cloud Console で [モニタリング] を選択するか、次のボタンをクリックします。

    [Monitoring] に移動

  2. Monitoring のナビゲーション パネルで、 [アラート] をクリックします。

  3. [Edit notification channels] をクリックします。

    [通知チャネル] ダッシュボードには、通知チャネルの種類ごとにセクションがあります。各セクションには、そのタイプのすべての構成が一覧表示されます。

    • エントリを変更するには、[編集] をクリックします。変更が完了したら、[保存] をクリックします。
    • エントリを削除するには、[削除] をクリックします。確認ダイアログで、[削除] をクリックします。

Slack チャンネルへの Monitoring アプリの追加

2020 年 11 月 21 日から 12 月 3 日までの間に Slack 通知チャネルを作成した場合、そのチャネルには通知が届きません。この問題を解決するには、このセクションで説明するように、Monitoring アプリをチャンネルに追加する必要があります。

新しい Slack ワークスペースでチャネルを構成するには、新しい Slack チャネルの設定をご覧ください。

既存の Slack チャンネルを更新して Cloud Monitoring を含めるには、次の手順に沿って操作します。

  1. 更新する Slack チャンネルに移動します。

  2. チャネルに次のメッセージを送信して、Monitoring アプリをチャネルに招待します。

    /invite @Google Cloud Monitoring

    Monitoring で通知チャンネルを作成するときに指定したチャネルに、Monitoring アプリを招待するようにしてください。