從里程碑 77 開始,Container-Optimized OS 就包含 Node Problem Detector 代理程式。您可以使用這項功能監控 COS 執行個體的系統健康狀態。節點問題偵測工具會監控執行個體的健康狀態,並將與健康狀態相關的指標回報給 Cloud Monitoring,包括容量和錯誤指標,您可以透過 Google Cloud Observability 資訊主頁將這些指標以視覺化方式呈現。您可以免費收集預設設定的指標。Google 會使用匯總指標來瞭解節點問題,並改善 Container-Optimized OS 的可靠性。
代理程式已預先設定要匯出的指標組合。目前不支援為內建代理程式自訂報表指標。Node Problem Detector 是開放原始碼軟體。您可以在各自的原始碼存放區中查看原始碼和設定。
啟用健康狀態監控功能
根據預設,Node Problem Detector 代理程式會在啟動時停用。您可以使用下列方法啟用這項功能:
使用開機指令碼
您可以使用開機指令碼啟用 Node Problem Detector。
使用 cloud-init
cloud-init
範例說明瞭設定 Container-Optimized OS 執行個體的基本概念。您可以使用 cloud-init
啟用健康狀態監控功能,請參考以下 cloud-config
範例:
#cloud-config
runcmd:
- systemctl start node-problem-detector
使用中繼資料
在 Container-Optimized OS Milestone 88 以上版本中,您也可以在自訂中繼資料專區中將 google-monitoring-enabled
的值設為 true
,藉此啟用節點問題偵測器。
如要在建立執行個體時啟用監控功能,請按照下列步驟操作:
gcloud compute instances create VM_NAME \ --image=IMAGE \ --image-project=cos-cloud \ --metadata=google-monitoring-enabled=true
更改下列內容:
VM_NAME
:新 VM 的名稱IMAGE
:公開 Container-Optimized OS 映像檔的特定版本。例如:--image=cos-113-18244-85-29
。
如要在現有執行個體中啟用監控功能,請按照下列步驟操作:
gcloud compute instances add-metadata VM_NAME \ --metadata=google-monitoring-enabled=true
將 VM_NAME
替換為 VM 名稱。
從 里程碑 97 開始,您可以在專案中繼資料中啟用監控功能:
gcloud compute project-info add-metadata \
--metadata google-monitoring-enabled=true
執行後,系統會啟用 node-problem-detector 服務。
使用使用者定義的訪客政策
Container-Optimized OS 包含 OS 設定代理程式,可使用 OS 系統公用程式維護訪客政策中指定的 VM 狀態。如要進一步瞭解訪客政策,請參閱「啟用 OS Config 代理程」和「建立訪客政策」。以下訪客政策會在所有執行個體上啟用 Node 問題偵測工具代理程式。
recipes:
- name: recipe-enable-npd
desiredState: INSTALLED
installSteps:
- scriptRun:
interpreter: SHELL
script: |-
#!/bin/bash
systemctl start node-problem-detector
查看收集的指標
節點問題偵測器會針對受控的 Compute Engine 執行個體資源,回報一長串指標。指標會記錄在監控指標清單中,並在前面加上 compute.googleapis.com/guest/
。您可以使用 Monitoring Metrics Explorer 查看收集的指標:
在 Google Cloud 控制台中,前往「Monitoring」或使用下列按鈕:
在「Monitoring」導覽窗格中,按一下「Metrics Explorer」。
在資源類型中,選取「Compute Engine VM 執行個體」。
選取指標,例如「問題數」。
畫面右側應會顯示圖表和統計資料。如要查看特定 Container-Optimized OS 執行個體的結果,請將篩選器設為
"instance_id=[INSTANCE_ID]"
,並將 [INSTANCE_ID] 替換為所需執行個體的 ID。
停用健康狀態監控
如要停用已透過 cloud-config
或啟動指令碼啟用的服務,請移除 systemctl start node-problem-detector
步驟,然後重新啟動 Container-Optimized OS 執行個體。如果是透過中繼資料啟用,請確認 google-monitoring-enabled
鍵已設為 false
。