本頁說明您可能無法如預期收到通知的原因,並提供可能的解決方法。
未收到通知
如果透過任何已設定的通知管道都未收到通知,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「Logs Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
- 選取適當的 Google Cloud 專案。
查詢通知管道事件的記錄:
- 展開「記錄名稱」選單,然後選取「notification_channel_events」。
- 展開「嚴重程度」選單,然後選取「錯誤」。
- 選用:如要選取自訂時間範圍,請使用時間範圍選取器。
- 點選「執行查詢」
先前的步驟會建立下列查詢:
resource.type:"stackdriver_notification_channel" logName="projects/PROJECT_ID/logs/monitoring.googleapis.com%2Fnotification_channel_events" severity=ERROR
摘要行和
jsonPayload
欄位通常包含失敗資訊。舉例來說,如果發生閘道錯誤,摘要行會顯示「failed with 502 Bad Gateway」。
未收到 Webhook 通知
如果您無法透過已設定的 Webhook 通知管道收到通知,請參閱本節內容。
私人端點
如果您有私人端點,請使用 Pub/Sub 通知,並搭配該通知主題的提取訂閱項目。您無法使用 Webhook 將通知傳送至私人端點。
設定 Pub/Sub 通知管道後,事件通知會傳送至具有身分與存取權管理控制項的 Pub/Sub 佇列。任何可查詢或監聽 Pub/Sub 主題的服務,都能使用這些通知。舉例來說,在 App Engine、Cloud Run 或 Compute Engine 虛擬機器上執行的應用程式,都可以接收這些通知。
如果您使用提取訂閱,系統會向 Google 傳送要求,等待訊息送達。這些訂閱項目需要存取 Google,但不需要防火牆或輸入存取規則。
公開端點
如要找出傳送失敗的原因,請檢查 Cloud Logging 記錄項目中的失敗資訊。
舉例來說,您可以使用記錄檔探索工具,透過下列篩選條件搜尋通知管道資源的記錄項目:
resource.type="stackdriver_notification_channel"
未收到 Pub/Sub 通知
如果無法透過設定的 Pub/Sub 通知管道接收通知,請嘗試下列做法:
確認通知服務帳戶存在。服務帳戶刪除後,系統不會傳送通知。
如要確認服務帳戶是否存在,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「IAM」IAM頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM & Admin」(IAM 與管理) 的結果。
搜尋符合下列命名慣例的服務帳戶:
service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
如果未列出這個服務帳戶,請選取「包含 Google 提供的角色授權」。
如果通知服務帳戶不存在,您必須開始建立 Pub/Sub 通知管道的程序,讓 Monitoring 建立服務帳戶:
-
前往 Google Cloud 控制台的 notifications「Alerting」(警告) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 按一下「編輯通知管道」。
在「Pub/Sub」部分中,按一下「新增」。
如果通知服務帳戶不存在,監控服務會建立一個。「建立 Pub/Sub 管道」對話方塊會顯示通知服務帳戶的名稱。
如不想新增通知管道,請按一下「取消」。 否則,請完成建立通知管道的程序,然後按一下「新增管道」。
授予服務帳戶發布 Pub/Sub 主題的權限:
- 在新瀏覽器分頁中開啟「建立通知管道」文件。
- 選取「Pub/Sub」分頁,然後按照頁面「授權服務帳戶」部分中的步驟操作。
-
確認通知服務帳戶已獲授權,可針對感興趣的 Pub/Sub 主題傳送通知。
如要查看服務帳戶的權限,可以使用Google Cloud 控制台或 Google Cloud CLI 指令:
- Google Cloud 控制台的「IAM」IAM頁面會列出每個服務帳戶的角色。
- Google Cloud 控制台的 Pub/Sub「主題」頁面會列出每個主題。選取主題後,「權限」分頁會列出授予服務帳戶的角色。
如要列出所有服務帳戶及其角色,請執行下列 Google Cloud CLI 指令:
gcloud projects get-iam-policy PROJECT_ID
以下是這項指令的部分回應:
serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com role: roles/monitoring.notificationServiceAgent - members: [...] role: roles/owner - members: - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com role: roles/pubsub.publisher
指令回應只會列出角色,不會列出主題授權。
如要列出特定主題的 IAM 繫結,請執行下列指令:
gcloud pubsub topics get-iam-policy TOPIC
以下是這項指令的回應範例:
bindings: - members: - serviceAccount:service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com role: roles/pubsub.publisher etag: BwXPRb5WDPI= version: 1
如要瞭解如何授權通知服務帳戶,請參閱「授權服務帳戶」。
VM 關機時不會收到通知
如要在虛擬機器 (VM) 關閉時收到通知,請建立運作時間檢查,定期查詢 VM,然後建立快訊政策來監控該運作時間檢查。如果您使用虛擬私有雲 (VPC),可能需要建立私人正常運作時間檢查。
監控 compute.googleapis.com/instance/uptime
指標的快訊政策不會在 VM 關機時通知您。針對這項指標,警報政策只會監控處於 RUNNING
狀態的 VM 執行個體時間序列。如果 VM 處於任何其他狀態 (例如 STOPPED
或 DELETED
),系統就不會監控。如要瞭解 VM 執行個體狀態,請參閱 VM 執行個體生命週期。
未收到要求計數快訊政策的通知
如果監控 serviceruntime.googleapis.com/api/request_count
指標的快訊政策未傳送通知,請確認政策的校正週期不超過 7 小時 30 分鐘。
未收到簡訊通知訊息或驗證碼
如果沒有收到簡訊通知,請確認是否已達到簡訊上限。您可能會在記錄中看到這項錯誤。查看 Denied quota token
的記錄。
一般而言,我們不建議只透過簡訊管道傳送通知。系統會盡力傳送簡訊通知。