選択した Cloud Monitoring 通知チャネルにエラー通知を送信するように Error Reporting を構成できます。
Error Reporting では、次の場合に通知を送信します。
既存のエラーに分類できないエラーが初めて Google Cloud プロジェクトで発生した場合。
解決済みとマークされたエラーが再発した場合
通知チャンネルを管理
Monitoring で通知チャンネルを作成、編集、削除します。 通知チャンネルを作成したら、通知チャンネルを使用するように Error Reporting を構成できます。
Error Reporting では、メール、モバイル、Slack、Webhook の 4 種類の通知チャンネルを選択できます。
始める前に
Google Cloud コンソールを使用して通知チャンネルを表示および構成するために必要な権限を取得するには、プロジェクトに対する Monitoring 編集者(roles/monitoring.editor
)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Cloud Monitoring のロールの詳細については、Identity and Access Management を使用してアクセスを制御するをご覧ください。
通知チャンネルを作成する
Google Cloud コンソールを使用して通知チャンネルを作成するには、次の表に示すチャンネル固有の手順に沿って操作してください。
メール
メール通知チャンネルを追加する手順は次のとおりです。
-
Google Cloud コンソールで、[notifications アラート] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Monitoring」の結果を選択します。
- Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトを選択します。
- [Edit notification channels] をクリックします。
- [メール] セクションで [新しく追加] をクリックします。
- 1 つのメールアドレスと説明を入力します。
- [保存] をクリックします。
アラート ポリシーの通知チャネルとしてグループのメールアドレスを使用する場合は、ErrorReportingNotifications-noreply@google.com
からのメールを受け入れるようにグループを構成します。
モバイル アプリ
Google Cloud コンソール モバイルアプリを使用すると、 Google Cloud コンソール リソースとモニタリング情報をどこからでもモニタリングできます。 Google Cloud コンソール モバイルアプリの通知は、特定のデバイスまたは特定のユーザーに送信されます。
- デバイスは、通知チャンネルを作成した特定のデバイスにのみ通知を送信することを示します。デバイス スコープの通知チャンネルの場合、[表示名] フィールドにはデバイス情報が含まれます。
- ユーザーは、 Google Cloud コンソール モバイルアプリがインストールされているすべてのデバイスに通知を送信することを示します。
チャンネルが作成されると、Cloud Monitoring によって通知スコープが決定されます。スコープの選択または変更はできません。
特定の Google Cloud プロジェクトに Google Cloud コンソール モバイルアプリ通知チャンネルを構成する手順は次のとおりです。
- モバイル デバイスのアプリストアから Google Cloud コンソール モバイルアプリをインストールします。
Google Cloud コンソール モバイルアプリに表示するプロジェクトを選択します。
プロジェクトを選択すると、選択した Google Cloud プロジェクトとアプリの間でデータ交換が行われます。通知チャンネルが存在しない場合は自動的に作成され、数分後に [通知チャンネル] ページの [モバイル デバイス] セクションに表示されます。
アラート ポリシーの通知チャンネルとしてモバイル デバイスを追加するには、アラートの [通知] セクションで [Google Cloud console (モバイル)] を選択し、リストからモバイル デバイスを選択します。
Slack
Slack 通知を設定する方法は次のとおりです。
Slack: Slack サイトで Slack ワークスペースとチャンネルを作成します。チャンネルの URL をメモしておきます。
-
Google Cloud コンソールで、[notifications アラート] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Monitoring」の結果を選択します。
Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトを選択します。
[Edit notification channels] をクリックします。
[Slack] セクションで、[新しく追加] をクリックして Slack のログインページを開きます。
- Slack ワークスペースを選択します。
- [許可] をクリックして Cloud Monitoring の Slack ワークスペースへのアクセスを有効にします。この操作を行うと、通知チャンネルの Monitoring 構成ページに戻ります。
- [Slack Channel Name] フィールドに、通知に使用する Slack チャンネルの名前を入力します。
- [Cloud Alerting Display Name] フィールドに、短い説明文を入力します。このフィールドの値は、[通知チャンネル] ページに表示されます。
- (省略可)Cloud Monitoring と Slack ワークスペースの間の接続をテストするには、[テスト通知を送信] をクリックします。接続に成功すると、指定した Slack 通知チャンネルにメッセージ
This is a test alert notification...
が表示されます。通知チャンネルで通知の受信を確認してください。
通知に使用する Slack チャンネルがプライベート チャンネルの場合は、Monitoring アプリをそのチャンネルに手動で招待する必要があります。
- Slack を開きます。
Monitoring の通知として指定したチャンネルに移動します。
チャンネルで次のメッセージを入力して送信することで、Monitoring アプリをチャンネルに招待します。
/invite @Google Cloud Monitoring
Monitoring で通知チャンネルの作成時に指定したチャンネルに、Monitoring アプリを招待するようにしてください。Monitoring アプリをパブリック チャネルに招待する方法は省略可能です。
Webhook
Webhook 通知チャンネルを構成する前に、次の点を考慮してください。
- Webhook は公開エンドポイントのみをサポートします。パブリック エンドポイントは、HTTP(
port:80
)や HTTPS(port:443
)など、公共のインターネットから完全にアクセスできます。通知サービスには、エンドポイントとの接続を確立できる機能が必要です。HTTPS の場合は、サーバーのセキュリティ証明書を検証できる必要があります。 - Cloud Run Functions の関数が通知チャンネルの Webhook エンドポイントとして構成されている場合は、関数を呼び出すユーザーに必要な認証権限があることを確認してください。詳細については、呼び出しを認証すると関数へのアクセスを有効にするをご覧ください。
- Webhook 通知チャンネルは Microsoft Teams に対応していません。Monitoring から Microsoft Teams に通知データを送信するには、統合レイヤを作成して Monitoring Webhook を受信し、Microsoft Teams に転送します。
Webhook 通知チャンネルを構成する
Webhooks 通知を構成するには、次の操作を行います。
- Webhook ハンドラ: Monitoring から Webhook データを受信するパブリック エンドポイント URL を指定します。
-
Google Cloud コンソールで、[notifications アラート] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Monitoring」の結果を選択します。
- Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトを選択します。
- [Edit notification channels] をクリックします。
- [Webhook] セクションで [新しく追加] をクリックします。
- ダイアログの項目をすべて入力します。
- [接続をテスト] をクリックして、テスト ペイロードを Webhook エンドポイントに送信します。受信側エンドポイントに移動して配信を確認します。
- [保存] をクリックします。
Webhook スキーマ
Error Reporting の 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 でのサーバー例については、このサンプル サーバーをご覧ください。
通知チャンネルの編集と削除
Google Cloud コンソールを使用して通知チャンネルを編集または削除するには、次の操作を行います。
-
Google Cloud コンソールで、[notifications アラート] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Monitoring」の結果を選択します。
[Edit notification channels] をクリックします。
[通知チャンネル] ダッシュボードには、通知チャネルの種類ごとにセクションがあります。各セクションには、その種類のすべての構成が一覧表示されます。
- エントリを変更するには、[edit 編集] をクリックします。変更が完了したら、[保存] をクリックします。
- エントリを削除するには、[ 削除] をクリックします。確認ダイアログで、[削除] をクリックします。
Google Cloud コンソールから通知チャンネルを選択する
既存の通知チャンネルを選択するには、次のいずれかのロールが必要です。
- Error Reporting ユーザー
- Error Reporting 管理者
- プロジェクト編集者
- プロジェクト オーナー
新しいエラーグループが発生したときに通知を送信する場所を選択するには、次の手順を行います。
-
Google Cloud コンソールで [Error Reporting] ページに移動します。
このページは、検索バーを使用して見つけることもできます。
[通知の構成] をクリックして [エラー通知] ページを開きます。
[通知チャネル] プルダウン メニューで、通知を送信するチャネルを選択します。
必要なチャンネルが表示されない場合は、[通知チャンネルを管理] をクリックして、新しいチャンネルを作成します。通知チャンネルを作成するには、チャンネルの作成に記載されているロールが必要です。
チャンネルを選択したら [保存] をクリックします。
その他の情報
以下は、Error Reporting で通知を作成および管理する際に役立つ追加情報です。
通知の内容
エラーグループの通知には、グループ内のログエントリに関連する情報が含まれます。含まれる情報は、エラーが発生したモニタリング対象リソースのタイプによって異なります。たとえば、モニタリング対象リソースの名前とバージョンが通知に含まれることがあります。
エラー メッセージは、リージョンが global
のログバケット内のログエントリによってエラーグループが特定された場合にのみ、通知に含まれます。
通知が送信されるタイミング
Error Reporting では、次の 2 つのシナリオで通知を送信します。
- Error Reporting でエラーグループが確認されていない場合。
- 既存のエラー グループでエラーが発生し、エラー グループのステータスが
Resolved
に設定されている場合。
エラーグループの今後の通知を受け取るには、エラーグループのステータスを Resolved
に設定する必要があります。API を使用してエラーグループを削除する、データの期限が切れるまで待機するなどの他のアクションを実行しても、別のエラーが発生していない場合には通知されません。
通知のレート制限
Error Reporting では、次のルールを使用して、エラーが原因で受信する通知の数を制限します。
エラーが原因で発生する通知は、60 分間に最大 5 回送信できます。
60 分間に 5 件を超えるエラーが発生した場合は、次のようになります。
今後 6 時間通知はオフになるという通知が届きます。
警告の重大度を含むログエントリが書き込まれます。
エラーグループを解決すると、そのエラーグループに対する通知は 5 分間停止されます。
解決ステータス
解決ステータスが [解決済み] のエラーが再発した場合、そのエラーがすでに削除されていても、解決ステータスが [対応待ち] に戻され、Error Reporting から通知が送信されます。
[ミュート中] のエラーが再発した場合は、Error Reporting から通知は送信されません。
エラーの解決ステータスを管理するには、エラーの管理をご覧ください。
モバイル通知
Error Reporting は、Android と iOS のGoogle Cloud アプリにモバイル通知を送信します。モバイル通知を有効にするには、まずご使用のモバイル デバイスにアプリをインストールする必要があります。