Puedes obtener registros de las verificaciones de estado del balanceo de cargas cuando cambia el estado de un extremo. Además, puedes usar los registros de verificaciones de estado para realizar las siguientes acciones:
- Depurar y solucionar en vivo los problemas del estado del extremo
- Obtener visibilidad sobre el estado del extremo
- Auditar y asegurar el cumplimiento
Las verificaciones de estado registran la información de transición del estado en Logging. Puedes habilitar o inhabilitar el registro en cada verificación de estado.
Para consultar los registros de verificaciones de estado en Logging, debes asegurarte de no tener una exclusión de registros que se aplique a ellas. A fin de obtener instrucciones para verificar que los registros de Grupo de instancias de GCE y Grupo de extremos de red estén permitidos, consulta la sección sobre cómo visualizar las exclusiones por tipo de recurso..
Limitaciones
- No se admite el registro de verificaciones de estado en interfaces distintas de nic0 de VM conectadas a balanceadores de cargas TCP/UDP internos.
- Solo se generan registros para las transiciones de estado de los extremos.
- No se admiten las verificaciones de estado heredadas.
- Tampoco se admiten los grupos de destino.
Inhabilita y habilita los registros
Habilita el registro en una nueva verificación de estado
Console
- En Google Cloud Console, ve a la página Verificación de estado.
Ir a la página Verificación de estado - Haz clic en Crear una verificación de estado.
- Configura el botón de selección Registros como Activado.
- Continúa con la configuración de la verificación de estado.
gcloud
gcloud compute health-checks create PROTOCOL HEALTH_CHECK_NAME \ --enable-logging
En el comando anterior, se ilustra lo siguiente:
- La marca
--enable-logging
habilita el registro en esa verificación de estado.
Habilita el registro en una verificación de estado existente
Console
- En Google Cloud Console, ve a la página Verificación de estado.
Ir a la página Verificación de estado - Haz clic en el nombre de la verificación de estado.
- Haz clic en Editar .
- Configura el botón de selección Registros como Activado.
- Haz clic en Guardar.
gcloud
gcloud compute health-checks update PROTOCOL HEALTH_CHECK_NAME \ --enable-logging
En el comando anterior, se ilustra lo siguiente:
- La marca
--enable-logging
habilita el registro en esa verificación de estado.
Inhabilita o modifica el registro en una verificación de estado existente
Console
- En Google Cloud Console, ve a la página Verificación de estado.
Ir a la página Verificación de estado - Haz clic en el nombre de la verificación de estado.
- Haz clic en Editar .
- Configura el botón de selección Registros como Desactivado.
- Haz clic en Guardar.
gcloud
Inhabilita el registro por completo
gcloud compute health-checks update PROTOCOL HEALTH_CHECK_NAME \ --no-enable-logging
En el comando anterior, se ilustra lo siguiente:
- La marca
--no-enable-logging
inhabilita el registro en esa verificación de estado.
Visualizar registros
Para ver los registros, ve al visor de registros.
Los registros de verificaciones de estado se indexan por grupo de instancias o por grupo de extremos de red.
Para ver todos los registros, selecciona Grupo de instancias de GCE o Grupo de extremos de red en el primer menú desplegable, según el tipo del backend.
También puedes ir al visor de registros y pegar lo siguiente en el campo Filtrar por campo de búsqueda de texto o etiqueta. Reemplaza PROJECT_ID
por el ID de tu proyecto.
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks"
También puedes obtener registros basados en búsquedas más específicas. Por ejemplo, mediante el siguiente filtro, se muestran todos los registros de la dirección IP de una instancia de backend especificada:
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" jsonPayload.healthCheckProbeResult.ipAddress="IP_ADDRESS"
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.
La codificación UTF-8 se aplica a los campos de registro. Los caracteres que no son caracteres UTF-8 se reemplazan con signos de interrogación.
Puedes configurar exportaciones de métricas basadas en registros para las verificaciones de estado del balanceador de cargas.
¿Qué se registra?
Las entradas de registro de verificaciones de estado contienen información útil para supervisar y depurar el estado de tus extremos. Las entradas de registro 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 y el número del proyecto, la marca de tiempo y demás
- Campos específicos de las verificaciones de estado, que se describen en las tablas a continuación
Estados de las verificaciones de estado
Un extremo se considera HEALTHY
o UNHEALTHY
. Estos son los estados básicos. Dentro de cada uno de estos estados básicos, hay varios estados más detallados. En la siguiente tabla, se muestra la asignación entre estados básicos y detallados.
Estado básico | Estado detallado |
---|---|
HEALTHY |
HEALTHY DRAINING
|
UNHEALTHY |
UNKNOWN UNHEALTHY TIMEOUT
|
Los cambios de estado no siempre modifican el comportamiento del balanceador de cargas. Considera el siguiente caso:
- El servidor entrega una respuesta incorrecta, por lo que el extremo se considera
UNHEALTHY
. - Luego, el servidor deja de responder y el estado nuevo es
TIMEOUT
. - El balanceador de cargas aún considera que el extremo es
UNHEALTHY
porque el estado detalladoTIMEOUT
se asigna al estadoUNHEALTHY
básico.
En la siguiente tabla, se proporciona una definición de cada estado.
Estado detallado de la verificación de estado | Significado | Estado básico |
---|---|---|
HEALTHY
|
Se puede acceder al extremo. El extremo cumple con los requisitos que definió la verificación de estado. | HEALTHY
|
UNHEALTHY
|
Se puede acceder al extremo, pero este no cumple con los requisitos que definió la verificación de estado. | UNHEALTHY
|
DRAINING
|
Se está vaciando el extremo. Se permite que se completen las conexiones existentes con el extremo, pero se rechazan las nuevas. Se considera que el extremo es HEALTHY .
|
HEALTHY
|
TIMEOUT
|
No se puede acceder al extremo. En función del tipo de verificación de estado, puede suceder que no se pueda establecer una conexión con el extremo o que el servidor no haya respondido en el tiempo de espera especificado. Se considera que el extremo es UNHEALTHY .
|
UNHEALTHY
|
UNKNOWN
|
El sistema de verificación de estado reconoce el extremo, pero se desconoce su estado. El extremo se considera UNHEALTHY .
|
UNHEALTHY
|
Hay varios verificadores de estado que sondean cada extremo. Google Cloud anula la duplicación de las entradas antes de que se realice el registro para que solo se generen registros únicos.
Puedes interactuar con los registros mediante la API de Cloud Logging. La API de Logging proporciona formas de filtrar de forma interactiva los registros que tienen configurados campos específicos y de exportar los que coincidan a Cloud Logging, Cloud Storage, BigQuery o Pub/Sub. Para obtener más información sobre la API de Cloud Logging, consulta Visualiza registros.
Entrada de registro de la verificación de estado
El jsonPayload
de LogEntry se propaga con un campo healthCheckProbeResult
que contiene la siguiente información:
Campos | |
---|---|
ipAddress
|
string . Es la dirección IP interna principal que se asocia con la interfaz de red principal de cada VM de backend. Esta es una string legible.
|
healthCheckProtocol
|
HealthCheckProtocol
El protocolo de verificación de estado que se usa para verificar el estado del extremo.
Ejemplos: TCP, HTTP, HTTPS
|
healthState
|
HealthState . Es el estado actual del extremo, que puede ser HEALTHY o UNHEALTHY . |
previousHealthState
|
HealthState . Es el estado anterior del extremo, que puede ser HEALTHY o UNHEALTHY . |
detailedHealthState
|
DetailedHealthState . Es el estado actual detallado del extremo. Consulta Estados de las verificaciones de estado para ver una lista de las posibilidades.
|
previousDetailedHealthState
|
DetailedHealthState . Es el estado anterior detallado del extremo. Consulta Estados de las verificaciones de estado para ver una lista de las posibilidades.
|
probeRequest
|
string . En el caso de los protocolos HTTP, HTTPS y HTTP/2, esta es la ruta de solicitud de URL (el campo requestPath del archivo de configuración del recurso). En el caso de TCP o SSL, es la string configurada opcional que se envía una vez que se establece la conexión de verificación de estado (el campo request del archivo de configuración del recurso).
|
probeCompletionTimestamp
|
Timestamp . Es la marca de tiempo de la finalización del sondeo. |
connectLatency
|
Duration . Es el tiempo que se dedicó a la configuración de la conexión para los protocolos de verificación de estado orientados a la conexión (TCP, SSL, HTTP, HTTPS y HTTP/2). |
responseLatency
|
Duration . Es la latencia entre la solicitud y la respuesta, que mide el sondeador. |
probeResultText
|
string . Es un texto descriptivo relacionado con el resultado del sondeo. Podría incluir mensajes como “Se agotó el tiempo de espera de la conexión” o “Respuesta HTTP: la puerta de enlace es incorrecta”. O bien, podría estar vacío.
|
probeSourceIp
|
string . La dirección IP desde la que se envió el sondeo de verificación de estado. |
targetIp
|
string . Es la dirección IP de destino del sondeo. Puede ser diferente de ipAddress .
Esta dirección depende del tipo del balanceador de cargas:
|
targetPort
|
int . Es el puerto que constituía el destino del sondeo. Puede ser el puerto predeterminado del sondeo o el que especificaste cuando creaste la verificación de estado.
|
Filtros de ejemplo
Buscar todos los resultados de verificaciones de estado de un grupo de instancias específico
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" AND resource.type="gce_instance_group" AND resource.labels.instance_group_name="INSTANCE_GROUP_NAME"
Buscar todos los resultados de verificaciones de estado de un NEG específico
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" AND resource.type="gce_network_endpoint_group" AND resource.labels.network_endpoint_group_id="ENDPOINT_GROUP_ID"
Buscar todas las transiciones de verificaciones de estado de la dirección IP 10.128.15.201
de la instancia de backend
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" jsonPayload.healthCheckProbeResult.ipAddress="10.128.15.201"
Buscar todos los extremos que tenían el estado HEALTHY, pero que ahora tienen el estado TIMEOUT
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" jsonPayload.healthCheckProbeResult.previousDetailedHealthState="HEALTHY" jsonPayload.healthCheckProbeResult.detailedHealthState="TIMEOUT"
Buscar los registros de estado de un período específico
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fhealthchecks" timestamp>"2019-02-14T02:20:00.0Z" timestamp<"2019-02-14T03:30:00.0Z"
¿Qué sigue?
- Consulta Descripción general de las verificaciones de estado.
- Crea una verificación de estado.
- Obtén más información sobre Logging.