このドキュメントでは、サービス ヘルス イベントのアラートの設定、カスタマイズ、テストを行う方法について説明します。
Personalized Service Health は Cloud Monitoring ログアラートとの統合により、アラートの構成と受信が可能になります。次の条件で通知を作成できます。
- 新しいインシデントが発生したとき。
- 既存のインシデントが更新されたとき( Google Cloud サポートから新しいメッセージが送信されたときなど)。
- 特定の Google Cloud サービスまたは地域(リージョンなど)のインシデントが作成または更新されたとき。
- 既存のインシデントの特定の詳細(ステータスや関連性など)が更新されたとき。
これらの通知はログアラートを使用するため、各通知は Monitoring インシデントに関連付けられます。各通知には、インシデントのページへのリンクと、Service Health ダッシュボードへの直接リンクが含まれています。詳しくは、インシデントの調査をご覧ください。
アラートを構成すると、アラート ポリシーの条件が満たされるたびに通知が届きます。これらの通知にはモニタリングの上限が適用されます。たとえば、プロジェクトごとに 1 日あたりポリシーごとに 20 件のアラートです。
以降のセクションでは、ログ アラート ポリシーの構成方法と、一般的なアラート シナリオの例について説明します。ログアラートは、メール、SMS、Pub/Sub、Webhook、Slack、PagerDuty など、さまざまな統合をサポートする通知チャンネルに依存しています。
上記のオプション以外の宛先にアラートを転送するには、Webhook の使用を検討してください。たとえば、ServiceNow への Webhook を構成できます。詳細については、ServiceNow ドキュメントの Google Cloudで Webhook を構成するをご覧ください。
アラート通知の形式
アラート通知の形式は、通知チャンネルによって異なります。
メール
メールを送信するようにアラートを構成すると、アラート条件が満たされると、alerting-noreply@google.com のアドレスを使用して、選択したメールアドレスにメッセージが配信されます。
Slack
Slack に投稿するようにカスタム通知を構成すると、イベントが発生したときに、選択したチャネルに Cloud Monitoring アプリケーションからのメッセージが表示されます。
アラート ポリシーを設定する
アラートでは、アラート ポリシーを使用します。アラート ポリシーには、アラートを受け取る状況と通知方法を記述します。
アラート ポリシーは、Service Health ダッシュボード内または Google Cloud CLI を使用して構成できます。
アラート ポリシーには、アラートの送信先を定義する Cloud Monitoring 通知チャンネルが必要です。通知チャネルがない場合は、Google Cloud コンソールまたは Monitoring API を使用して作成できます。
Service Health ダッシュボード内
クイックスタートをご覧ください。
gcloud CLI を使用する場合
gcloud CLI を使用してアラート ポリシーを設定するには:
通知チャンネル ID を取得します。
gcloud config set project PROJECT_ID gcloud beta monitoring channels list
b.
projects/PROJECT_ID/notificationChannels/
を含むエントリを探します。これらのエントリは通知チャンネル ID です。次の内容の
policy.json
ファイルを作成します。通知に ALERT_NAME が表示されます。例: 「Google Cloud SQL インシデント」
ALERT_CONDITION は、アラートをトリガーするタイミングを定義します。
- 条件を定義するときは、Google Cloud products と locations にある値を使用します。
アラート条件の例:
アラート条件 ALERT_CONDITION 値 Cloud SQL イベントのアラートを受信する jsonPayload.impactedProductIds =~ \"hV87iK5DcEXKgWU2kDri\"
ゾーン us-central1-a
で発生したイベントに関するアラートを受け取るjsonPayload.impactedLocations =~ \"us-central1-a\"
アラート条件の例をご覧ください。
NOTIFICATION_CHANNEL は、前の手順で list コマンドを使用してフェッチした通知チャンネル ID です。例:
projects/PROJECT_ID/notificationChannels/885798905074
。
次のスニペットは、
policy.json
ファイルの例を示しています。{ "displayName": "ALERT_NAME", "combiner": "OR", "conditions": [ { "displayName": "Log match condition", "conditionMatchedLog": { "filter": "ALERT_CONDITION", } } ], "notificationChannels": [ "NOTIFICATION_CHANNEL" ], }
Cloud Monitoring ポリシーを作成します。
gcloud config set project PROJECT_ID gcloud alpha monitoring policies create --policy-from-file="policy.json"
アラートのコンテンツをカスタマイズする
通知内のフィールドは、JSON ファイルの次のフィールドで設定できます。
labelExtractors
: 通知のヘッダーに含めるプロパティ。これらのプロパティをカスタマイズするには、LabelExtractors ガイドをご覧ください。content
: メール通知の形式。マークダウン変数置換を使用できます。これにより、labelExtractors
を変数として使用できます。これらの変数をカスタマイズするには、こちらのガイドをご覧ください。
アラートをカスタマイズする方法については、アラート ポリシーと条件の例をご覧ください。
アラートをテストする
アラートをテストするには、Cloud Logging を使用してサンプル テストログを使用します。テストログには、前に構成したアラート ロジックが表示されます。
Google Cloud コンソールを使用する
手順は次のとおりです。
- ログエントリを Cloud Logging に書き込むことができる entries:write メソッドのリファレンス ページに移動します。メソッドを試すことができるウィンドウが表示されます。
- リクエスト本文で、PROJECT_ID を独自のプロジェクトに変更します。
テストするアラート条件に応じて、リクエスト本文の
jsonPayload
フィールドを変更します。event_log.proto スキーマを確認し、ログ内の値を調整して、関心のある特定のシナリオをテストすることもできます。{ "entries": [ { "logName": "projects/PROJECT_ID/logs/servicehealth.googleapis.com%2Factivity", "resource": { "type": "servicehealth.googleapis.com/Event", "labels": { "resource_container": "PROJECT_ID", "location": "global", "event_id": "U4AqrjwFQYi5fFBmyAX-Gg" } }, "labels": { "servicehealth.googleapis.com/new_event": "true", "servicehealth.googleapis.com/updated_fields": "[]" }, "jsonPayload": { "@type": "type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog", "category": "INCIDENT", "title": "EXAMPLE... NOT REAL INCIDENT", "description": "EXAMPLE FOR TESTING, NOT REAL INCIDENT. We are experiencing an issue with Google Cloud infrastructure components at us-east1, australia-southeast2. Our engineering team continues to investigate the issue. We apologize to all who are affected by the disruption.", "updateTime": "2022-07-15T22:26:40Z", "endTime": "2022-07-16T22:13:20Z", "impactedLocations": "['us-east1', 'australia-southeast2']", "impactedProducts": "['CloudSQL']", "impactedProductIds": "['hV87iK5DcEXKgWU2kDri']", "startTime": "2022-07-13T12:26:40Z", "nextUpdateTime": "2022-07-13T16:26:40Z", "state": "ACTIVE", "detailedState": "CONFIRMED", "relevance": "RELATED" } } ] }
[実行] をクリックします。Google APIs Explorer がアカウントへのアクセスをリクエストするウィンドウが表示されます。
Google APIs Explorer へのアクセスを許可します。リクエスト本文を含むウィンドウに、成功を示す次のスクリーンショットが表示されます。
数分待ってから、アラートがトリガーされたことを確認します。
- Google Cloud コンソールで、[Cloud Monitoring] > [インシデント] に移動して、アラートを探します。
- アラート ポリシーで使用されている通知チャンネルでアラートを受信したかどうかを確認します。
アラートを再度テストする必要がある場合は、5 分以上待ってからテストしてください。
gcloud の使用
gcloud コマンドを使用して Cloud Logging API を呼び出して、テストログエントリを作成することもできます。
(省略可)現在のプロジェクトを確認します。
gcloud config list
現在のプロジェクトを設定します。
gcloud_name config set project PROJECT_ID
-
gcloud logging write --payload-type=json LOG_NAME '{ "category": "INCIDENT", "relevance": "IMPACTED", "@type": "type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog", "description": "This is a test log entry"}'
数分待ってから、アラートがトリガーされたことを確認します。