通知オプション

このページでは、サポートされている通知チャネルの種類を紹介し、Google Cloud Console を使用して通知チャネルを構成する方法について説明します。

  • Cloud Monitoring API を使用して通知チャネルを構成するには、通知チャネルの管理をご覧ください。
  • 問題の発生からアラートが作成されるまでの間の遅延については、通知レイテンシをご覧ください。

Google Cloud Console を使用して通知チャネルを設定する方法は次のとおりです。

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

    [モニタリング] に移動

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

  3. [通知チャネルの編集] をクリックします。 [通知チャネル] ダッシュボードには、通知チャネルタイプごとのセクションが含まれています。セクション ヘッダーの下に、そのタイプのすべての設定のリストが表示されます。

    • エントリを変更するには、[編集]edit をクリックします。変更が完了したら、[保存] をクリックします。
    • エントリを削除するには、[削除]delete をクリックします。確認ダイアログで、[削除] をクリックします。
  4. エントリを追加するには、次の表の通知の種類の手順を行います。

メール

メールを追加するには、[メール] セクションの [Add new] をクリックしてから表示される手順に従います。

アラート ポリシーを作成して [通知] セクションで [メール] を選択した場合は、メールアドレスを入力します。グループのメールアドレスを使用する場合は、alerts@stackdriver.comalerting-noreply@google.com 両方からのメールを受信するグループを設定します。なお、stackdriver.com アドレスは段階的に廃止されています。

メールチャネルはオンデマンドで構成できますが、事前に作成することで「e コマース オンコール チーム エイリアス」などの表示名を構成することもできます。

Google Cloud Console モバイルアプリ

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

モニタリング通知を受信するようにモバイル デバイスを設定するには、次の手順を行います。

  1. モバイル デバイスのアプリストアから Google Cloud Console Mobile App をインストールします。
  2. Google Cloud Console モバイルアプリ内: [設定] メニューを選択してワークスペースのアプリを設定します。Cloud Console のリソースが表示されます。
  3. [Mobile Devices] セクションの [Add new] をクリックして表示される手順を行います。

数分後に、追加したモバイル デバイスが [Mobile Devices] の下に表示されます。

アラート ポリシーを作成する場合は、[通知] セクションで [Google Cloud Console (mobile)] を選択し、リストからモバイル デバイスを選択します。

PagerDuty

PagerDuty と統合すれば、Monitoring との間でインシデントを一方向または双方向で解決できます。

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

  1. PagerDuty で: PagerDuty サイトで PagerDuty アカウントを作成します。[PagerDuty Sync] で、Monitoring との双方向同期を構成することもできます。詳細については、PagerDuty の Stackdriver Integration Guide をご覧ください。
  2. [PagerDuty] セクションで、[Add new] をクリックします。
  3. [サービス名] と [サービスキー] を入力します。
  4. [保存] をクリックします。

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

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

SMS

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

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

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

Slack

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

  1. Slack で: Slack サイトで Slack チャンネルを作成します。チャンネル URL をメモしておきます。
  2. Google Cloud Console で [Monitoring] を選択します。

    [モニタリング] に移動

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

  4. [Slack] セクションで、[Add new] をクリックします。Slack のログインページが表示されます。

    1. Slack のワークスペース URL を入力します。
    2. [許可] をクリックして Google Cloud Monitoring の Slack ワークスペースへのアクセスを有効にします。

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

Webhook

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

  1. webhook ハンドラで: Monitoring から webhook データを受信するエンドポイント URL を指定します。
  2. [Webhooks] セクションの [Add new] をクリックして表示される手順を行います。
  3. [保存] をクリックします。

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

サンプル JSON パケット

イベントを作成する JSON パケットのフォームは次のとおりです。

  {
        "incident": {
          "incident_id": "f2e08c333dc64cb09f75eaab355393bz",
          "resource_id": "i-4a266a2d",
          "resource_name": "webserver-85",
          "state": "open",
          "started_at": 1385085727,
          "ended_at": null,
          "policy_name": "Webserver Health",
          "condition_name": "CPU usage",
          "url": "https://console.cloud.google.com/monitoring/alerting/incidents?project=PROJECT_ID",
          "summary": "CPU for webserver-85 is above the threshold of 1% with a value of 28.5%"
        },
        "version": 1.1
      }
    

基本認証

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

トークン認証

Token Authentication には、エンドポイント URL 内の querystring パラメータと、サーバーと Monitoring 間ではシークレットとなるような鍵が必要です。 トークンを含むサンプル URL は次のとおりです。

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

Monitoring がインシデントをエンドポイント URL に送信した場合、サーバーは接続されたパラメータを検証できます。この認証方法は、HTTP リクエストの暗号化を SSL/TLS と組み合わせて使用することで、スヌープ元のトークンの学習を防ぎます。

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

Pub/Sub

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

  1. Pub/Sub トピックをまだ持っていない場合は、トピックの作成の説明に従って作成します。トピックは、通知チャネルとして使用する前に作成しておく必要があります。トピックを作成する次のコマンドは、notificationTopic というものです。

    gcloud pubsub topics create notificationTopic
  2. トピックを使用する通知チャネルを作成します。Monitoring API を使用するか、gcloud コマンドライン ツールを使用してこのチャネルを作成します。詳しい内容や例については、チャンネルを作成するをご覧ください。

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

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

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

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

    このアカウントは、Google Cloud Console のサービス アカウントページではなく、IAM ページに表示されます。

    このアカウントをトピックに公開する権限を付与するには、トピックの pubsub.publisher IAM 役割をサービス アカウントに付与する必要があります。次のコマンドは、notificationTopicトピックに対して次のように実行します。

    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、番号は、Google Cloud Console のプロジェクトのランディング ページで確認するか、次のコマンドで取得できます。

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