Registrar y supervisar el balanceo de cargas TCP/UDP interno

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En este documento, se muestra cómo configurar y usar Cloud Logging y Cloud Monitoring para el balanceo de cargas de TCP/UDP interno.

Logging

Los registros proporcionan información útil para solucionar problemas y supervisar el balanceador de cargas de paso de Google Cloud. Los registros se agregan por conexión y se exportan casi en tiempo real. Los registros se generan para los flujos de TCP y UDP de cada instancia con balanceo de cargas para el tráfico de entrada y salida. Para obtener más información sobre los campos proporcionados en la entrada de registro, consulta Campos de registro.

No se aplican cargos adicionales por usar registros. Según cómo transfieras registros, se aplican los precios estándar para Cloud Logging, BigQuery o Pub/Sub. La habilitación de los registros no afecta el rendimiento del balanceador de cargas.

Beneficios

A continuación, se presentan los beneficios de usar registros:

Supervisión del tráfico del balanceador de cargas de TCP/UDP interno

El registro por conexión te brinda estadísticas sobre cómo se enruta cada conexión a los backends activos.

Solución de problemas de red

Puedes usar los registros internos del balanceador de cargas de TCP/UDP para solucionar problemas. Para obtener más información, consulta Soluciona problemas del balanceador de cargas de TCP/UDP interno.

Formato de registro de muestra para flujos de VM a VM

En el siguiente diagrama, se muestra el tráfico entrante y saliente de un cliente interno (192.168.1.2), un balanceador de cargas de TCP/UDP interno (10.240.0.200) y una instancia de backend (10.240.0.3).

Flujos de cliente interno a servicios de VM de backend.
Flujos entrantes y salientes para flujos de VM a VM.

Los registros del balanceador de cargas de TCP/UDP interno para las conexiones del cliente a la instancia de backend tienen el siguiente formato:

  • connection.clientIp: 192.168.1.2
  • connection.serverIp: 10.240.0.200
  • bytesSent: 1256
  • bytesReceived: 4521

Muestreo y recopilación de registros

Google Cloud crea muestras de los paquetes que entran y salen de las VMs de backend del balanceador de cargas. Esos paquetes de muestra se procesan para generar registros.

No todos los paquetes se muestrean. Google Cloud muestrea un subconjunto variable de paquetes según la cantidad de tráfico en el host físico. La tasa de muestreo más baja posible es una de 1,024 paquetes. Google Cloud controla de forma dinámica la tasa de muestreo. No puedes ajustar la tasa de muestreo.

El muestreo de paquetes interactúa con reglas de firewall de las siguientes maneras:

  • Los paquetes se muestrean antes de que se apliquen las reglas de firewall de salida.
  • Los paquetes se muestrean después de que se apliquen las reglas de firewall de entrada.

Después del muestreo de paquetes, Google Cloud procesa los paquetes de muestra según el siguiente procedimiento:

  1. Agregación: Los paquetes de muestra se agregan durante un intervalo de cinco segundos para producir una sola entrada de flujo.

  2. Muestreo de registros configurable (secundario): Este es un segundo proceso de muestreo, en el que se muestrean los flujos. Puedes controlar la fracción de las entradas de flujo que se emiten como entradas de registro según el parámetro logConfig.sampleRate. Cuando logConfig.sampleRate es 1.0 (100%), significa que se procesan todos los paquetes de muestra.

  3. Escritura en Logging: Las entradas de registro se escriben en Cloud Logging.

Requisitos de dirección IP de origen del paquete de respuesta

Las muestras de registro del balanceo de cargas de TCP/UDP interno solo responden a los paquetes de las VMs de backend si la dirección IP de origen de esos paquetes coincide con la dirección IP de la regla de reenvío del balanceador de cargas a la que se envió el paquete de solicitud correspondiente. Para las conexiones de TCP, los paquetes de respuesta siempre deben tener fuentes que coincidan con el destino del paquete de la solicitud. Sin embargo, para otros protocolos, es posible que los paquetes de respuesta usen una dirección IP de origen diferente. Si deseas obtener detalles adicionales, consulta Direcciones IP para paquetes de solicitud y respuesta.

