使用 sosreport 收集偵錯資訊

Container-Optimized OS 包含 sosreport 公用程式,可根據需求收集資訊,協助您在 Container-Optimized OS 虛擬機器執行個體中偵錯問題。系統會收集這些資訊,並儲存在執行個體的本機檔案系統中。Google 不會在其他地方收集或儲存這類資料。

如果您因執行個體發生問題,向 Google Cloud 支援團隊建立客服案件,我們可能會要求您提供 sosreport 資料,以便進行調查。本頁面將說明如何收集這項資訊。

sosreport 的輸出內容會以未加密的方式儲存在 .tar.xz 封存檔中。由於這個封存檔會從許多重要系統元件 (例如 journald) 收集資料,因此可能會包含個人識別資訊 (PII)。您可以在執行個體上檢查封存檔案,其中大部分內容都是純文字。sosreport 工具採用開放原始碼,您可以查看程式碼

收集 sosreport 資料

如要產生 sosreport,請按照下列步驟操作:

  1. 使用 gcloud compute ssh 指令連線至執行個體。

    gcloud compute ssh [INSTANCE_NAME] --zone [ZONE] --project [PROJECT_ID]
    
  2. 查看 OS 版本:

    sudo cat /etc/os-release| egrep -w 'NAME|VERSION'
    

    輸出結果會與下列內容相似:

    NAME="Container-Optimized OS"
    VERSION=105
    
  3. 執行與 OS 版本相對應的 sos 指令:

COS 85 以下

執行下列 sosreport 指令來收集記錄:

sudo sosreport --all-logs --batch --tmp-dir=/var

如果先前的 sosreport: command not found 指令失敗,請安裝 sosreport 套件,然後執行先前的 sosreport 指令:

sudo toolbox
sudo apt install sosreport -y

COS 105 以上版本

執行下列 sos 指令來收集記錄:

sudo sos report --all-logs --batch --tmp-dir=/var

如果先前的 sos: command not found 指令失敗,請安裝 sosreport 套件,然後執行先前的 sos report 指令:

sudo toolbox
sudo apt install sosreport -y

Ubuntu-18 以下版本

執行下列 sosreport 指令來收集記錄:

sudo sosreport --all-logs --batch --tmp-dir=/var

如果先前的指令在 sosreport: command not found 中失敗,請安裝 sosreport 套件,然後執行先前的 sosreport 指令:

sudo apt install sosreport

Ubuntu-20 以上版本

執行下列 sos 指令來收集記錄:

sudo sos report --all-logs --batch --tmp-dir=/var

如果先前的 sos: command not found 指令失敗,請安裝 sosreport 套件,然後執行先前的 sos report 指令:

sudo apt install sosreport

您可以將不同的目錄傳遞至 --tmp-dir 選項,藉此變更報表的儲存目錄。您也可以在執行個體上編輯 /etc/sos.conf,變更指令的預設行為。

輸出內容會儲存在您使用 --tmp-dir 選項指定的目錄中 .tar.xz 檔案中。STDOUT 會顯示 .tar.xz 檔案的位置和總和檢查碼。

Your sosreport has been generated and saved in:
  /var/sosreport-cos-20181106231224.tar.xz

The checksum is: 5a8b97c6020346a688254c8b04ef86ec

查看收集的資料

報表由 root 擁有,其他使用者無法讀取。請使用下列指令將擁有者變更為目前的使用者,並讓您能夠讀取該檔案。請勿將其設為可供所有人閱讀。

TARBALL=[PATH/TO/TARBALL]
sudo chown $(whoami) $TARBALL
chmod +r $TARBALL

接著,如果您想查看節點上的報表內容,可以執行下列指令來擷取報表:

tar xvf $TARBALL

個別報表檔案現在會與 .tar.xz 位於同一個目錄中。您可以使用 less 等指令查看記錄,也可以使用 grep 等指令在記錄中尋找資訊。

下載報告

如要將報表下載至本機電腦,請使用 gcloud compute scp 指令:

gcloud compute scp $(whoami)@[INSTANCE_NAME]:[PATH/TO/FILE] [LOCAL/PATH/TO/DIRECTORY]