Visualiza la salida de los puertos en serie

Una instancia de Compute Engine tiene cuatro puertos en serie virtuales. El sistema operativo de la instancia, el BIOS y otras entidades a nivel del sistema a menudo escriben la salida en los puertos en serie, lo que resulta útil para solucionar fallas, arranques fallidos o problemas de inicio o de apagado.

En esta página, se describen métodos para ver las salidas de puerto en serie, incluido el uso de Cloud Logging para conservarlas, incluso cuando se detiene una instancia. Si necesitas enviar comandos a un puerto en serie mientras se ejecuta una instancia, consulta Interactúa con la consola en serie.

Para ver la salida del puerto en serie de una instancia de procesamiento en ejecución, usa la Google Cloud consola, gcloud CLI, o REST. Estos métodos solo proporcionan el 1 MB más reciente de salida por puerto. Para ver una salida que supere 1 MB por puerto o ver la salida de instancias detenidas, usa Cloud Logging.

Antes de comenzar

  • Si deseas registrar la salida del puerto en serie en Cloud Logging, familiarízate con Cloud Logging.
  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los Google Cloud servicios y las APIs. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Selecciona la pestaña según cómo planeas usar las muestras en esta página:

    Console

    Cuando usas la Google Cloud consola de para acceder a los Google Cloud servicios y las APIs, no necesitas configurar la autenticación.

    gcloud

    1. Instala la Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.

  • Configura una región y una zona predeterminadas.
  • REST

    Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.

      Instala la Google Cloud CLI.

      Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de. Google Cloud

Habilita o inhabilita el registro de salidas de puerto en serie

Para controlar si las instancias envían las salidas de los puertos en serie a Cloud Logging, configura metadatos a nivel de proyecto o de instancia. También puedes inhabilitar la función para todos los usuarios de la organización si estableces una política de la organización.

De forma predeterminada, el registro de salida del puerto en serie en Cloud Logging está inhabilitado. Si habilitas el registro de salidas del puerto en serie, Cloud Logging proporciona los primeros 50 gibibytes (GiB) por mes de registro gratis y conserva los registros durante 30 días.

Establece metadatos de proyecto y de instancia

Si el registro de salidas del puerto en serie en Cloud Logging no está restringido en tu organización, puedes habilitarlo o inhabilitarlo para proyectos y, además, para instancias de procesamiento individuales. Para ello, configura la entrada de metadatos serial-port-logging-enable en true o false.

Si configuras una entrada de metadatos de nivel de proyecto, todas las instancias de procesamiento del proyecto heredan esa configuración de forma implícita. Si configuras una entrada de metadatos de la instancia, esta se habilita solo para esa instancia de procesamiento, sin importar la configuración del proyecto.

Puedes establecer una entrada de metadatos con la Google Cloud consola, la gcloud CLI o la API de Compute Engine. Para obtener más información, consulta la sección sobre cómo establecer metadatos personalizados .

Por ejemplo, el siguiente comando de la CLI de gcloud habilita el registro de salidas del puerto en serie en Cloud Logging para tu proyecto:

gcloud compute project-info add-metadata \
    --metadata serial-port-logging-enable=true

Del mismo modo, el siguiente comando de la CLI de gcloud habilita el registro de salidas del puerto en serie en Cloud Logging para una instancia específica:

gcloud compute instances add-metadata INSTANCE_NAME \
    --metadata serial-port-logging-enable=true

Para inhabilitar el registro de salidas del puerto en serie en Cloud Logging, establece serial-port-logging-enable en false:

gcloud compute instances add-metadata INSTANCE_NAME \
    --metadata serial-port-logging-enable=false

Filtros de exclusión

Desde Cloud Logging, puedes crear un filtro de exclusión para borrar entradas específicas de puerto en serie del Explorador de registros. Por ejemplo, con una entrada de metadatos de nivel de proyecto que se establece en serial-port-logging-enable=true, puedes inhabilitar el registro de salidas del puerto en serie para instancias de procesamiento específicas con un filtro avanzado:

logName = "projects/PROJECT_ID/logs/serialconsole.googleapis.com%2Fserial_port_1_output"
resource.type = "gce_instance"
resource.labels.instance_id != "INSTANCE_1_ID"
resource.labels.instance_id != "INSTANCE_2_ID"

Establece una política de la organización

Puedes inhabilitar el registro de salida del puerto en serie en Cloud Logging para toda tu organización mediante la configuración de una Política de organización, que restringe ciertas opciones de configuración de Google Cloud recursos. En particular, establece esta restricción booleana: constraints/compute.disableSerialPortLogging. Para obtener más información, consulta Crea y administra políticas de la organización.

La inhabilitación del registro del puerto en serie mediante el establecimiento de constraints/compute.disableSerialPortLogging en true no es retroactiva. Las instancias de procesamiento existentes con una entrada de metadatos que habilita el registro del puerto en serie en Cloud Logging continúan registrando en Cloud Logging a menos que restablezcas los metadatos para esas instancias.

Después de establecer esta restricción de organización en true, no podrás establecer metadatos de instancia o proyecto para habilitar el registro de salida del puerto en serie en Cloud Logging para ninguna instancia dentro de la organización.

Visualiza la salida de puerto en serie

Usa la Google Cloud consola, gcloud CLI o REST para ver el 1 MB más reciente de salida por puerto en serie de las instancias en ejecución. Para ver una salida que supere 1 MB por puerto o ver la salida de instancias detenidas, usa Cloud Logging.

Console

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona la instancia de procesamiento para la que quieres ver las salidas del puerto en serie.

  3. En Registros, haz clic en Puerto en serie 1 (consola), Puerto en serie 2 (consola), Puerto en serie 3 o Puerto en serie 4.

    Por lo general, las entidades de nivel de sistema usan el Puerto en serie 1, que también se conoce como la consola en serie.

gcloud

Para ver la salida del puerto en serie de una instancia de procesamiento en ejecución, usa el gcloud compute instances get-serial-port-output comando.

gcloud compute instances get-serial-port-output INSTANCE_NAME \
  --port PORT \
  --start START \
  --zone ZONE

Reemplaza lo siguiente:

  • INSTANCE_NAME: El nombre de la instancia.
  • PORT: El número del puerto (1, 2, 3 o 4) cuya salida quieres ver. Por lo general, las entidades a nivel del sistema usan el primer puerto en serie (puerto 1), que también se conoce como consola en serie. De forma predeterminada, se muestra la salida del primer puerto en serie.
  • START: El índice de bytes (basado en cero) del primer byte que quieres mostrar. Usa esta marca si quieres seguir obteniendo la salida de una solicitud anterior que fue demasiado larga para mostrar en un intento.
  • ZONE: La zona de la instancia.

REST

En la API, crea una solicitud get para el método instances.getSerialPortOutput.

GET https://compute.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/serialPort

Cloud Logging

Antes de que puedas ver estos registros, debes enviar la salida del puerto en serie a Cloud Logging.

  1. En la Google Cloud consola de, accede a la página Explorador de registros.

    Ir al Explorador de registros

  2. En el panel Consulta , ingresa la siguiente consulta y, luego, haz clic en Ejecutar consulta:

    resource.type="gce_instance"
    logName="projects/PROJECT_ID/logs/serialconsole.googleapis.com%2Fserial_port_1_output"
    resource.labels.instance_id="INSTANCE_ID"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto que contenía la instancia.
    • INSTANCE_ID: El ID de la instancia de procesamiento.

Para obtener más información sobre el filtrado en el Explorador de registros, consulta Visualiza registros con el Explorador de registros.

Maneja caracteres no UTF8

Usa el método CHexEscape() de la biblioteca C++ Abseil de código abierto para escapar la salida del puerto en serie, de modo que los caracteres que no son UTF8 se codifiquen como strings hexadecimales. Puedes usar el método CUnescape() correspondiente para obtener la salida exacta que se envió al puerto en serie.