El proceso de muestreo de paquetes que usa el registro del balanceo de cargas de TCP/UDP interno omite cualquier paquete de respuesta de las VMs de backend si esos paquetes tienen fuentes que no coinciden con una dirección IP de una regla de reenvío para un balanceador de cargas de TCP/UDP interno.

Habilita el registro para un servicio de backend nuevo

gcloud

Crea un servicio de backend y habilita el registro con el comando gcloud beta compute backend-services create.

gcloud beta compute backend-services create BACKEND_SERVICE \
--region=REGION \
--enable-logging \
--logging-sample-rate=SAMPLE_RATE

Reemplaza lo siguiente:

  • BACKEND_SERVICE: el nombre del servicio de backend.
  • REGION: Región del servicio de backend que se creará.
  • SAMPLE_RATE: Este campo solo se puede especificar si el registro está habilitado para este servicio de backend. El valor del campo debe ser entre 0.0 y 1.0, donde 0.0 significa que no se informan registros y 1.0 significa que se informan todas las solicitudes registradas. Si se habilita el registro, pero se configura la tasa de muestreo como 0.0, es equivalente a inhabilitar el registro. El valor predeterminado es 1.0.

api

Haz una solicitud POST al método regionBackendServices.insert.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices

 {
 "name": "BACKEND_SERVICE",
  "loadBalancingScheme": "INTERNAL",
  "logConfig": {
   "enable": true,
   "sampleRate": SAMPLE_RATE
  }
 }
 

Habilita el registro en un servicio de backend existente

gcloud

Habilita el registro en un servicio de backend existente con el comando gcloud beta compute backend-services update.

gcloud beta compute backend-services update BACKEND_SERVICE \
--region=REGION \
--enable-logging \
--logging-sample-rate=SAMPLE_RATE

Reemplaza lo siguiente:

  • BACKEND_SERVICE: el nombre del servicio de backend.
  • REGION: Región del servicio de backend que se creará.
  • SAMPLE_RATE: Este campo solo se puede especificar si el registro está habilitado para este servicio de backend. El valor del campo debe ser entre 0.0 y 1.0, donde 0.0 significa que no se informan registros y 1.0 significa que se informan todas las solicitudes registradas. Si se habilita el registro, pero se configura la tasa de muestreo como 0.0, es equivalente a inhabilitar el registro. El valor predeterminado es 1.0.

api

Haz una solicitud PATCH al método regionBackendServices/patch.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE

 {
 "logConfig": {
   "enable": true,
   "sampleRate": SAMPLE_RATE
  }
 }
 

Inhabilita el registro en un servicio de backend existente

gcloud

Inhabilita el registro en un servicio de backend con el comando gcloud beta compute backend-services update.

gcloud beta compute backend-services update BACKEND_SERVICE \
--region=REGION \
--no-enable-logging

Reemplaza lo siguiente:

  • BACKEND_SERVICE: el nombre del servicio de backend.
  • REGION: Región del servicio de backend que se creará.

api

Haz una solicitud PATCH al método regionBackendServices/patch.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE

 {
 "logConfig": {
   "enable": false
  }
 }
 

Visualice los registros

Cuando los registros se transfieren a Cloud Logging y no se excluyen a través de un receptor de enrutadores de registros, puedes leer los registros mediante la API de Cloud Logging y Google Cloud CLI

Para ver todos los registros del balanceador de cargas de TCP/UDP interno, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página Explorador de registros.
    Ir al Explorador de registros
  2. Selecciona el tipo de recurso Regla del balanceador de cargas de red interno de Google Cloud.
  3. Selecciona el nombre de registro loadbalancing.googleapis.com/flows.

