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

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

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

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

sosreport データの収集

レポートを作成するには、gcloud compute ssh コマンドを使用して、関連する仮想マシン インスタンスに SSH 接続します。

gcloud compute ssh [INSTANCE_NAME]

そのうえで、次の sosreport コマンドを実行します。

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

別のディレクトリを --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]