Recoger información de depuración mediante sosreport

Container-Optimized OS incluye la utilidad sosreport, que recoge información bajo demanda para ayudarte a depurar problemas en una instancia de máquina virtual de Container-Optimized OS. La información se recoge y se almacena de forma local en el sistema de archivos de la instancia. Google no recoge ni almacena estos datos en ningún otro lugar.

Si abres un caso de asistencia con el Google Cloud equipo de Asistencia debido a problemas con tu instancia, es posible que se te pida que proporciones los sosreport datos como parte de la investigación. En esta página se explica cómo recoger esta información.

La salida de sosreport se almacena sin cifrar en un archivo .tar.xz. El archivo puede contener información personal identificable (IPI), ya que recoge datos de muchos componentes críticos del sistema (por ejemplo, journald). El archivo se puede inspeccionar en la instancia y la mayor parte del contenido está en texto sin formato. La sosreportherramienta es de código abierto y puedes revisar su código.

Recoger los datos de sosreport

Para generar un sosreport, sigue estos pasos:

  1. Conéctate a la instancia mediante el comando gcloud compute ssh.

    gcloud compute ssh [INSTANCE_NAME] --zone [ZONE] --project [PROJECT_ID]
    
  2. Comprueba la versión del SO:

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

    El resultado debería ser similar al siguiente:

    NAME="Container-Optimized OS"
    VERSION=105
    
  3. Ejecuta el comando sos que corresponda a tu versión del SO:

COS 85 y versiones anteriores

Ejecuta el siguiente comando sosreport para recoger los registros:

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

Si el comando anterior falla y muestra sosreport: command not found, instala el paquete sosreport y, a continuación, ejecuta el comando sosreport anterior:

sudo toolbox
sudo apt install sosreport -y

COS 105 y versiones posteriores

Ejecuta el siguiente comando sos para recoger los registros:

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

Si el comando anterior falla y muestra sos: command not found, instala el paquete sosreport y, a continuación, ejecuta el comando sos report anterior:

sudo toolbox
sudo apt install sosreport -y

Ubuntu 18 y versiones anteriores

Ejecuta el siguiente comando sosreport para recoger los registros:

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

Si el comando anterior falla y muestra sosreport: command not found, instala el paquete sosreport y, a continuación, ejecuta el comando sosreport anterior:

sudo apt install sosreport

Ubuntu 20 y versiones posteriores

Ejecuta el siguiente comando sos para recoger los registros:

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

Si el comando anterior falla y muestra sos: command not found, instala el paquete sosreport y, a continuación, ejecuta el comando sos report anterior:

sudo apt install sosreport

Para cambiar el directorio en el que se almacena el informe, pasa un directorio diferente a la opción --tmp-dir. También puedes cambiar el comportamiento predeterminado del comando editando /etc/sos.conf en la instancia.

El resultado se almacena en un archivo .tar.xz del directorio que especifiques con la opción --tmp-dir. La ubicación y la suma de comprobación del archivo .tar.xz se muestran en STDOUT.

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

The checksum is: 5a8b97c6020346a688254c8b04ef86ec

Ver los datos recogidos

El informe es propiedad de root y otros usuarios no pueden leerlo. Usa los siguientes comandos para cambiar el propietario al usuario actual y hacer que tú puedas leerlo. No lo hagas legible para todo el mundo.

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

Después, si quieres ver el contenido del informe en el nodo, puedes extraerlo ejecutando el siguiente comando:

tar xvf $TARBALL

Los archivos de informes individuales ahora están disponibles en un directorio en la misma ubicación que .tar.xz. Puedes ver los registros con comandos como less o usar comandos como grep para buscar información en ellos.

Descarga el informe

Para descargar el informe en tu máquina local, usa el gcloud compute scp comando:

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