Consulta de consola

  1. En la consola de Google Cloud, ve a la página Explorador de registros.
    Ir al Explorador de registros
  2. Haz clic en el botón de activar o desactivar Mostrar consulta.
  3. Pega lo siguiente en el campo de la consulta. Asegúrate de reemplazar PROJECT_ID por el ID de tu proyecto.
    resource.type="loadbalancing.googleapis.com/InternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    
  4. Haga clic en Ejecutar consulta.

Visualiza los registros de un servicio de backend específico

Para ver los registros del balanceador de cargas de TCP/UDP interno de un servicio de backend específico, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página Explorador de registros.
    Ir al Explorador de registros
  2. Habilita Campos de registro.
  3. Selecciona el tipo de recurso Regla del balanceador de cargas de red interno de Google Cloud.
  4. Selecciona el nombre de registro loadbalancing.googleapis.com/flows.

Consulta de consola

  1. En la consola de Google Cloud, ve a la página Explorador de registros.
    Ir al Explorador de registros
  2. Haz clic en el botón de activar o desactivar Mostrar consulta.
  3. Pega lo siguiente en el campo de la consulta. Asegúrate de reemplazar PROJECT_ID por tu ID del proyecto y BACKEND_SERVICE_NAME por el nombre de tu servicio de backend.
    resource.type="loadbalancing.googleapis.com/InternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. Haz clic en Ejecutar consulta.

Visualiza los registros de un backend específico

Para ver los registros del balanceador de cargas de TCP/UDP interno de un grupo de instancias de backend o grupo de extremos de red (NEG) específico con extremos GCE_VM_IP, sigue estos pasos:

Console

  1. En la consola de Google Cloud, ve a la página Explorador de registros.
    Ir al Explorador de registros
  2. Habilita Campos de registro.
  3. Selecciona el tipo de recurso Regla del balanceador de cargas de red interno de Google Cloud.
  4. Selecciona el nombre de registro loadbalancing.googleapis.com/flows.

Consulta de consola

  1. En la consola de Google Cloud, ve a la página Explorador de registros.
    Ir al Explorador de registros
  2. Haz clic en el botón de activar o desactivar Mostrar consulta.
  3. Pega lo siguiente en el campo de la consulta. Reemplaza PROJECT_ID por el ID del proyecto y BACKEND_GROUP_NAME por el nombre del grupo de instancias o NEG.

    resource.type="loadbalancing.googleapis.com/InternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_group_name="BACKEND_GROUP_NAME"
    
  4. Haz clic en Ejecutar consulta.

Campos de registro

Algunos campos de registro tienen un formato estructurado con más de un dato en un campo específico. Por ejemplo, el campo connection es del tipo IpConnection, que contiene la dirección IP de origen y destino, el puerto y el protocolo en un solo campo. En las siguientes tablas, se describen estos campos múltiples.

El recurso supervisado es loadbalancing.googleapis.com/InternalNetworkLoadBalancerRule.

Campo Tipo Descripción
conexión IpConnection Esta conexión se describe a través de una tupla de 5.
startTime string Marca de tiempo (string con formato de fecha RFC 3339) del primer paquete observado durante el intervalo de tiempo agregado.
endTime string Marca de tiempo (string con formato fecha RFC 3339) del último paquete observado durante el intervalo de tiempo agregado.
bytesSent int64 Cantidad de bytes enviados del servidor al cliente.
bytesReceived Int64 Cantidad de bytes que recibió el servidor del cliente.
packetsSent int64 Cantidad de paquetes enviados desde el servidor al cliente.
packetsReceived int64 Cantidad de paquetes que recibió el servidor desde el destino.
rtt string La latencia se mide solo para conexiones TCP. La latencia es la suma del tiempo de ida y vuelta (RTT) estimado de la red más el tiempo consumido en el procesamiento del paquete dentro del sistema operativo de la VM del cliente. En los paquetes de muestra, el RTT se calcula desde la perspectiva de un backend con balanceo de cargas, mediante la medición de las diferencias de tiempo entre el backend que envía un segmento TCP y el backend que recibe una confirmación de recepción de TCP para el número de secuencia del segmento enviado. La latencia tiene el formato de una string que comienza con una cantidad de segundos y termina con “s” para indicar que son segundos. Los nanosegundos se expresan como segundos fraccionarios. Por ejemplo, la latencia de 250 milisegundos tiene el formato “0.250000000s”.

