sosreport를 사용하여 디버깅 정보 수집

Container-Optimized OS에는 Container-Optimized OS 가상 머신 인스턴스에서 문제를 디버그하는 데 도움이 되는 주문형 정보를 수집하는 sosreport 유틸리티가 포함되어 있습니다. 정보는 인스턴스의 파일 시스템에 로컬로 수집 및 저장됩니다. 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]