Solucionar problemas de VM Manager

En este documento se describe cómo solucionar problemas con Gestor de VMs.

Para obtener más información sobre VM Manager, consulta VM Manager.

Antes de empezar

  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

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

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

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

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

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Información general

Para solucionar problemas, primero comprueba que VM Manager esté configurado correctamente. Si la configuración es correcta y sigues teniendo problemas, puedes revisar los registros. Cuando revisas los registros, puedes identificar problemas con tu máquina virtual o en tu flujo de trabajo de VM Manager, como errores en comandos o secuencias de comandos, que puedes aislar y resolver.

Puede recoger la siguiente información de los registros:

  • Cualquier mensaje de error o advertencia registrado por la VM. Es una opción ideal para identificar errores a nivel de máquina virtual o errores de otros servicios que se ejecutan en tu máquina virtual. Para consultar estos registros, consulta Inspeccionar Cloud Logging.
  • Información de depuración detallada registrada por el agente de configuración del SO. Esto es útil para identificar problemas con cualquiera de las operaciones que ejecuta VM Manager. Para inspeccionar los registros de depuración del agente de OS Config, consulta Inspeccionar registros de depuración.

Una vez que hayas identificado los problemas o errores, también puedes consultar la sección de errores habituales para ver posibles soluciones.

Inspeccionar Cloud Logging

Puedes usar los Google Cloud enlaces rápidos de la consola de cada función para ver los registros.

Parche del SO

  1. En la Google Cloud consola, ve a la pestaña Ejecuciones de trabajos de la página Parche.

    Ir a Ejecuciones de tareas

  2. Haga clic en el nombre del trabajo de parche que quiera depurar.
  3. Ve a la sección Instancias de VM actualizadas.
  4. En una VM específica, vaya a Registros y haga clic en Ver.

Políticas de SO

Este procedimiento se admite en las políticas de SO. En el caso de las políticas de invitado (beta), utiliza la opción de registros de depuración, que se describe en la siguiente sección.

  1. En la Google Cloud consola, ve a la pestaña Instancias de VM de la página Políticas de SO.

    Ir a instancias de VM

  2. Haga clic en el nombre de la VM que quiera depurar.
  3. Ve a la sección Políticas.
  4. En Registros, haz clic en Ver.

Orquestadores de políticas de SO

  1. En la Google Cloud consola, ve a la pestaña Orquestadores de políticas de SO de la página Políticas de SO.

    Ir a los orquestadores de políticas de SO

  2. Haz clic en el nombre del orquestador de políticas de SO que quieras depurar.
  3. Ve a la sección Registros y comprueba la entrada del registro.

Inspeccionar los registros de depuración

Para identificar problemas con cualquier función de Gestor de VMs, habilita la depuración del agente de configuración del SO y consulta el registro de depuración.

Habilitar el registro de depuración del agente de configuración del SO

Para habilitar el registro de depuración, define los metadatos osconfig-log-level=debug en la instancia de VM o en el proyecto.

Para habilitar el registro de depuración en tu VM, sigue estos pasos:

Consola

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

    Ir a instancias de VM

  2. Haga clic en el nombre de la VM para la que quiera definir el valor de los metadatos.

  3. En la página Detalles de la instancia, haga clic en Editar para modificar la configuración.

  4. En Metadatos personalizados, añada las siguientes entradas de metadatos:

    Clave: osconfig-log-level
    Valor: debug

  5. Haz clic en Guardar para aplicar los cambios a la máquina virtual.

gcloud

Usa el comando instances add-metadata con la marca --metadata=osconfig-log-level=debug.

gcloud compute instances add-metadata VM_NAME \
    --metadata=osconfig-log-level=debug

Sustituye VM_NAME por el nombre de tu VM.

REST

Para obtener instrucciones sobre cómo definir metadatos de instancia, sigue las instrucciones de la API para definir metadatos de instancia.

El siguiente par clave-valor es obligatorio como parte de la propiedad de metadatos:

Clave: osconfig-log-level
Valor: debug

Ver registros de depuración

Cuando el registro de depuración está habilitado, el agente de configuración del SO escribe entradas de registro en Cloud Logging y en la consola del puerto serie.

