Registros de verificaciones de estado

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. Consulta Visualiza las exclusiones por tipo de recurso para obtener instrucciones sobre cómo verificar que se permitan los registros GCE instance group y Network endpoint group.

Limitaciones

  • 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

  1. En Google Cloud Console, ve a la página Verificación de estado.
    Ir a la página Verificación de estado
  2. Haz clic en Crear una verificación de estado.
  3. Configura el botón de selección Registros como Activado.
  4. Continúa con la configuración de la verificación de estado.

gcloud

gcloud beta compute health-checks create PROTOCOL HEALTH_CHECK_NAME \
   --enable-logging \
 ... other values

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

  1. En Google Cloud Console, ve a la página Verificación de estado.
    Ir a la página Verificación de estado
  2. Haz clic en el nombre de la verificación de estado.
  3. Haz clic en Editar .
  4. Configura el botón de selección Registros como Activado.
  5. Haz clic en Guardar.

gcloud

gcloud beta 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

  1. En Google Cloud Console, ve a la página Verificación de estado.
    Ir a la página Verificación de estado
  2. Haz clic en el nombre de la verificación de estado.
  3. Haz clic en Editar .
  4. Configura el botón de selección Registros como Desactivado.
  5. Haz clic en Guardar.

gcloud

Inhabilita el registro por completo

gcloud beta 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.

Consulta los 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 por 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 los 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

Las verificaciones de estado generan un registro cada vez que cambia el estado de un extremo. Sin embargo, es posible que el comportamiento del balanceador de cargas no varíe debido a un cambio de estado. Si se considera que un extremo es UNHEALTHY porque el servidor entrega una respuesta incorrecta y, después, deja de responder por completo, la verificación de estado enviará un registro con un estado nuevo de TIMEOUT. Sin embargo, el balanceador de cargas seguirá considerando que el extremo se encuentra en mal 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

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

La carga útil en formato JSON 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. Es el protocolo de verificación de estado que se usa para comprobar el estado del extremo (por ejemplo, TCP, HTTP y HTTPS, entre otros).
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 HTTP2, 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. Es 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:
  • En el caso de los balanceadores de cargas de TCP o UDP internos y los de red, el destino de los paquetes de verificación de estado es la dirección IP de la regla de reenvío del balanceador de cargas.
  • En el caso de los balanceadores de cargas de HTTP(S) externos, del proxy de TCP y del proxy de SSL que usan grupos de instancias como backends, el destino de los paquetes de verificación de estado es la dirección IP interna principal que se asocia con la interfaz de red principal de cada VM de backend.
  • En el caso de los balanceadores de cargas de HTTP(S) externos, del proxy de TCP y del proxy de SSL que usan grupos de extremos de red como backends, el destino de los paquetes de verificación de estado es la dirección IP del extremo, que puede ser una dirección (IP de alias) principal o secundaria.
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-14T02:30:00.0Z"

Próximos pasos