sosreport を使用してデバッグ情報を収集する

Container-Optimized OS には sosreport ユーティリティが含まれています。sosreport は、COS 仮想マシン インスタンスの問題のデバッグに役立つ情報を収集します。この情報は、COS インスタンスのファイルシステムにローカルに収集され、保存されます。Google がこのデータを他の場所で収集、または保存することはありません。

インスタンスの問題により Google Cloud サポートでサポートケースを開始すると、調査の一環として sosreport データを提供するように求められることがあります。このページでは、この情報を収集する方法について説明します。

sosreport の出力は、暗号化されずに .tar.xz アーカイブに保存されます。アーカイブには、多くの重要なシステム コンポーネント(journald など)からデータが収集されるため、個人を特定できる情報(PII)が含まれている場合があります。アーカイブはインスタンスで検査でき、ほとんどのコンテンツはプレーン テキストです。sosreport ツールはオープンソースであり、コードを確認できます。

sosreport データの収集

sosreport コマンドは、COS マイルストーン 69 以降に含まれています。レポートを作成するには、sosreport コマンドを実行します。別のディレクトリを --tmp-dir オプションに渡すことで、レポートが保存されているディレクトリを変更できます。インスタンスの /etc/sos.conf を編集して、コマンドのデフォルトの動作を変更することもできます。

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

出力は、--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]