Collecter des informations de débogage à l'aide de sosreport

Container-Optimized OS inclut l'utilitaire sosreport qui collecte des informations à la demande pour vous aider à résoudre les problèmes liés à une instance de machine virtuelle Container-Optimized OS. Les informations sont collectées et stockées localement sur le système de fichiers de l'instance. Google ne collecte ni ne stocke ces données ailleurs.

Si vous ouvrez une demande d'assistance auprès de l'assistanceGoogle Cloud en raison de problèmes liés à votre instance, vous devrez peut-être fournir les données sosreport dans le cadre de l'enquête. Cette page vous explique comment collecter ces informations.

Le résultat de sosreport est stocké sans chiffrement dans une archive .tar.xz. L'archive peut contenir des informations personnelles, car elle collecte des données à partir de nombreux composants critiques du système (par exemple, journald). L'archive peut être inspectée sur l'instance, et la plupart du contenu est en texte brut. L'outil sosreport est Open Source, et vous pouvez examiner son code.

Collecter les données sosreport

Pour générer un sosreport:

  1. Connectez-vous à l'instance à l'aide de la commande gcloud compute ssh.

    gcloud compute ssh [INSTANCE_NAME] --zone [ZONE] --project [PROJECT_ID]
    
  2. Vérifiez la version de l'OS:

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

    Le résultat ressemble à ce qui suit :

    NAME="Container-Optimized OS"
    VERSION=105
    
  3. Exécutez la commande sos correspondant à votre version d'OS:

COS 85 et versions antérieures

Exécutez la commande sosreport suivante pour collecter les journaux:

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

Si la commande précédente échoue avec sosreport: command not found, installez le package sosreport, puis exécutez la commande sosreport précédente:

sudo toolbox
sudo apt install sosreport -y

COS 105 et versions ultérieures

Exécutez la commande sos suivante pour collecter les journaux:

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

Si la commande précédente échoue avec sos: command not found, installez le package sosreport, puis exécutez la commande sos report précédente:

sudo toolbox
sudo apt install sosreport -y

Ubuntu 18 et versions antérieures

Exécutez la commande sosreport suivante pour collecter les journaux:

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

Si la commande précédente échoue avec sosreport: command not found, installez le package sosreport, puis exécutez la commande sosreport précédente:

sudo apt install sosreport

Ubuntu 20 et versions ultérieures

Exécutez la commande sos suivante pour collecter les journaux:

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

Si la commande précédente échoue avec sos: command not found, installez le package sosreport, puis exécutez la commande sos report précédente:

sudo apt install sosreport

Vous pouvez modifier le répertoire dans lequel le rapport est stocké en transmettant un autre répertoire à l'option --tmp-dir. Vous pouvez également modifier le comportement par défaut de la commande en modifiant /etc/sos.conf sur l'instance.

Le résultat est stocké dans un fichier .tar.xz dans le répertoire que vous spécifiez à l'aide de l'option --tmp-dir. L'emplacement et la somme de contrôle du fichier .tar.xz sont affichés sur STDOUT.

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

The checksum is: 5a8b97c6020346a688254c8b04ef86ec

Afficher les données collectées

Le rapport appartient à root et n'est pas lisible par les autres utilisateurs. Exécutez les commandes suivantes pour remplacer le propriétaire par votre utilisateur actuel et pour le rendre lisible par vous. Ne le rendez pas lisible publiquement.

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

Ensuite, si vous souhaitez afficher le contenu du rapport sur le nœud, vous pouvez l'extraire en exécutant la commande ci-dessous :

tar xvf $TARBALL

Les fichiers de rapport individuels sont désormais disponibles dans un répertoire au même emplacement que le .tar.xz. Vous pouvez afficher les journaux à l'aide de commandes telles que less, et vous pouvez utiliser des commandes telles que grep pour y rechercher des informations.

Télécharger le rapport

Pour télécharger le rapport sur votre ordinateur local, utilisez la commande gcloud compute scp :

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