使用 sosreport 收集偵錯資訊

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

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

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

收集 sosreport 資料

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

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

    gcloud compute ssh [INSTANCE_NAME] --zone [ZONE] --project [PROJECT_ID]
    
  2. 查看作業系統版本:

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

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

    NAME="Container-Optimized OS"
    VERSION=105
    
  3. 執行與您作業系統版本對應的 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 檔案的形式呈現。.tar.xz 檔案的位置和總和檢查碼會顯示在 STDOUT 上。

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]