使用 sosreport 收集调试信息

Container-Optimized OS 包含 sosreport 实用程序,该实用程序会按需收集信息,帮助您调试 Container-Optimized OS 虚拟机实例中的问题。信息收集后存储在实例的本地文件系统上。Google 不会收集或将此数据存储在其他地方。

如果您因实例问题而向 Google Cloud 支持团队提交支持请求,则可能会要求您提供 sosreport 数据作为调查的一部分。本页面介绍如何收集此信息。

sosreport 的输出在未加密的前提下存储在 .tar.xz 归档中。该归档可能包含个人身份信息 (PII),因为它从许多关键的系统组件(例如 journald)中收集数据。可以在实例上检查该归档,并且大多数内容为纯文本格式。sosreport 工具是开源的,您可以查看其代码

收集 sosreport 数据

如需创建报告,请使用 gcloud compute ssh 命令通过 SSH 登录到相关的虚拟机实例:

gcloud compute ssh [INSTANCE_NAME]

然后,运行以下 sosreport 命令:

sudo sos report --all-logs --batch --tmp-dir=/var
收集 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]