本文說明如何設定、自訂及測試服務健康狀態事件的快訊。
Personalized Service Health 會整合 Cloud Monitoring 記錄快訊,方便您設定及接收快訊。您可以針對下列情況建立通知:
- 回報新事件時。
- 現有事件更新時,例如支援團隊傳送新訊息。 Google Cloud
- 當特定 Google Cloud 產品或地點 (例如區域) 的事件建立或更新時。
- 更新現有事件的特定詳細資料,例如狀態和關聯性。
由於這些通知使用記錄快訊,因此每則通知都會與 Monitoring 事件相關聯。每則通知都會提供事件頁面的連結,以及服務健康狀態資訊主頁的直接連結。進一步瞭解如何調查事件。
設定快訊後,每當符合快訊政策條件時,您就會收到通知。這些通知受監控限制約束,例如每個專案每天每項政策最多可發出 20 則快訊。
下列各節說明如何設定記錄快訊政策,並提供常見快訊情境的範例。記錄檔快訊會透過通知管道傳送,支援多種整合方式,包括電子郵件、簡訊、Pub/Sub、Webhook、Slack 和 PagerDuty。
如要將快訊轉送至上述選項以外的目的地,請考慮使用 Webhook。舉例來說,您可以設定 ServiceNow 的 Webhook。詳情請參閱 ServiceNow 說明文件中的「Configure webhook in Google Cloud」。
快訊通知格式
警示通知格式會因通知管道而異。
電子郵件
如果將快訊設定為傳送電子郵件,當符合快訊條件時,系統會使用 alerting-noreply@google.com 這個地址,將郵件傳送至您選擇的電子郵件地址。
Slack
如果將自訂通知設定為發布至 Slack,當事件發生時,您選取的管道就會顯示 Cloud Monitoring 應用程式的訊息。
設定快訊政策
快訊會使用快訊政策,說明快訊發送時機及通知方式。
您可以在服務健康狀態資訊主頁中設定快訊政策,也可以使用 Google Cloud CLI 設定。
快訊政策需要 Cloud Monitoring 通知管道,用於定義快訊傳送位置。如果沒有通知管道,可以在 Google Cloud 控制台或使用 Monitoring API 建立。
在 Service Health 資訊主頁中
請參閱快速入門導覽課程。
使用 gcloud CLI
如要使用 gcloud CLI 設定快訊政策,請按照下列步驟操作:
取得通知管道 ID。
a. 列出通知管道 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 是通知管道 ID,您在上一個步驟中已使用清單指令擷取該 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
:電子郵件通知的格式。您可以使用Markdown 變數替代,將labelExtractors
做為變數。如要自訂這些變數,請參閱這份指南。
如要瞭解如何自訂快訊,請參閱快訊政策和條件範例。
測試快訊
如要測試快訊,請使用 Cloud Logging 的範例測試記錄。測試記錄會顯示您先前設定的快訊邏輯。
使用 Google Cloud 控制台
請執行下列步驟:
- 前往 entries:write 方法的參考資料頁面,瞭解如何將記錄項目寫入 Cloud Logging。系統會顯示視窗,讓您試用該方法。
- 在要求主體中,將 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" } } ] }
按一下 [Execute] (執行)。畫面會顯示視窗,要求您授予 Google APIs Explorer 帳戶存取權。
允許存取 Google APIs Explorer。要求主體的視窗會顯示以下螢幕截圖,表示成功。
稍候幾分鐘,然後確認是否已觸發快訊。
如要再次測試警報,請至少等待 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"}'
稍候幾分鐘,然後確認是否已觸發快訊。