En este documento, se describe cómo ver y leer las entradas de registro de cambios de estado de una VM en un grupo de instancias administrado (MIG) y se proporcionan casos de uso específicos para ayudarte a supervisar las VMs en el grupo.
Si configuraste la verificación de estado basada en la aplicación para el MIG, Compute Engine escribe una entrada de registro cada vez que cambia el estado de una instancia administrada, por ejemplo, cuando la instancia pasa del estado HEALTHY
al UNHEALTHY
. Estas entradas de registro te ayudan a supervisar y depurar el estado de cada instancia administrada, así como el estado general del MIG.
Antes de empezar
- Revisa Configura la comprobación de estado y la reparación automática.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las APIs de Google Cloud .
Para ejecutar código o muestras 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:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
-
Precios
Compute Engine usa Cloud Logging para generar entradas de registro para los cambios de estado de las instancias administradas. Cloud Logging te proporciona una asignación gratuita por mes, después de lo cual el precio de las entradas de registro se calcula según el volumen de datos. Para obtener más información, consulta el resumen de precios de Cloud Logging.
Para evitar los costos de registro, puedes inhabilitar los registros de cambios de estado.
Visualiza los registros de cambios de estado
Mientras los registros de cambios de estado permanezcan habilitados, Compute Engine escribirá una entrada de registro en los registros de la plataforma cada vez que cambie el estado de una instancia administrada. Puedes ver estos registros de un proyecto, de un MIG específico o de una instancia administrada específica.
Visualiza los registros de un proyecto o un MIG
Para ver las entradas de registro de un proyecto o un MIG específico, usa la consola de Google Cloud, gcloud CLI o REST.
Ve al Explorador de registros en la consola de Google Cloud.
Establece los siguientes parámetros de búsqueda:
- Recurso: administrador de grupo de instancias de GCE
- Nombre de registro -
instance_group_manager_events
Como alternativa, puedes copiar la siguiente consulta en el compilador de Consultas.
resource.type="gce_instance_group_manager" AND logName="projects/
PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:*Para limitar tu búsqueda a un grupo de instancias administrado específico, usa la siguiente consulta:
resource.type="gce_instance_group_manager" AND logName="projects/
PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME "Haz clic en Ejecutar consulta. Los resultados de la consulta mostrarán los registros.
Usa el comando gcloud logging read
para ver y leer las entradas de registro.
Para ver todos los registros de cambios de estado en tu proyecto, usa el siguiente comando:
gcloud logging read 'resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:*'\ --limit 10
Para ver todos los registros de cambios de estado de un grupo de instancias administrado específico, usa el siguiente comando:
gcloud logging read 'resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME "' \ --limit 10
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto.MIG_NAME
: Es el MIG en el que deseas ver los registros de cambios de estado.
Para ver los registros de cambios de estado, haz una solicitud POST
al método entries.list
.
Para ver todos los registros de cambios de estado en tu proyecto, usa el siguiente comando:
curl -H "Content-Type: application/json" -H "Authorization: BearerOAUTH2_TOKEN " -X POST -d \ '{"filter": "resource.type=gce_instance_group_manager AND logName=projects/PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events AND jsonPayload.instanceHealthStateChange:*", "orderBy": "timestamp desc", "pageSize": 10, "resourceNames": ["projects/PROJECT_ID "] }' https://logging.googleapis.com/v2/entries:list?alt=json
Para ver los registros de cambios de estado de un grupo de instancias administrado específico, usa el siguiente comando:
curl -H "Content-Type: application/json" -H "Authorization: BearerOAUTH2_TOKEN " -X POST -d \ '{"filter": "resource.type=gce_instance_group_manager AND logName=projects/PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name=MIG_NAME ", "orderBy": "timestamp desc", "pageSize": 10, "resourceNames": ["projects/PROJECT_ID "] }' https://logging.googleapis.com/v2/entries:list?alt=json
Reemplaza lo siguiente:
OAUTH2_TOKEN
: Es el token de acceso de la aplicación. Para hacer pruebas locales, puedes usar el comandogcloud auth print-access-token
para generar un token.PROJECT_ID
: Es el ID de tu proyecto.MIG_NAME
: Es el MIG en el que deseas ver los registros de cambios de estado.
Para obtener más información sobre cada entrada de registro, consulta Formato de entradas de registro.
Según si deseas archivar los registros, usarlos para su análisis, transmitirlos a otras aplicaciones o activar una función de Cloud Functions, puedes exportar los registros a destinos. como Cloud Storage, BigQuery o Pub/Sub. Para obtener más información sobre la exportación de registros, consulta Descripción general de las exportaciones de registros.
Visualiza los registros de cambios de estado de una VM específica
Para ver las entradas de registro de una instancia administrada específica, usa la consola de Google Cloud, gcloud CLI o REST.
Ve al Explorador de registros en la consola de Google Cloud.
Copia la siguiente consulta en el compilador de consultas.
resource.type="gce_instance_group_manager" AND logName="projects/
PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME "Haz clic en Ejecutar consulta.
Usa el comando gcloud logging read
para ver y leer las entradas de registro.
Para ver los registros de cambios de estado de una instancia administrada, usa el siguiente comando:
gcloud logging read 'resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME "' \ --limit 10
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto.INSTANCE_NAME
: Es la instancia administrada en la que deseas ver los registros de cambios de estado.
Para ver los registros de cambios de estado de una instancia administrada, haz una solicitud POST
al método entries.list
.
curl -H "Content-Type: application/json" -H "Authorization: BearerOAUTH2_TOKEN " -X POST -d \ '{"filter": "resource.type=gce_instance_group_manager AND logName=projects/PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events AND jsonPayload.instanceHealthStateChange:* AND labels.\"compute.googleapis.com/instance_name\"=\"INSTANCE_NAME \"", "orderBy": "timestamp desc", "pageSize": 10, "resourceNames": ["projects/PROJECT_ID "] }' https://logging.googleapis.com/v2/entries:list?alt=json
Reemplaza lo siguiente:
OAUTH2_TOKEN
: Es el token de acceso de la aplicación. Para hacer pruebas locales, puedes usar el comandogcloud auth print-access-token
para generar un token.PROJECT_ID
: Es el ID de tu proyecto.INSTANCE_NAME
: Es la instancia administrada en la que deseas ver los registros de cambios de estado.
Formato de las entradas de registro
Las entradas de registro de cambios de estado de las instancias contienen información útil para supervisar y depurar el estado de tus instancias administradas.
Los registros se escriben en registros de la plataforma con el nombre de registro instance_group_manager_events
. Los registros de la plataforma te ayudan a depurar y solucionar problemas.
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events"
Las entradas de registro de cambios de estado contienen los siguientes tipos de información:
- Información general que se muestra en la mayoría de los registros, como la gravedad, el ID del proyecto, el nombre y el ID del MIG, el número del proyecto y la marca de tiempo, entre otros datos
- Campos específicos del estado de la instancia
Dentro de cada entrada de registro de cambios de estado, el campo jsonPayload.instanceHealthStateChange
contiene la siguiente información:
Campo | Descripción |
---|---|
instance |
La URL de la instancia, según el ID del proyecto de string y el nombre de la instancia |
instanceWithId |
URL de la instancia, según su ID numérico del proyecto y el ID de instancia |
ipAddress |
Dirección IP de la instancia, según lo sondea la verificación de estado |
network |
URL del recurso de red para esta instancia, basada en el ID del proyecto de la string y el nombre de la red |
networkWithId |
La URL del recurso de red para esta instancia, basada en el ID numérico del proyecto y el ID de la red. |
healthCheck |
La URL de la verificación de estado que está configurada para el grupo de instancias administrado |
previousDetailedHealthState |
Estado anterior de la instancia. Para obtener la lista de estados posibles, consulta Estados |
detailedHealthState |
El estado actual de la instancia. Para obtener la lista de estados posibles, consulta Estados |
notificationTime |
Marca de tiempo del momento en que se produjo el cambio de estado |
Los campos de registro de tipo booleano suelen aparecer solo si tienen el valor true
.
Si un campo booleano tiene un valor false
, ese campo se omite del registro.
Se aplica la codificación UTF-8 a los campos de registro. Se reemplazan los caracteres que no son UTF-8 por signos de interrogación.
Ejemplo de entrada de registro
En el siguiente ejemplo, se muestra el cambio de estado de una instancia de VM de HEALTHY
a UNHEALTHY
:
{ "logName": "projects/my-project/logs/compute.googleapis.com%2Finstance_group_manager_events", "resource": { "type": "gce_instance_group_manager", "labels": { "instance_group_manager_id": "3138236342290985981", "instance_group_manager_name": "my-mig", "project_id": "my-project", "location": "europe-west3" } }, "labels": { "compute.googleapis.com/instance_id": "6498902454451155884", "compute.googleapis.com/instance_location": "europe-west3-a", "compute.googleapis.com/instance_name": "my-mig-a" }, "timestamp": "2019-11-19T15:47:57.127Z", "severity": "INFO", "jsonPayload": { "@type": "type.googleapis.com/compute.InstanceGroupManagerEvent", "instanceHealthStateChange": { "instance": "projects/my-project/zones/europe-west3-a/instances/my-mig-a", "instanceWithId": "projects/123456/zones/europe-west3-a/instances/6498902454451155884", "ipAddress": "10.0.0.4", "network": "projects/my-project/global/networks/net-1", "networkWithId": "projects/123456/global/networks/456", "healthCheck": "projects/my-project/global/healthChecks/my-mig-health-check", "previousDetailedHealthState": "HEALTHY", "detailedHealthState": "UNHEALTHY", "notificationTime": "2019-11-19T15:47:56.444Z" } }, "receiveTimestamp": "2019-11-19T15:47:57.296439184Z" }
Casos de uso
Puedes usar los registros de cambios de estado en las siguientes situaciones de supervisión o depuración:
- Descubre la frecuencia con la que una instancia de VM en particular cambió de estado con el paso del tiempo.
- Evalúa la frecuencia con la que un MIG experimentó cambios en el estado de las instancias.
- Identifica las instancias de VM problemáticas que suelen ir a
UNHEALTHY
. - Averigua qué causó un intento de reparación automática.
- Averigua si un intento de reparación automática se realizó de forma correcta para una instancia específica de VM.
- Ajusta la configuración de la verificación de estado para una aplicación a través de la determinación de un retraso inicial adecuado para realizar la reparación automática.
Supervisa los cambios de estado de una VM
Puedes supervisar la frecuencia con la que el estado de una instancia de VM cambia a través de la creación de una métrica que realice un seguimiento de los cambios de estado de esa VM específica.
Para crear la métrica y supervisar los cambios, haz lo siguiente:
Ve al Explorador de registros en la consola de Google Cloud.
Escribe la siguiente consulta en el compilador de consultas, a través del ID del proyecto y el nombre de la instancia.
resource.type="gce_instance_group_manager" AND logName="projects/
PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME "En la sección Resultados de la consulta, haz clic en Acciones y, luego, en Crear métrica.
En la página Crear métrica de registros, haz lo siguiente:
- Configura el Tipo de métrica como Contador.
Escribe un Nombre de métrica de registro, por ejemplo,
health-mig-xyzq
.En la sección Filtro de compilación, se muestra la consulta de registro del Explorador de registros. También puedes configurar el filtro de métrica para incluir solo los estados disruptivos, como
UNHEALTHY
yTIMEOUT
. Para ello, agregaseverity>=WARNING
al filtro.En Etiquetas, haz clic en Agregar etiqueta.
Escribe un Nombre de etiqueta, por ejemplo
health_state
.Configura el Tipo de etiqueta como
STRING
.Configura el Nombre del campo como
jsonPayload.instanceHealthStateChange.detailedHealthState
. Esto te permitirá distinguir entre diferentes cambios de estado.Haz clic en Listo para agregar la etiqueta.
Haz clic en Crear métrica.
Ve a la página Métricas basadas en registros y busca la métrica recién creada.
Haz clic en el menú more_vert en la fila de la métrica y elige Ver en el Explorador de métricas. Se abre el Explorador de métricas y se muestra el grafico que representa los cambios de estado de la instancia de VM que especificaste en la consulta.
Supervisa los cambios de estado de todas las VMs en un MIG
Puedes supervisar los cambios de estado de todas las instancias administradas a través de la creación de una métrica que realice un seguimiento de los cambios de estado de las instancias administradas.
Para crear la métrica y supervisar los cambios, haz lo siguiente:
Ve al Explorador de registros en la consola de Google Cloud.
Escribe la siguiente consulta en el compilador de consultas a través del ID del proyecto y el nombre del grupo de instancias administrado.
resource.type="gce_instance_group_manager" AND logName="projects/
PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME "En la sección Resultados de la consulta, haz clic en Acciones y, luego, en Crear métrica.
En la página Crear métrica de registros, haz lo siguiente:
- Configura el Tipo de métrica como Contador.
- Escribe un Nombre de métrica de registro, por ejemplo,
health-mig-xyzq
. - En Etiquetas, haz clic en Agregar etiqueta.
- Escribe un Nombre de etiqueta, por ejemplo
health_state
. - Configura el Tipo de etiqueta como
STRING
. - Configura el Nombre del campo como
jsonPayload.instanceHealthStateChange.detailedHealthState
. Esto te permitirá distinguir entre diferentes cambios de estado. - Haz clic en Listo para agregar la etiqueta.
- Haz clic en Crear métrica.
Ve a la página Métricas basadas en registros y busca la métrica recién creada.
Haz clic en el menú more_vert en la fila de la métrica y elige Ver en el Explorador de métricas. Se abre el Explorador de métricas y muestra el gráfico que representa los cambios de estado de todas las instancias de VM en el grupo de instancias administrado que especificaste en la consulta.
Identifica las VMs que suelen estar en mal estado
Puedes identificar las VMs problemáticas que suelen ir a UNHEALTHY
si creas una métrica que realice un seguimiento de los cambios de estado de todas las instancias de VM en tu MIG y agrupa la métrica por instancias.
Para crear la métrica y agrupar por instancias, haz lo siguiente:
Ve al Explorador de registros en la consola de Google Cloud.
Escribe la siguiente consulta en el compilador de consultas a través del ID del proyecto y el nombre del grupo de instancias administrado.
resource.type="gce_instance_group_manager" AND logName="projects/
PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME "En la sección Resultados de la consulta, haz clic en Acciones y, luego, en Crear métrica.
En la página Crear métrica de registros, haz lo siguiente:
- Configura el Tipo de métrica como Contador.
- Escribe un Nombre de métrica de registro, por ejemplo,
health-mig-xyzq
. - En Etiquetas, haz clic en Agregar etiqueta.
- Escribe un Nombre de etiqueta, por ejemplo
health_state
. - Configura el Tipo de etiqueta como
STRING
. - Configura el Nombre del campo como
jsonPayload.instanceHealthStateChange.detailedHealthState
. Esto te permitirá distinguir entre diferentes cambios de estado. - Haz clic en Listo para agregar la etiqueta.
- De manera similar, agrega una segunda etiqueta, por ejemplo
instance
, con el Nombre del campo configurado comojsonPayload.instanceHealthStateChange.instance
. - Haz clic en Crear métrica.
Ve a la página Métricas basadas en registros y busca la métrica recién creada.
Haz clic en el menú more_vert en la fila de la métrica y elige Ver en el Explorador de métricas. Se abre el Explorador de métricas y muestra el gráfico que representa los cambios de estado de todas las instancias de VM en el grupo de instancias administrado que especificaste en la consulta.
Configura Agrupar por en
instance
para ver la cantidad total de cambios de estado de cada instancia.
Las instancias con más cambios de estado en conjunto son las que están en mal estado.
Verifica la causa de un intento de reparación automática
Para averiguar qué causó un intento de reparación automática, filtra los registros de las operaciones de repair
de una instancia de VM determinada.
Para filtrar las operaciones de reparación, haz lo siguiente:
Ve al Explorador de registros en la consola de Google Cloud.
Escribe la siguiente consulta en el compilador de consultas, a través del ID del proyecto y el nombre de la instancia.
resource.type="gce_instance" AND logName="projects/
PROJECT_ID /logs/cloudaudit.googleapis.com%2Fsystem_event" AND protoPayload.methodName="compute.instances.repair.recreateInstance" AND protoPayload.resourceName=~"/INSTANCE_NAME $"Haz clic en Ejecutar consulta. En los resultados de la consulta, se mostrarán todos los intentos de reparación automática en la VM con el motivo de la reparación automática en
protoPayload.status.message
.
Comprueba si la reparación automática se realizó de forma correcta en una VM
Puedes averiguar si un intento de reparación automática se realizó de forma correcta para una instancia de VM a través del filtrado de los registros de las operaciones repair
y los cambios de estado por nombre de instancia de VM.
Si el estado de la instancia cambió a HEALTHY
después de una operación de reparación, verás un registro de cambios de estado correspondiente. Sigue estos pasos:
Ve al Explorador de registros en la consola de Google Cloud.
Escribe la siguiente consulta en el compilador de consultas, a través del ID del proyecto y el nombre de la instancia.
(resource.type="gce_instance" AND logName="projects/
PROJECT_ID /logs/cloudaudit.googleapis.com%2Fsystem_event" AND protoPayload.methodName="compute.instances.repair.recreateInstance" AND protoPayload.resourceName=~"/INSTANCE_NAME $") OR (resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME ")En la primera parte de la consulta, se muestran las operaciones de reparación de la instancia, que indican que la reparación automática de MIG activó la recreación para que la instancia volviera a estar en buen estado. En la segunda parte de la consulta, se muestran todos los cambios en el estado de la instancia de VM.
En los resultados de la consulta, el evento de cambio de estado con
detailedHealthState
configurado comoHEALTHY
poco después de una operación de reparación muestra que el intento de reparación automática se realizó de forma correcta.
Determina el valor de retraso inicial de un MIG
Determinar un valor de retraso inicial adecuado para la reparación automática de MIG es más fácil con el registro de estado de la instancia de VM. Puedes usar registros para observar el tiempo que transcurre desde que finalizó la operación instances.insert
hasta que se recibió el primer indicador de buen estado para un conjunto de instancias de un grupo. Este intervalo de tiempo revela cuánto tiempo tardan las instancias en iniciarse por completo.
Como algunas VMs pueden iniciarse de forma más lenta que otras, Google recomienda agregar un margen al tiempo de inicialización observado (desde la operación de inserción hasta el estado en buen estado) cuando se especifica el retraso inicial en la política de reparación automática.
Para medir el tiempo entre que la operación de inserción de instancia y la instancia se recuperan, ejecuta una consulta para las operaciones insert
y los registros de cambios de estado por nombre de instancia de VM. Usa marcas de tiempo de ambas operaciones para calcular el tiempo de inicialización de la instancia. Sigue estos pasos:
Ve al Explorador de registros en la consola de Google Cloud.
Escribe la siguiente consulta en el compilador de consultas, a través del ID del proyecto y el nombre de la instancia.
(resource.type="gce_instance" AND logName="projects/
PROJECT_ID /logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.request.@type="type.googleapis.com/compute.instances.insert" AND operation.last="true" AND protoPayload.resourceName=~"/INSTANCE_NAME $") OR (resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME ")En la primera parte de la consulta, se muestra la finalización de la operación de inserción de VM. En la segunda parte, se muestran todos los cambios de estado de la VM.
En los resultados de la consulta, la marca de tiempo del evento de cambio de estado con
detailedHealthState
configurado comoHEALTHY
poco después de la operación de inserción revela el tiempo necesario para que esta VM se inicie por completo.Repite los pasos para algunas VM más para obtener un mejor valor aproximado del parámetro de retraso inicial.