IpConnection

Campo Tipo Descripción
clientIp string Dirección IP de cliente
clientPort int32 Puerto del cliente. Solo se establece para conexiones TCP y UDP.
serverIp string Dirección IP del servidor(IP de la regla de reenvío)
serverPort int32 Puerto del servidor. Solo se establece para conexiones TCP y UDP.
protocolo int32 Número del protocolo IANA

Monitoring

El balanceo de cargas TCP/UDP interno exporta los datos de supervisión a Cloud Monitoring.

Se pueden usar las métricas de Monitoring para los siguientes fines:

  • Evaluar la configuración, el uso y el rendimiento de un balanceador de cargas TCP/UDP interno
  • Solucionar problemas
  • Mejorar el uso de recursos y la experiencia del usuario

Además de los paneles predefinidos en Monitoring, puedes crear paneles personalizados, configurar alertas y consultar las métricas a través de la API de Monitoring.

Ve los paneles de Monitoring

  1. En Google Cloud Console, ve a Monitoring.
    Ir a Monitoring
  2. Si Recursos aparece en el panel de navegación, selecciona Recursos y, luego, Balanceadores de cargas de Google Cloud. De lo contrario, selecciona Paneles y, a continuación, el panel llamado Balanceadores de cargas de Google Cloud.
  3. Haz clic en el nombre del balanceador de cargas.

En el panel izquierdo, verás varios detalles del balanceador de cargas seleccionado. En el panel derecho, verás grafos de serie temporal. Haz clic en el vínculo Desglose para ver los desgloses específicos. En el panel izquierdo, se presentan datos configurados en la actualidad, mientras que en el panel derecho se pueden presentar datos entregados por configuraciones históricas que por el momento no se reflejan en el panel izquierdo.

Define los paneles personalizados de Monitoring

Puedes crear paneles personalizados de Monitoring a través de métricas internas de balanceo de cargas TCP/UDP:

  1. En Google Cloud Console, ve a Monitoring.
    Ir a Monitoring
  2. Selecciona Paneles > Crear panel.
  3. Haz clic en Agregar gráfico.
  4. Ponle un título al gráfico.
  5. Selecciona métricas y filtros. Para las métricas, el tipo de recurso es Regla de balanceador de cargas TCP (interno) de Google Cloud (internal_tcp_lb_rule) o Regla de balanceador de cargas UDP (interno) de Google Cloud (internal_udp_lb_rule).
  6. Haz clic en Guardar.

Define las políticas de alertas

