本文說明如何排解 VM 管理工具的問題。
如要進一步瞭解 VM 管理員,請參閱這篇文章。
事前準備
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
總覽
如要排解問題,請先確認 VM 管理工具設定正確無誤。如果設定正確但仍有問題,請查看記錄。查看記錄時,您可以找出 VM 或 VM 管理員工作流程的問題,例如指令或指令碼中的錯誤,並加以隔離和解決。
您可以從記錄收集下列資訊:
- VM 記錄的任何錯誤訊息或警告。這項功能非常適合用來找出 VM 層級的錯誤,或是 VM 上執行的其他服務所發生的錯誤。如要查看這些記錄,請參閱「檢查 Cloud Logging」。
- OS 設定代理程式記錄的詳細偵錯資訊。這有助於找出 VM 管理工具執行的任何作業問題。如要檢查 OS 設定代理程式的偵錯記錄,請參閱「檢查偵錯記錄」。
找出問題或錯誤後,您也可以查看「常見錯誤」一節,瞭解可能的修正方式。
檢查 Cloud Logging
您可以透過各項功能的 Google Cloud 控制台快速連結查看記錄。
OS 修補程式
- 前往 Google Cloud 控制台的「Patch」(修補程式) 頁面,然後點選「Jobs run」(工作執行) 分頁標籤。
- 按一下要偵錯的修補程式作業名稱。
- 前往「Updated VM instances」(已更新的 VM 執行個體) 區段。
- 如要查看特定 VM 的記錄,請在「記錄」下方點選「查看」。
OS 政策
這項程序適用於 OS 政策。 如要瞭解訪客政策 (Beta 版),請參閱下一節的偵錯記錄選項。
- 前往 Google Cloud 控制台的「OS policies」(作業系統政策) 頁面,然後點選「VM instances」(VM 執行個體) 分頁標籤。
- 按一下要偵錯的 VM 名稱。
- 前往「政策」部分。
- 在「記錄」下方,按一下「查看」。
OS 政策自動化調度管理工具
- 在 Google Cloud 控制台中,前往「OS policies」(作業系統政策) 頁面的「OS policy orchestrators」(作業系統政策協調器) 分頁標籤。
- 按一下要偵錯的 OS 政策自動化調度管理工具名稱。
- 前往「記錄」部分,並驗證記錄項目。
檢查偵錯記錄
您可以為 OS 設定代理程式啟用偵錯功能,並查看偵錯記錄,找出任何 VM 管理工具功能的問題。
啟用 OS 設定代理程式的偵錯記錄功能
您可以在 VM 執行個體或專案中設定
osconfig-log-level=debug
中繼資料,啟用偵錯記錄。如要在 VM 上啟用偵錯記錄,請完成下列步驟:
主控台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
按一下要設定中繼資料值的 VM 名稱。
在「執行個體詳細資料」頁面中,按一下「編輯」即可編輯設定。
在「Custom metadata」(自訂中繼資料) 下新增下列中繼資料項目:
鍵:
osconfig-log-level
值:debug
按一下「儲存」,將變更套用至 VM。
gcloud
使用
instances add-metadata
指令並加上--metadata=osconfig-log-level=debug
旗標。gcloud compute instances add-metadata VM_NAME \ --metadata=osconfig-log-level=debug
將您的 VM 名稱替換為
VM_NAME
。REST
如要設定執行個體中繼資料,請按照設定執行個體中繼資料一節中的 API 指示操作。
中繼資料屬性必須包含下列鍵/值組合:
鍵:
osconfig-log-level
值:debug
查看偵錯記錄
啟用偵錯記錄後,OS Config 代理程式會將記錄項目寫入 Cloud Logging 和序列埠主控台。
在 VM 上啟用偵錯記錄後,OS 設定代理程式大約需要十分鐘,才會開始在 Cloud Logging 中寫入偵錯訊息。如要縮短等待時間,請重新啟動代理程式或重新啟動 VM。如要進一步瞭解 Cloud Logging,請參閱「查看 Cloud Logging 記錄」。
如要查看偵錯記錄,可以使用下列選項:
- Cloud Logging:使用 Google Cloud 控制台或 Google Cloud CLI
序列埠控制台
主控台
前往Google Cloud 控制台的「Logging」>「Logs Explorer」(記錄探索工具) 頁面:
視需要選取頁面頂端的現有 Google Cloud 專案,或建立新專案。
在「資源」下拉式清單中,選取「VM 執行個體」。畫面上會顯示可用 VM 清單 (
instance_id
)。按一下要查看的 VM。
按一下「新增」。
在「記錄檔名稱」下拉式清單中,選取「OSConfigAgent」。
按一下「新增」。
您的查詢應類似於下列內容:
resource.type="gce_instance" resource.labels.instance_id="INSTANCE_ID" logName="projects/PROJECT_ID/logs/OSConfigAgent"
點選「執行查詢」
gcloud
gcloud logging read "resource.type=gce_instance AND logName=projects/PROJECT_ID/logs/OSConfigAgent"
將
PROJECT_ID
替換為您的專案 ID。序列埠
如要查看序列埠控制台的偵錯記錄資訊,請參閱「查看序列埠輸出內容」。
常見錯誤
驗證問題
如要使用 VM 管理工具,必須符合下列條件:
- 附加的服務帳戶。VM 管理工具會使用這個服務帳戶簽署 API 服務的要求。
- 確認附加的服務帳戶具有
roles/logging.logWriter
角色,可將記錄寫入 Logging API。 - Google Cloud OS 設定服務代理程式。 VM 管理員會在啟動修補程式作業時建立這個服務代理程式,並授予 Cloud OS 設定服務代理程式角色。如要建立 OS 政策,不必設定這個服務代理。
如果您使用 VM 管理工具,但沒有附加服務帳戶或 Google Cloud OS Config Service Agent,在處理修補程式作業時可能會看到下列錯誤:
Service account permissions are missing. Verify that the service account has the correct permissions and try again.
OSConfigAgent Error main.go:88: error getting token from metadata: metadata: GCE metadata "instance/service-accounts/default/identity?audience=osconfig.googleapis.com&format=full" not defined
message: "Error running OPERATION_NAME: error calling OPERATION_NAME: code: "PermissionDenied", message: "The caller does not have permission", details: []"
驗證問題也可能導致 VM 執行個體無法顯示在修補程式資訊主頁中。
如要解決這些問題,請嘗試下列一或多個做法:
- 確認所有 VM 都附加了服務帳戶。
確認 Google Cloud OS 設定服務代理已設定 Cloud OS 設定服務代理角色 (
roles/osconfig.serviceAgent
)。gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com' \ --role='roles/osconfig.serviceAgent'
更改下列內容:
PROJECT_ID
:您的專案 IDPROJECT_NUMBER
:您的專案編號
排除修補程式更新套件時發生錯誤
在修補程式工作中排除套件時,如果為套件名稱指定萬用字元或特殊字元,OS 修補程式管理功能可能會忽略清單,並更新所有套件。
如要解決這個問題,請將 OS 設定代理程式更新至
20220829.00
版,並使用正斜線 (/
) 包住套件名稱。在下列範例中,OS 修補程式管理功能會排除套件名稱前置字元為
google-
的yum
套件。gcloud compute os-config patch-jobs execute --instance-filter-all
--yum-excludes=/google-.*/後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-08 (世界標準時間)。
-