透過 Cloud Logging 設定快訊

本文說明如何設定、自訂及測試服務健康狀態事件的快訊。

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 設定快訊政策,請按照下列步驟操作:

  1. 取得通知管道 ID。

    a. 列出通知管道 ID

    gcloud config set project PROJECT_ID gcloud beta monitoring channels list
    

    b. 找出含有 projects/PROJECT_ID/notificationChannels/ 的項目。 這些項目是通知管道 ID。

  2. 建立 policy.json 檔案,並加入以下內容:

    • 通知會顯示 ALERT_NAME。範例:「Google Cloud SQL 事件」

    • ALERT_CONDITION 定義何時發出警示。

      • 定義條件時,請使用 Google Cloud productslocations 中的值。
      • 快訊觸發條件範例:

        快訊觸發條件 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" ],
    }
    
  3. 建立 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 控制台

請執行下列步驟:

  1. 前往 entries:write 方法的參考資料頁面,瞭解如何將記錄項目寫入 Cloud Logging。系統會顯示視窗,讓您試用該方法。
  2. 在要求主體中,將 PROJECT_ID 變更為您自己的專案。
  3. 視要測試的快訊條件而定,變更要求主體中的任何 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"
          }
        }
      ]
    }
    
  4. 按一下 [Execute] (執行)。畫面會顯示視窗,要求您授予 Google APIs Explorer 帳戶存取權。

  5. 允許存取 Google APIs Explorer。要求主體的視窗會顯示以下螢幕截圖,表示成功。

    200 則訊息

  6. 稍候幾分鐘,然後確認是否已觸發快訊。

    1. 在 Google Cloud 控制台中,依序前往「Cloud Monitoring」>「事件」,然後找出快訊。
    2. 檢查您是否在快訊政策使用的通知管道中收到快訊。

如要再次測試警報,請至少等待 5 分鐘。

使用 gcloud

您也可以使用 gcloud 指令呼叫 Cloud Logging API,建立測試記錄項目。

  1. (選用) 檢查目前的專案。

    gcloud config list
    
  2. 設定目前專案。

    gcloud_name config set project PROJECT_ID
    
  3. 撰寫測試記錄項目

    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"}'
    
  4. 稍候幾分鐘,然後確認是否已觸發快訊。