Recolher informações de depuração com o sosreport

O SO otimizado para contentores inclui o utilitário sosreport, que recolhe informações a pedido para ajudar a depurar problemas numa instância de máquina virtual do SO otimizado para contentores. As informações são recolhidas e armazenadas localmente no sistema de ficheiros da instância. A Google não recolhe nem armazena estes dados noutro local.

Se abrir um registo de apoio técnico com o Google Cloud apoio técnico devido a problemas com a sua instância, pode ser-lhe pedido que faculte os sosreport dados como parte da investigação. Esta página mostra-lhe como recolher estas informações.

A saída de sosreport é armazenada sem encriptação num arquivo .tar.xz. O arquivo pode conter informações de identificação pessoal (IIP), uma vez que recolhe dados de muitos componentes críticos do sistema (por exemplo, journald). O arquivo pode ser inspecionado na instância e a maioria do conteúdo está em texto simples. A ferramenta sosreport é de código aberto e pode rever o respetivo código.

Recolher os dados do sosreport

Para gerar um sosreport:

  1. Associe-se à instância através do comando gcloud compute ssh.

    gcloud compute ssh [INSTANCE_NAME] --zone [ZONE] --project [PROJECT_ID]
    
  2. Verifique a versão do SO:

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

    O resultado é semelhante ao seguinte:

    NAME="Container-Optimized OS"
    VERSION=105
    
  3. Execute o comando sos que corresponde à sua versão do SO:

COS 85 e anterior

Execute o seguinte comando sosreport para recolher os registos:

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

Se o comando anterior falhar com sosreport: command not found, instale o pacote sosreport e, em seguida, execute o comando sosreport anterior:

sudo toolbox
sudo apt install sosreport -y

COS 105 e posterior

Execute o seguinte comando sos para recolher os registos:

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

Se o comando anterior falhar com sos: command not found, instale o pacote sosreport e, em seguida, execute o comando sos report anterior:

sudo toolbox
sudo apt install sosreport -y

Ubuntu-18 e anterior

Execute o seguinte comando sosreport para recolher os registos:

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

Se o comando anterior falhar com sosreport: command not found, instale o pacote sosreport e, em seguida, execute o comando sosreport anterior:

sudo apt install sosreport

Ubuntu-20 e posterior

Execute o seguinte comando sos para recolher os registos:

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

Se o comando anterior falhar com sos: command not found, instale o pacote sosreport e, em seguida, execute o comando sos report anterior:

sudo apt install sosreport

Pode alterar o diretório onde o relatório é armazenado transmitindo um diretório diferente à opção --tmp-dir. Também pode alterar o comportamento predefinido do comando editando /etc/sos.conf na instância.

O resultado é armazenado num ficheiro .tar.xz no diretório que especificar através da opção --tmp-dir. A localização e a soma de verificação do ficheiro .tar.xz são apresentadas em STDOUT.

Your sosreport has been generated and saved in:
  /var/sosreport-cos-20181106231224.tar.xz

The checksum is: 5a8b97c6020346a688254c8b04ef86ec

Ver os dados recolhidos

O relatório é propriedade de root e não é legível por outros utilizadores. Use os seguintes comandos para alterar o proprietário para o seu utilizador atual e torná-lo legível para si. Não o torne legível para o mundo.

TARBALL=[PATH/TO/TARBALL]
sudo chown $(whoami) $TARBALL
chmod +r $TARBALL

Em seguida, se quiser ver o conteúdo do relatório no nó, pode extraí-lo executando o comando abaixo:

tar xvf $TARBALL

Os ficheiros de relatórios individuais estão agora disponíveis num diretório na mesma localização que o ficheiro .tar.xz. Pode ver os registos através de comandos como less ou usar comandos como grep para encontrar informações nos mesmos.

Transfira o relatório

Para transferir o relatório para o seu computador local, use o comando:gcloud compute scp

gcloud compute scp $(whoami)@[INSTANCE_NAME]:[PATH/TO/FILE] [LOCAL/PATH/TO/DIRECTORY]