Puedes crear políticas de alertas para supervisar los valores de las métricas y recibir notificaciones cuando estas infrinjan una condición.

  1. En Google Cloud Console, ve a la página Monitoring.

    Ir a Monitoring

  2. En el panel de navegación de Monitoring, selecciona  Alertas.
  3. Si aún no creas canales de notificaciones y deseas recibir notificaciones, haz clic en Edit Notification Channels y agrega tus canales de notificaciones. Regresa a la página Alertas después de agregar tus canales.
  4. En la página Alertas, selecciona Crear política.
  5. Para seleccionar la métrica, expande el menú Seleccionar una métrica y, luego, haz lo siguiente:
    1. Para limitar el menú a las entradas relevantes, ingresa Google Cloud TCP Load Balancer o Google Cloud UDP Load Balancer en la barra de filtros. Si no hay resultados después de que filtres el menú, inhabilita la opción Show only active resources & metrics.
    2. Para el Tipo de recurso, selecciona Balanceador de cargas de TCP de Google Cloud o Balanceador de cargas de UDP de Google Cloud.
    3. Selecciona una Categoría de métrica y una Métrica. Luego, selecciona Aplicar.
  6. Haga clic en Next.
  7. La configuración de la página Configure alert trigger determina cuándo se activa la alerta. Selecciona un tipo de condición y, si es necesario, especifica un umbral. Para obtener más información, consulta Activador de condición.
  8. Haga clic en Next.
  9. Para agregar notificaciones a tu política de alertas, haz clic en Canales de notificaciones (opcional). En el diálogo, selecciona uno o más canales de notificaciones del menú y, luego, haz clic en Aceptar.
  10. Opcional: Actualiza la Duración del cierre automático de incidentes. Este campo determina cuándo Monitoring cierra los incidentes ante la ausencia de datos de métricas.
  11. Opcional: Haz clic en Documentación y, luego, agrega la información que deseas incluir en un mensaje de notificación.
  12. Haz clic en Nombre de la alerta y, luego, ingresa un nombre para la política de alertas.
  13. Haz clic en Crear política.
Para obtener más información, consulta Políticas de alertas.

Métricas para balanceadores de cargas TCP/UDP internos

Las métricas siguientes para balanceadores de cargas TCP/UDP internos se proporcionan a Monitoring.

Métrica Descripción
Capacidad de procesamiento entrante La cantidad de bytes enviados hacia las reglas de reenvío del balanceador de cargas TCP/UDP interno, tal como lo reciben los backends.
Paquetes entrantes La cantidad de paquetes enviados hacia las reglas de reenvío del balanceador de cargas TCP/UDP interno, tal como lo reciben los backends.
Capacidad de procesamiento saliente La cantidad de bytes enviados por backends de cargas internas balanceadas en conexiones vinculadas a IP de reglas de reenvío.
Paquetes salientes La cantidad de paquetes enviados por backends de cargas internas balanceadas en conexiones vinculadas a IP de reglas de reenvío.
Latencia(*) La distribución del RTT medida en conjuntos de paquetes sobre cada conexión de balanceo de cargas interno. Por lo general, se reduce al percentil 95 en las vistas de Monitoring.

(*) Disponible solo para el tráfico de TCP.

Filtra las dimensiones para las métricas del balanceador de cargas TCP/UDP interno

Las métricas se agregan para cada balanceador de cargas TCP/UDP interno. Estas se pueden desglosar en las dimensiones siguientes:

Propiedad Descripción
NOMBRE DEL BACKEND Nombre del grupo de instancias o grupo de extremos de red (NEG) con extremos “GCE_VM_IP”.
ALCANCE DEL BACKEND El alcance (región o zona) del backend que recibió la conexión.
ZONA DEL BACKEND Para grupos de instancias zonales y grupos de extremos de red, zona del backend que entregó la conexión.
RED DEL CLIENTE La red de la instancia de cliente que se conectó al balanceador de cargas TCP/UDP interno.
SUBRED DEL CLIENTE La subred de la instancia de cliente que se conectó al balanceador de cargas TCP/UDP interno.
ZONA DEL CLIENTE La zona de Google Cloud de la instancia que se conectó a la regla de reenvío.
REGLA DE REENVÍO El nombre de la regla de reenvío del balanceador de cargas TCP/UDP interno.

Frecuencia y retención de informes de métricas

Las métricas de los balanceadores de cargas TCP/UDP internos se exportan a Monitoring en lotes con nivel de detalle de un minuto. Los datos de Monitoring se conservan durante seis semanas. Las métricas se basan en el tráfico muestreado (la tasa de muestreo es dinámica y no se puede ajustar). En el panel, se proporciona un análisis de datos en intervalos predeterminados de una hora (1H), seis horas (6H), un día (1D), una semana (1W) y seis semanas (6W). Puedes solicitar un análisis de forma manual en cualquier intervalo desde seis semanas hasta un minuto.

¿Qué sigue?