搭配使用 Cloud Logging 與 Container-Optimized OS

Container-Optimized OS 內含記錄代理程式,可將部分系統和容器記錄匯出至 Cloud Logging。在 Container-Optimized OS 101 之前,以 x86 為基礎的 Container-Optimized OS 映像檔使用以 fluentd 為基礎的容器化記錄代理程式。Container-Optimized OS 105 開始出貨時,採用了替代記錄代理程式實作項目 fluent-bit。從 Container-Optimized OS 109 開始,fluent-bit 記錄代理程式為預設選項。舊版記錄代理程式 fluentd 將在 Container-Optimized OS 113 中移除。

所有版本的 Arm 架構 Container-Optimized OS 映像檔都會隨附 fluent-bit 記錄代理程式。

啟用記錄代理程式

記錄代理程式預設為停用。建立新執行個體或更新現有執行個體時,即可啟用這項功能。

存取條件

Cloud Logging 提供 IAM 角色,可用於授予適當的存取權。如要在專案中查看記錄,您必須具備 roles/logging.viewer 角色,且應用程式必須有權寫入記錄。如要授予這項權限,請為應用程式的服務帳戶指派 IAM 角色 roles/logging.logWriter

如要進一步瞭解權限和角色,請參閱預先定義的角色

建立啟用記錄代理程式的執行個體

控制台

如要在 Container-Optimized OS 上執行 Compute Engine 執行個體,並啟用 fluent-bit 記錄代理程式,請執行下列操作:

  1. 在 Cloud de Confiance 控制台中開啟 Compute Engine 執行個體建立頁面。

    建立新的 Compute Engine 執行個體

  2. 為您的執行個體指定名稱

  3. 在「Boot disk」(開機磁碟) 區段中,選取 Container-Optimized OS 映像檔。

  4. 按一下「管理、安全性、磁碟、網路、單獨租用」,即可展開其他選項。

  5. 在「管理」分頁標籤下方,捲動至「中繼資料」部分。新增中繼資料項目,將「Key」(鍵) 設為 google-logging-enabled,並將「Value」(值) 設為 true

  6. 視需要指定其他選項。詳情請參閱「建立及設定執行個體」。

  7. 按一下 [Create] (建立) 以建立並啟動執行個體。

gcloud

如要在 Container-Optimized OS 上執行 Compute Engine 執行個體,並啟用記錄代理程式,請使用 gcloud compute instances create 指令,並在中繼資料中加入 google-logging-enabled=true。例如:

gcloud compute instances create instance-name \
    --image image-name \
    --image-project cos-cloud \
    --zone compute-zone \
    --metadata google-logging-enabled=true

更改下列內容:

  • instance-name:VM 執行個體的名稱。
  • image-name:執行個體的 Container-Optimized OS 映像檔名稱。例如:--image=cos-113-18244-85-29
  • compute-zone:執行個體的運算可用區

如要進一步瞭解 gcloud 指令,請參閱 gcloud compute instances create 參考文件。如要進一步瞭解如何建立 Container-Optimized OS 執行個體,請參閱建立及設定執行個體

選取記錄代理程式

以 x86 為基礎的 Container-Optimized OS 105 和 109 映像檔會隨附兩種記錄代理程式實作方式:fluentd (舊版) 和 fluent-bit。Container-Optimized OS 105 預設使用 fluentd,Container-Optimized OS 109 則預設使用 fluent-bit。您可以使用 google-logging-use-fluentbit 中繼資料項目變更預設行為。

如要在 Container-Optimized OS 105 上使用 fluent-bit 記錄代理程式,請將 google-logging-use-fluentbit 值設為 true

如要在 Container-Optimized OS 109 上使用 fluentd 記錄代理程式,請將 google-logging-use-fluentbit 值設為 false

在專案中繼資料中啟用記錄代理程式

里程碑 97 開始,您可以在專案中繼資料中啟用記錄:

  gcloud compute project-info add-metadata \
    --metadata google-logging-enabled=true

存取記錄檔

控制台

  1. 前往「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體頁面

  2. 按一下要存取記錄的 Container-Optimized OS 執行個體名稱。

  3. 按一下「記錄」專區下方的「Cloud Logging」。

  4. 系統會開啟指定執行個體的 Logs Explorer。詳情請參閱「使用 Logs Explorer」。

gcloud

如要存取記錄,請使用 gcloud logging read 指令。例如:

gcloud logging read \
"resource.type=gce_instance AND resource.labels.instance_id=instance-id" \
    --limit 10 \
    --format json \
    --freshness 30d

更改下列內容:

  • instance-id:VM 執行個體的 ID。

這項指令會嘗試從 VM 執行個體讀取記錄 (instance-id),並將記錄限制為過去 30 天內最多 10 筆,且採用 JSON 格式。

如要進一步瞭解 gcloud 指令,請參閱 gcloud logging read 參考文件。