Después de habilitar el registro de depuración en tu VM, el agente de configuración del SO tarda unos diez minutos en empezar a escribir mensajes de depuración en Cloud Logging. Puedes reducir este tiempo de espera reiniciando el agente o la VM. Para obtener más información sobre Cloud Logging, consulta Ver registros de Cloud Logging.

Para ver los registros de depuración, puedes usar las siguientes opciones:

  • Cloud Logging: usa la Google Cloud consola o Google Cloud CLI
  • Consola de puerto serie

Consola

  1. Ve a la página Registro > Explorador de registros (Explorador de registros) en la Google Cloud consola:

    Ir a Explorador de registros

  2. Si es necesario, selecciona un proyecto en la parte superior de la página o crea uno. Google Cloud

  3. En la lista desplegable Recurso, selecciona Instancia de VM. Se muestra una lista de las VMs disponibles (instance_id).

  4. Haz clic en la VM que quieras ver.

  5. Haz clic en Añadir.

  6. En la lista desplegable Log name (Nombre del registro), selecciona OSConfigAgent.

  7. Haz clic en Añadir.

  8. Tu consulta debería ser similar a la siguiente:

    resource.type="gce_instance" resource.labels.instance_id="INSTANCE_ID"
    logName="projects/PROJECT_ID/logs/OSConfigAgent"
    
  9. Haz clic en Realizar una consulta.

gcloud

Ejecuta el comando gcloud logging read.

 gcloud logging read "resource.type=gce_instance AND logName=projects/PROJECT_ID/logs/OSConfigAgent"
 

Sustituye PROJECT_ID por el ID del proyecto.

Puerto serie

Para ver la información del registro de depuración de la consola del puerto serie, consulta Ver salidas de puertos serie.

Errores frecuentes

Problemas de autenticación

Para que VM Manager funcione, debes tener lo siguiente:

  • Una cuenta de servicio asociada. Gestor de VMs usa esta cuenta de servicio para firmar las solicitudes al servicio de la API.
  • Comprueba que la cuenta de servicio adjunta tenga el rol roles/logging.logWriter para escribir registros en la API Logging.
  • Agente de servicio de configuración de SOs de Google Cloud. VM Manager crea este agente de servicio al iniciar trabajos de parche y le asigna el rol Agente de servicio de configuración de SOs de Cloud. Para crear políticas de SO, no es necesario configurar este agente de servicio.

Si usas Gestor de VMs y no tienes una cuenta de servicio asociada o un agente del servicio de configuración del SO de Google Cloud, es posible que veas los siguientes errores al trabajar con trabajos de parche:

Service account permissions are missing. Verify that the service account has the correct permissions and try again.
OSConfigAgent Error main.go:88: error getting token from metadata: metadata: GCE metadata "instance/service-accounts/default/identity?audience=osconfig.googleapis.com&format=full" not defined
message: "Error running OPERATION_NAME: error calling OPERATION_NAME: code: "PermissionDenied", message: "The caller does not have permission", details: []"

Los problemas de autenticación también pueden impedir que las instancias de VM se muestren en el panel de control de parches.

Para solucionar estos problemas, prueba una o todas las opciones siguientes:

  • Verifica que todas las máquinas virtuales tengan una cuenta de servicio asociada.
  • Asegúrate de que el rol Agente de servicio de configuración de SOs de Cloud (roles/osconfig.serviceAgent) esté asignado al agente de servicio de configuración de SOs de Google Cloud.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com' \
      --role='roles/osconfig.serviceAgent'
    

    Haz los cambios siguientes:

Error al excluir paquetes de las actualizaciones de parches

Si especificas comodines o caracteres especiales para el nombre de los paquetes al excluir paquetes en un trabajo de parche, la gestión de parches del SO podría ignorar la lista y actualizar todos los paquetes.

Para solucionar este problema, actualice el agente de configuración del SO a la versión 20220829.00 y utilice barras diagonales (/) para envolver el nombre del paquete.

En el siguiente ejemplo, Gestión de parches de SO excluye los paquetes yum con el prefijo google- en el nombre del paquete.

      gcloud compute os-config patch-jobs execute --instance-filter-all
--yum-excludes=/google-.*/

Siguientes pasos