このページでは、サポートされている通知チャネルの種類を紹介し、Google Cloud Console を使用して通知チャネルを構成する方法について説明します。Cloud Monitoring API を使用して通知チャネルを構成するには、通知チャネルの管理をご覧ください。
アラート ポリシーの通知については、次のページをご覧ください。
- 問題の発生からアラートが作成されるまでの間の遅延については、通知レイテンシをご覧ください。
- アラート ポリシーに対して生成される通知の数については、インシデントごとの通知をご覧ください。
デフォルトでは、アラート ポリシーはインシデントが作成された場合にのみ通知を送信します。インシデントが開かれたときと閉じたときに通知を受け取るには、アラート ポリシーを編集し、[通知] セクションで [Notify on incident closure] をオンにします。
チャネルの作成
通知チャンネルを構成するには、指標スコープ(または Workspace のホスト プロジェクト)のスコープ対象プロジェクトに対して次のいずれかの Identity and Access Management ロールを持っている必要があります。
- モニタリング通知チャネルの編集者
- モニタリング編集者
- モニタリング管理者
- プロジェクト編集者
- プロジェクト オーナー
これらのロールの詳細については、アクセス制御をご覧ください。
アラート ポリシーを作成するときに、構成されている通知チャネルを選択してこれをポリシーに追加できます。通知チャネルを事前に構成することも、アラート ポリシーの作成プロセスの一環として構成することもできます。詳しくは、オンデマンドでチャネルを作成するをご覧ください。
Cloud Console を使用して通知チャネルを作成する手順は次のとおりです。
Cloud Console で、プロジェクト選択ツールを使用して Google Cloud プロジェクトを選択し、[Monitoring] を選択するか、次のボタンをクリックします。
Monitoring のナビゲーション パネルで、notifications [アラート] をクリックします。
[Edit notification channels] をクリックします。
新しい通知チャネルを追加するには、チャネルの種類を見つけて [新しく追加] をクリックし、次の表に示すチャネル固有の手順に従います。
メール
メールを追加するには、[メール] セクションの [新しく追加] をクリックしてから表示される手順に従います。
アラート ポリシーの作成中にメールチャネルを作成できます。詳しくは、オンデマンドでチャネルを作成するをご覧ください。
アラート ポリシーの通知チャネルとしてグループのメールアドレスを使用する場合は、alerting-noreply@google.com
からのメールを受け入れるようにグループを構成します。
モバイル アプリ
Cloud Console モバイルアプリで、どこからでも Cloud Console リソースと Monitoring の情報をモニタリングできます。
特定の Google Cloud プロジェクトの Cloud Console モバイルアプリ通知チャンネルを構成する手順は次のとおりです。
- モバイル デバイスのアプリストアから Cloud Console モバイルアプリをインストールします。
- Cloud Console モバイルアプリで表示するプロジェクトを選択します。この操作によって、アプリと選択した Google Cloud プロジェクトとの間でデータが交換されます。既存の通知チャンネルにデバイスが含まれていない場合は、通知チャンネルが作成され、数分後にモバイル デバイスが [通知チャンネル] ページの [モバイル デバイス] セクションに自動的に表示されます。
アラート ポリシーの通知チャンネルとしてモバイル デバイスを追加するには、アラートの [通知] セクションで [Google Cloud Console(モバイル)] を選択し、リストからモバイル デバイスを選択します。
通知されるデバイスについて
[通知チャンネル] ページの [モバイル デバイス] セクションの [スコープ] 列で、通知の送信先を指定します。
- デバイスは、通知チャンネルを作成した特定のデバイスにのみ通知を送信することを示します。デバイス スコープの通知チャンネルの場合、[表示名] フィールドにはデバイス情報が含まれます。
- ユーザーは、Cloud Console モバイルアプリがインストールされているすべてのデバイスに通知を送信することを示します。
チャンネルが作成されると、Cloud Monitoring によって通知スコープが決定されます。スコープを選択または変更することはできません。
PagerDuty
PagerDuty と統合すれば、Monitoring との一方向または双方向の同期が可能になります。構成に関係なく、以下のようになります。
- Monitoring でインシデントが作成された場合、そのインシデントは PagerDuty で開かれます。
- PagerDuty を使用して Monitoring のインシデントを閉じることはできません。
一方向の同期を使用し、PagerDuty でインシデントを解決した場合、PagerDuty のインシデントの状態は Monitoring のインシデントの状態から切り離されます。PagerDuty でインシデントを解決した場合、そのインシデントは PagerDuty で完全にクローズされ、再び開くことはできません。
双方向同期を使用する場合、PagerDuty のインシデントの状態は Monitoring のインシデントの状態によって決まります。PagerDuty でインシデントを解決し、Monitoring がインシデントを開いている場合、そのインシデントは PagerDuty で再度開かれます。
PagerDuty の通知を設定するには、次の手順を行います。
- PagerDuty で: PagerDuty サイトで PagerDuty アカウントを作成します。
- PagerDuty の Stackdriver 統合ガイド†に記載されている手順に従って、PagerDuty と Monitoring の統合を完了します。
- Google Cloud Console の [通知チャネル] ウィンドウで、PagerDuty 通知チャネルを追加します。
- [PagerDuty] セクションで、[Add new] をクリックします。
- [表示名] を入力します。この名前は、統合を追加したときに PagerDuty に指定した名前と一致する必要があります。
- PagerDuty によって生成された Integration Service Key を [Service Key] フィールドに入力します。
- [保存] をクリックします。
- (省略可)双方向同期を構成する場合は、次の操作を行います。
- PagerDuty で、[構成]、[サービス] の順に選択し、統合の構成時に入力したサービス名を選択します。
- [設定を編集] をクリックし、[インシデントの作成] をオンにします。この操作で、デフォルト設定の [アラートとインシデントの作成] の選択が解除されます。
アラート ポリシーを作成するときは、[通知] セクションで [PagerDuty] を選択し、PagerDuty 設定を選択します。
† このドキュメントの Stackdriver のスクリーンショットは古いバージョンのものですが、情報は正確です。
SMS
SMS 通知を設定するには、次の手順を行います。
- [SMS] セクションの [新規追加] をクリックして、表示される手順を行います。
- [保存] をクリックします。
アラート ポリシーを設定したら、[SMS] 通知タイプを選択し、リストから確認済みの電話番号を選択します。
Slack
Monitoring と Slack を統合すると、新しいインシデントが作成されたときに、アラート ポリシーで Slack チャンネルに投稿できるようになります。Slack 通知を設定する方法は次のとおりです。
Slackの場合: Slack サイトで Slack ワークスペースとチャネルを作成します。チャネル URL をメモしておきます。
Cloud Console で、[モニタリング] を選択します。
[アラート]、[Edit notification channel] の順にクリックします。
[Slack] セクションで、[Add new] をクリックします。Slack のログインページが表示されます。
- Slack ワークスペースを選択します。
- [許可] をクリックして Google Cloud Monitoring の Slack ワークスペースへのアクセスを有効にします。 この操作を行うと、通知チャンネルの Monitoring 構成ページに戻ります。
- 通知に使用する Slack チャンネルの名前を入力します。
- 通知チャンネルの表示名を入力します。
Slack の場合:
Monitoring の通知チャンネルとして指定したチャンネルに移動します。
チャネルに次のメッセージを送信して、Monitoring アプリをチャネルに招待します。
/invite @Google Cloud Monitoring
Monitoring で通知チャンネルを作成するときに指定したチャネルに、Monitoring アプリを招待するようにしてください。
アラート ポリシーを作成するときは、[通知] セクションの [Slack] を選択し、Slack の構成を選択します。
Webhook
Webhooks 通知を設定するには、次の手順を行います。
- webhook ハンドラ: Monitoring から webhook データを受信するパブリック エンドポイント URL を指定します。
- [Webhook] セクションの [新しく追加] をクリックして表示される手順を行います。
- [保存] をクリックします。
アラート ポリシーを作成する場合は、[通知] セクションで [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 に送信した場合、サーバーは接続されたパラメータを検証できます。この認証方法は、HTTP リクエストの暗号化を SSL/TLS と組み合わせて使用することで、スヌープ元のトークンの学習を防ぐ場合に最も効果的です。
Python でのサーバー例については、このサンプル サーバーをご覧ください。
Pub/Sub
Pub/Sub トピックに通知を送信する方法は次のとおりです。
プロジェクトで次のボタンをクリックして Pub/Sub API を有効にします。
- 正しい Google Cloud プロジェクトが選択されていることを確認します。
- [有効にする] ボタンが表示されている場合は、ボタンをクリックします。
- [API が有効です] が表示されている場合、API はすでに有効になっています。
Pub/Sub トピックをまだ持っていない場合は、トピックの作成の説明に従って作成します。トピックは、通知チャネルとして使用する前に作成しておく必要があります。トピックを作成する次のコマンドは、
notificationTopic
というものです。gcloud pubsub topics create notificationTopic
トピックを使用する通知チャネルを作成します。Monitoring API、
gcloud
コマンドライン ツール、Cloud Console を使用できます。Cloud Console を使用して通知チャネルを作成するには、[Edit notification channels] ウィンドウに移動して、次の操作を行います。
- [Cloud Pub/Sub] セクションで、[新しく追加] をクリックします。
- チャネルの表示名を入力し、Pub/Sub トピック名を入力して [Add channel] をクリックします。
Monitoring API または
gcloud
コマンドライン ツールを使用して通知チャネルを作成する方法については、チャネルの作成をご覧ください。通知サービス アカウントに、通知チャネルとして使用する各 Pub/Sub トピックを公開する権限を付与します。
最初の Pub/Sub チャネルを作成すると、Cloud Monitoring は、チャネルが作成されたプロジェクトの Monitoring Notification Service Agent 用のサービス アカウントを作成します。 このサービス アカウントは、このプロジェクトの通知チャネルへの Pub/Sub ベースでの通知の送信を管理します。
このサービス アカウントには、次の構造の ID があります。
service-[PROJECT_NUMBER]@gcp-sa-monitoring-notification.iam.gserviceaccount.com
サービス アカウントを表示するには、[IAM] ページに移動します。
サービス アカウントが表示されない場合は、次の手順を試してください。
- [Google 提供のロール付与を含みます] をオンにします。
- ページを再読み込みします。
このアカウントをトピックに公開する権限を付与するには、トピックの
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、番号は、Cloud Console のプロジェクトのランディング ページで確認できます。また、次のコマンドでも取得できます。gcloud projects describe [PROJECT_ID] --format="value(project_number)"
チャネルタイプとして Pub/Sub を、通知チャネルとして名前付きトピックを選択して、アラート ポリシーに Pub/Sub チャネルを追加します。
オンデマンドでのチャネルの作成
アラート ポリシーに通知チャネルを追加する際は、リストからチャネルを選択する必要があります。使用する通知チャネルがリストに含まれていない場合は、次の手順で構成済み通知チャネルを更新できます。
- 通知ダイアログで、[通知チャネルを管理] をクリックします。新しいブラウザタブの [通知チャネル] ウィンドウに移動します。
- 新しい通知チャネルを追加するには、チャネルの種類を見つけて [新しく追加] をクリックし、以前の表に含まれるチャネル固有の手順を行います。
元のタブに戻り、通知ダイアログで [更新] refresh をクリックします。
更新されたリストから [通知チャネル] を選択します。
チャネルの編集と削除
Cloud Console を使用して通知チャネルを編集または削除するには、次の操作を行います。
Cloud Console で [モニタリング] を選択するか、次のボタンをクリックします。
Monitoring のナビゲーション パネルで、notifications [アラート] をクリックします。
[Edit notification channels] をクリックします。
[通知チャネル] ダッシュボードには、通知チャネルの種類ごとにセクションがあります。セクション ヘッダーの下に、そのタイプのすべての設定のリストが表示されます。
- エントリを変更するには、[編集]editedit をクリックします。変更が完了したら、[保存] をクリックします。
- エントリを削除するには、[削除]deletedelete をクリックします。確認ダイアログで、[削除] をクリックします。
Slack チャンネルへの Monitoring アプリの追加
2020 年 11 月 21 日から 12 月 3 日までの間に Slack 通知チャンネルを作成した場合、チャンネルに通知は届きません。この問題を解決するには、このセクションで説明するように、Monitoring アプリをチャンネルに追加する必要があります。
新しい Slack ワークスペースにチャネルを作成する場合、またはこのセクションで説明している /invite
コマンドで機能しない場合は、新しい Slack チャネルの設定の手順に従ってください。
チャネルを更新する方法は次のとおりです。
Monitoring 通知チャンネルとして使用する各 Slack チャネルに移動します。
チャネルに次のメッセージを送信して、Monitoring アプリをチャネルに招待します。
/invite @Google Cloud Monitoring
Monitoring で通知チャンネルを作成するときに指定したチャネルに、Monitoring アプリを招待するようにしてください。