Registro y monitorización de balanceadores de carga de red de paso a través externos

En este documento se explica cómo configurar y usar Cloud Logging y Cloud Monitoring para balanceadores de carga de red de pases externos.

Los balanceadores de carga de red de paso a través externos basados en el servicio de backend admiten tanto el registro como la monitorización. Sin embargo, los balanceadores de carga de red de paso a través externos basados en grupos de destino solo admiten la monitorización.

Almacenamiento de registros

Los registros proporcionan información útil para solucionar problemas y monitorizar tu balanceador de carga de red de paso a través externo basado en el servicio de backend. Los registros se agregan por conexión y se exportan casi en tiempo real. Se generan registros de cada instancia con balanceo de carga para los flujos TCP, UDP, ESP, GRE, ICMP e ICMPv6 del tráfico de entrada y de 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 los registros. En función de cómo importes los registros, se aplicarán los precios estándar de Cloud Logging, BigQuery o Pub/Sub. Habilitar los registros no afecta al rendimiento del balanceador de carga.

El registro ofrece las siguientes ventajas:

  • Monitorización del tráfico del balanceador de carga de red de paso a través externo. El registro por conexión te permite saber cómo se enruta cada conexión a los backends de servicio.

  • Solución de problemas de red. Puede utilizar los registros del balanceador de carga de red de paso a través externo para solucionar problemas. Para obtener más información, consulta el artículo Solucionar problemas de balanceadores de carga de red de paso a través externos.

Formato de registro de ejemplo para flujos de un cliente externo a una VM

En el siguiente diagrama se muestra el tráfico entrante y saliente de un cliente externo (203.0.113.7), un balanceador de carga de red de paso a través externo (198.51.100.99) y una instancia de backend (10.240.0.2).

Flujos de servicios de VM de backend a cliente externo.
Flujos de entrada y salida de un cliente externo a una VM.

Los registros de los balanceadores de carga de red de paso a través externos de las conexiones del cliente a la instancia de backend tienen el siguiente formato:

  • connection.clientIp: 203.0.113.7
  • connection.serverIp: 198.51.100.99
  • bytesSent: 1256
  • bytesReceived: 4521

Muestreo y recogida de registros

Google Cloud muestra los paquetes que salen y entran en las VMs de backend del balanceador de carga. Los paquetes muestreados se procesan para generar registros.

No se muestrean todos los paquetes. Google Cloud Muestrea un subconjunto variable de paquetes en función de la cantidad de tráfico del host físico. La frecuencia de muestreo más baja posible es de uno de cada 1024 paquetes. Google Cloudcontrola la frecuencia de muestreo de forma dinámica. No puedes ajustar la frecuencia de muestreo.

El muestreo de paquetes interactúa con las reglas de cortafuegos de las siguientes formas:

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

Después del muestreo de paquetes, Google Cloud procesa los paquetes muestreados siguiendo este procedimiento:

  1. Agregación: los paquetes muestreados se agregan en un intervalo de cinco segundos para generar una sola entrada de flujo.

  2. Muestreo de registros configurable (secundario): se trata de un segundo proceso de muestreo que toma muestras de los flujos. Controlas 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 han procesado todos los paquetes muestreados.

  3. Escribir en el registro: las entradas de registro se escriben en Cloud Logging.

Campos opcionales:

Los registros de registro contienen campos obligatorios y campos opcionales. En la sección Campos de registro se indica qué campos son opcionales y cuáles son obligatorios. Todos los campos obligatorios se incluyen siempre. Puedes personalizar los campos opcionales que quieras conservar.

  • Si seleccionas Incluir todos los campos opcionales, se incluirán todos los campos opcionales del formato de registro en los registros de flujo. Cuando se añaden nuevos campos opcionales al formato de registro, los registros de flujo incluyen automáticamente los nuevos campos.

  • Si selecciona Excluir todos los opcionales, se omitirán todos los campos opcionales.

  • Si seleccionas Personalizado, puedes especificar los campos opcionales que quieras incluir por el campo principal, como serverInstance, o por sus nombres completos, como serverInstance.vm.

Cuando se añaden campos opcionales nuevos al formato de registro, los registros no los incluirán, a menos que sean campos nuevos dentro de un campo principal que hayas especificado que se incluya.

Si especifica un campo opcional personalizado mediante campos principales, cuando se añadan campos opcionales nuevos al formato de registro de ese campo principal, los registros incluirán automáticamente los campos nuevos. Por ejemplo, si elige incluir optionalFieldA, se incluirá automáticamente un nuevo campo añadido a los registros con el nombre optionalFieldA.subField1.

Para obtener instrucciones sobre cómo personalizar los campos opcionales, consulta el artículo Habilitar el registro en un nuevo servicio backend.

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

El registro toma muestras de los paquetes de respuesta de las VMs de backend solo 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 carga. En las conexiones TCP, los paquetes de respuesta siempre deben tener orígenes que coincidan con el destino del paquete de solicitud. Sin embargo, en otros protocolos, es posible que los paquetes de respuesta usen una dirección IP de origen diferente. Para obtener más información, consulta Direcciones IP de paquetes de solicitud y de retorno.

El proceso de muestreo de paquetes que usa el registro del balanceador de carga de red de paso a través externo omite los paquetes de respuesta de las VMs de backend si esos paquetes de respuesta tienen orígenes que no coinciden con una dirección IP de una regla de reenvío de un balanceador de carga de red de paso a través externo.

Habilitar el registro en un servicio de backend nuevo

Consola

  1. En la Google Cloud consola, ve a la página Balanceo de carga.

    Ir a Balanceo de carga

  2. Haz clic en el nombre de tu balanceador de carga.
  3. Haga clic en Editar y, a continuación, en Configuración de backend.
  4. Selecciona Crear un servicio de backend y, a continuación, rellena los campos obligatorios del servicio de backend.
  5. En la sección Almacenamiento de registros, marca la casilla Habilitar el almacenamiento de registros.
  6. Define una fracción de Frecuencia de muestreo. Puedes definir una tarifa entre 0.0 y 1.0 (valor predeterminado).
  7. Opcional: Para incluir todos los campos opcionales en los registros, en la sección Campos opcionales, haga clic en Incluir todos los campos opcionales.
  8. Para terminar de editar el servicio de backend, haz clic en Actualizar.
  9. Para terminar de editar el balanceador de carga, haz clic en Actualizar.

gcloud

Crea el servicio de backend para habilitar el registro con el comando gcloud compute backend-services create.

    gcloud compute backend-services create BACKEND_SERVICE \
      --region=REGION \
      --enable-logging \
      --logging-sample-rate=SAMPLE_RATE \
      --logging-optional=LOGGING_OPTIONAL \
      --logging-optional-fields=OPTIONAL_FIELDS
    

Haz los cambios siguientes:

  • BACKEND_SERVICE: el nombre del servicio de backend.
  • REGION: la región del servicio backend que se va a crear.
  • SAMPLE_RATE: este campo solo se puede especificar si el registro está habilitado para este servicio backend.

    El valor del campo debe ser 0.0 to 1.0, donde 0.0 significa que no se generan registros y 1.0 significa que se generan registros de todos los paquetes muestreados. Habilitar el registro, pero definir la frecuencia de muestreo en 0.0 equivale a inhabilitar el registro. El valor predeterminado es 1.0.

  • LOGGING_OPTIONAL: los campos opcionales que quieras incluir en los registros:
    • INCLUDE_ALL_OPTIONAL para incluir todos los campos opcionales.
    • EXCLUDE_ALL_OPTIONAL (valor predeterminado) para excluir todos los campos opcionales.
    • CUSTOM para incluir una lista personalizada de campos opcionales que especifiques en OPTIONAL_FIELDS.
  • OPTIONAL_FIELDS: lista separada por comas de campos opcionales que quieras incluir en los registros.

    Por ejemplo, serverInstance.vm,serverGkeDetails. Solo se puede definir si LOGGING_OPTIONAL se define como CUSTOM.

API

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

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

Excluir todos los campos opcionales

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

Incluir todos los campos opcionales

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

Incluir una lista personalizada de campos opcionales

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

Habilitar el registro en un servicio de backend

Consola

  1. En la Google Cloud consola, ve a la página Balanceo de carga.

    Ir a Balanceo de carga

  2. Haz clic en el nombre de tu balanceador de carga.
  3. Haz clic en Editar y, a continuación, en Configuración de backend.
  4. Junto a tu servicio backend, haz clic en Editar.
  5. En la sección Almacenamiento de registros, marca la casilla Habilitar el almacenamiento de registros.
  6. Define una fracción de Frecuencia de muestreo. Puedes definir una tarifa entre 0.0 y 1.0 (valor predeterminado).
  7. Opcional: Para incluir todos los campos opcionales en los registros, en la sección Campos opcionales, haga clic en Incluir todos los campos opcionales.
  8. Para terminar de editar el servicio de backend, haz clic en Actualizar.
  9. Para terminar de editar el balanceador de carga, haz clic en Actualizar.

gcloud

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

    gcloud compute backend-services update BACKEND_SERVICE \
      --region=REGION \
      --enable-logging \
      --logging-sample-rate=SAMPLE_RATE \
      --logging-optional=LOGGING_OPTIONAL \
      --logging-optional-fields=OPTIONAL_FIELDS
    

Haz los cambios siguientes:

  • BACKEND_SERVICE: el nombre del servicio de backend.
  • REGION: la región del servicio backend que se va a crear.
  • SAMPLE_RATE: este campo solo se puede especificar si el registro está habilitado para este servicio backend.

    El valor del campo debe ser 0.0 to 1.0, donde 0.0 significa que no se registran registros y 1.0 significa que se generan registros para todos los paquetes muestreados. Habilitar el registro, pero definir la frecuencia de muestreo en 0.0 equivale a inhabilitar el registro. El valor predeterminado es 1.0.

  • LOGGING_OPTIONAL: los campos opcionales que quieras incluir en los registros:
    • INCLUDE_ALL_OPTIONAL para incluir todos los campos opcionales.
    • EXCLUDE_ALL_OPTIONAL (valor predeterminado) para excluir todos los campos opcionales.
    • CUSTOM para incluir una lista personalizada de campos opcionales que especifiques en OPTIONAL_FIELDS.
  • OPTIONAL_FIELDS: lista separada por comas de campos opcionales que quieras incluir en los registros.

    Por ejemplo, serverInstance.vm,serverGkeDetails. Solo se puede definir si LOGGING_OPTIONAL se define como CUSTOM.

API

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

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

Excluir todos los campos opcionales

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

Incluir todos los campos opcionales

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

Incluir una lista personalizada de campos opcionales

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

Inhabilitar el registro en un servicio backend

Consola

  1. En la Google Cloud consola, ve a la página Balanceo de carga.

    Ir a Balanceo de carga

  2. Haz clic en el nombre de tu balanceador de carga.

  3. Haz clic en Editar y, a continuación, en Configuración de backend.

  4. Para inhabilitar el registro por completo, en la sección Registro, desmarca la casilla Habilitar registro.

  5. Si dejas el registro habilitado, puedes definir una fracción de Frecuencia de muestreo diferente. Puedes definir el valor entre 0.0 y 1.0 (predeterminado). Para generar registros solo del 20% de los paquetes muestreados, asigna el valor 0.2.

  6. Para terminar de editar el servicio de backend, haz clic en Actualizar.

  7. Para terminar de editar el balanceador de carga, haz clic en Actualizar.

gcloud

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

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

Haz los cambios siguientes:

  • BACKEND_SERVICE: el nombre del servicio de backend.
  • REGION: la región del servicio de backend.

API

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

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

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

Ver registros

Cuando los registros se ingieren en Cloud Logging y no se excluyen mediante un sumidero del enrutador de registros, puedes leerlos con la API de Cloud Logging y la CLI de Google Cloud.

Para ver todos los registros del balanceador de carga de red de paso a través externo, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a la página Explorador de registros.

    Ir a Explorador de registros

  2. Selecciona el tipo de recurso Regla de balanceador de carga de red de paso a través externo.

  3. Selecciona el nombre de registro loadbalancing.googleapis.com/flows.

Consulta de consola

  1. En la Google Cloud consola, ve a la página Explorador de registros.

    Ir a Explorador de registros

  2. Haz clic en el interruptor Mostrar consulta.

  3. Pega lo siguiente en el campo de consulta. Sustituye PROJECT_ID por el ID de tu proyecto.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    
  4. Haz clic en Realizar una consulta.

Ver los registros de un servicio backend específico

Para ver los registros de un balanceador de carga de red de paso a través externo de un servicio de backend específico, sigue estos pasos:

Consulta de consola

  1. En la Google Cloud consola, ve a la página Explorador de registros.

    Ir a Explorador de registros

  2. Haz clic en el interruptor Mostrar consulta.

  3. Pega lo siguiente en el campo de consulta. Sustituye PROJECT_ID por el ID de tu proyecto y BACKEND_SERVICE_NAME por el nombre de tu servicio backend.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. Haz clic en Realizar una consulta.

Ver los registros de un grupo de instancias de backend

Para ver los registros del balanceador de carga de red de paso a través externo de un grupo de instancias de backend específico, sigue estos pasos:

Consulta de consola

  1. En la Google Cloud consola, ve a la página Explorador de registros.

    Ir a Explorador de registros

  2. Haz clic en el interruptor Mostrar consulta.

  3. Pega lo siguiente en el campo de consulta. Sustituye PROJECT_ID por el ID de tu proyecto y BACKEND_GROUP_NAME por el nombre del grupo de instancias.

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

Campos de registro

Los registros de log contienen campos obligatorios, que son los campos predeterminados de todos los registros de log, y campos opcionales que añaden información adicional. Los campos opcionales se pueden omitir para ahorrar costes de almacenamiento.

Algunos campos de registro tienen un formato de varios campos, con más de un dato en un campo determinado. Por ejemplo, el campo connection tiene el formato IpConnection y contiene la dirección IP y el puerto de origen y de destino, además del protocolo, en un solo campo. Estos campos de varios campos se describen en la siguiente tabla de formato de registro.

El recurso monitorizado es loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule.

Campo Formato de campo Tipo de campo: obligatorio u opcional Descripción
conexión IpConnection Obligatorio Tupla de 5 elementos que describe esta conexión.
startTime cadena Obligatorio Marca de tiempo (formato de cadena de fecha RFC 3339) del primer paquete observado durante el intervalo de tiempo agregado.
endTime cadena Obligatorio Marca de tiempo (formato de cadena de fecha RFC 3339) del último paquete observado durante el intervalo de tiempo agregado.
bytesSent int64 Obligatorio Número de bytes enviados del servidor al cliente.
bytesReceived int64 Obligatorio Número de bytes que el servidor ha recibido del cliente.
packetsSent int64 Obligatorio Número de paquetes enviados del servidor al cliente.
packetsReceived int64 Obligatorio Número de paquetes recibidos por el servidor del cliente.
rtt cadena Obligatorio

La latencia solo se mide en las conexiones TCP. La latencia es la suma del tiempo de ida y vuelta (RTT) de la red estimado más el tiempo empleado en procesar el paquete en el sistema operativo del cliente.

En el caso de los paquetes muestreados, el RTT se calcula desde la perspectiva de un backend con balanceo de carga. Para ello, se miden las diferencias de tiempo entre el momento en que el backend envía un segmento TCP y el momento en que recibe una confirmación TCP del número de secuencia del segmento enviado.

La latencia se muestra como una cadena que empieza por el número de segundos y termina con "s" para indicar segundos. Los nanosegundos se expresan como fracciones de segundo. Por ejemplo, una latencia de 250 milisegundos se indica como "0.250000000s".

serverInstance InstanceDetails Opcional Detalles de la instancia de VM de backend.
clientLocation GeographicDetails Opcional Los metadatos de ubicación disponibles del cliente.
serverGkeDetails GkeDetails Opcional Metadatos de GKE del backend del servidor. Solo está disponible si el backend es un endpoint de GKE.
networkTier NetworkTierDetails Opcional Nivel de red para conexiones externas. Solo se rellena cuando el cliente no está enGoogle Cloud.

Formato de campo IpConnection

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

Formato de campo InstanceDetails

Campo Tipo Descripción
projectId cadena ID del proyecto que contiene la VM
vm cadena Nombre de instancia de la VM
region [región] cadena Región de la VM
zona cadena Zona de la VM
vmIp cadena Dirección IPv4 interna principal de la interfaz de red que ha servido la conexión.

Formato del campo GeographicDetails

Campo Tipo Descripción
continent cadena Nombre del continente
regionCode cadena Un código de región CLDR de Unicode, como US o FR. En la mayoría de los países, estos códigos se corresponden directamente con los códigos ISO-3166-2.
subRegion cadena Un ID de subdivisión CLDR de Unicode. Por ejemplo, una provincia o un estado del país, como USCA o CAON. Estos códigos Unicode se derivan de las subdivisiones definidas por el estándar ISO 3166-2.
city cadena Nombre de la ciudad (por ejemplo, Mountain View para Mountain View, California). No hay una lista canónica de valores válidos para esta variable. Los nombres de las ciudades pueden contener letras US-ASCII, números, espacios y los siguientes caracteres: !#$%&'*+-.^_`|~.
asn int32 Número de sistema autónomo (ASN) de la red externa a la que pertenece este endpoint.

Formato del campo GkeDetails

Campo Tipo Descripción
clúster ClusterDetails Metadatos del clúster de GKE
pod PodDetails Metadatos de los pods de GKE, que se rellenan cuando el origen o el destino del tráfico es un pod
servicio ServiceDetails Metadatos de servicio de GKE, rellenados solo en los endpoints de servicio. El registro contiene hasta dos servicios. Si hay más de dos servicios relevantes, este campo contiene un único servicio con un marcador especial MANY_SERVICES.

Formato del campo ClusterDetails

Campo Tipo Descripción
clúster cadena Nombre del clúster de GKE
clusterLocation cadena Ubicación del clúster. La ubicación del clúster puede ser una zona o una región.

Formato del campo PodDetails

Campo Tipo Descripción
pod cadena Nombre del pod
podNamespace cadena Espacio de nombres del pod

Formato del campo ServiceDetails

Campo Tipo Descripción
servicio cadena Nombre del servicio. Si hay más de dos servicios relevantes, el campo se define como el marcador especial MANY_SERVICES.
serviceNamespace cadena Espacio de nombres del servicio

Formato del campo NetworkTierDetails

Campo Tipo Descripción
networkTier cadena NetworkTier usado en la conexión, uno de los siguientes valores: [PREMIUM, STANDARD, FIXED_STANDARD, UNKNOWN].

Supervisión

Los balanceadores de carga de red de paso a través externos exportan métricas clave a Cloud Monitoring.

Las métricas de monitorización se pueden usar para lo siguiente:

  • Evaluar la configuración, el uso y el rendimiento de un balanceador de carga
  • Solucionar problemas
  • Mejorar la utilización de recursos y la experiencia de usuario

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

Ver paneles de control de monitorización

Consola

  1. En la Google Cloud consola, ve a la página Monitorización.

    Ir a Monitoring

  2. En el panel de navegación, selecciona Paneles.

  3. Seleccione el panel de control Balanceadores de carga de Google Cloud. Se muestran todos los balanceadores de carga.

  4. Selecciona el nombre del balanceador de carga en la lista de balanceadores de carga.

En el panel Detalles del balanceador de carga de red de paso a través externo, puede ver varios detalles del balanceador de carga seleccionado. En este panel se muestran las configuraciones actuales.

En el panel Métricas clave, puedes ver gráficos de cada métrica clave. Para ver desgloses específicos, haga clic en Desgloses. En este panel se muestran datos basados en configuraciones anteriores, mientras que en el panel Detalles del balanceador de carga de red de paso a través externo solo se muestran las configuraciones actuales. Para obtener más información, consulta Paneles de control y gráficos.

Definir paneles de control personalizados de monitorización

Puede crear paneles de control de Monitoring personalizados con métricas de balanceadores de carga de red de paso a través externos.

Consulta la lista de métricas y tipos de recursos para ver las métricas recogidas. Consulta la sección Filtros para ver las listas de atributos que puedes usar para filtrar los resultados.

Consola

  1. En la Google Cloud consola, ve a la página Monitorización.

    Ir a Monitoring

  2. Selecciona Paneles > Crear panel.

  3. Haz clic en Añadir gráfico.

  4. Ponle un título al gráfico.

  5. Seleccione métricas y filtros.

    Para encontrar métricas de balanceadores de carga de red de paso a través externos, busca el prefijo loadbalancing.googleapis.com/l3/external.

  6. Haz clic en Guardar.

Definir alertas de Monitoring

Puede definir alertas de Monitoring en varias métricas de balanceadores de carga de red de paso a través externos:

Consola

  1. En la Google Cloud consola, ve a la página Monitorización.

    Ir a Monitoring

  2. Selecciona Alertas > Crear una política.

  3. Seleccione tipos de recursos y métricas.

    Para encontrar los tipos de recursos y las métricas de los balanceadores de carga de red de paso a través externos, busca loadbalancing.googleapis.com/l3/external en el campo Buscar tipo de recurso y métrica.

  4. Especifica una configuración para definir cuándo se debe activar una alerta.

  5. Añade Filtros si es necesario.

  6. Haz clic en Guardar.

Frecuencia de los informes de métricas y retención

Las métricas de los balanceadores de carga de red de paso a través externos se exportan a Monitoring en lotes con una granularidad de un minuto. Los datos de monitorización 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). El panel de control ofrece 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). Puede solicitar manualmente un análisis en cualquier intervalo de entre seis semanas y sesenta segundos.

Métricas y tipos de recursos

En esta sección se describen las métricas y los tipos de recursos de los balanceadores de carga de red de paso a través externos.

Métricas

Las siguientes métricas de los balanceadores de carga de red de paso a través externos se registran en Monitoring. Puede usar estos nombres de métricas al hacer solicitudes a la API.

metric_name Tipo Descripción
loadbalancing.googleapis.com/l3/external/ingress_bytes_count contador Número de bytes enviados desde un cliente a un backend de un balanceador de carga de red de paso a través externo. En el caso de los flujos TCP, solo se contabilizan los bytes del flujo de la aplicación.
loadbalancing.googleapis.com/l3/external/ingress_packets_count contador Número de paquetes enviados desde un cliente a un backend de un balanceador de carga de red de paso a través externo.
loadbalancing.googleapis.com/l3/external/egress_bytes_count contador Número de bytes enviados desde un backend de un balanceador de carga de red de paso a través externo a un cliente. En el caso de los flujos TCP, solo se contabilizan los bytes del flujo de la aplicación.
loadbalancing.googleapis.com/l3/external/egress_packets_count contador Número de paquetes enviados desde un backend de balanceador de carga de red de paso a través externo a un cliente.
loadbalancing.googleapis.com/l3/external/rtt_latencies distribución

Distribución del tiempo de ida y vuelta medido en conexiones TCP para flujos de balanceadores de carga de red de paso a través externos.

Solo está disponible para el tráfico TCP.

Tipos de recursos

Los balanceadores de carga de red de paso a través externos usan los siguientes tipos de recursos:

  • tcp_lb_rule
  • udp_lb_rule
  • loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

Un balanceador de carga de red de paso a través externo puede admitir tráfico TCP, UDP, ESP, GRE, ICMP e ICMPv6.

Puede especificar el tipo de recurso como tcp_lb_rule o udp_lb_rule para limitar los datos monitorizados a los protocolos TCP o UDP. Puedes especificar el tipo de recurso como loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule para monitorizar todos los protocolos admitidos, incluidos los protocolos TCP, UDP, ESP, GRE, ICMP e ICMPv6.

Filtros

Las métricas se agregan para cada balanceador de carga de red de paso a través externo. Puede filtrar las métricas agregadas por las siguientes dimensiones.

Etiquetas de recursos de tcp_lb_rule o udp_lb_rule

Puedes restringir tu consulta por recurso. También puedes agrupar los resultados por estos valores.

resource.label.<var>LABEL_KEY</var>:
label_key Tipo Descripción
project cadena Identificador del proyecto asociado a este recurso. Google Cloud
load_balancer_name cadena Nombre del balanceador de carga.
region cadena La región en la que se encuentra el backend del balanceador de carga. Por ejemplo, us-central1, europe-west1, asia-east1.
network_name cadena La red de VPC en la que reside el backend del balanceador de carga.
backend_target_type cadena Indica si el balanceador de carga de red de paso a través externo se basa en un grupo de destino o en un servicio de backend. Los valores válidos son BACKEND_SERVICE y TARGET_POOL.
backend_target_name cadena En el caso de los balanceadores de carga de red de paso a través externos basados en grupos de destino, el nombre del grupo de destino. En el caso de los balanceadores de carga de red de paso a través externos basados en el servicio de backend, el nombre del servicio de backend.
forwarding_rule_name cadena Nombre de la regla de reenvío.
forwarding_rule_network_tier cadena El nivel de red de la regla de reenvío.
backend_name cadena

Nombre del backend que ha gestionado la conexión.

En el caso de un balanceador de carga de red de paso a través externo basado en un servicio de backend, el valor es el nombre del grupo de instancias de backend o del grupo de puntos finales de red (NEG) que ha gestionado la conexión.

En el caso de un balanceador de carga de red de paso a través externo basado en un grupo de destino, el valor es el nombre del grupo de destino.

backend_type cadena

El tipo de backend que ha gestionado la conexión.

En el caso de un balanceador de carga de red de paso a través externo basado en un servicio de backend, el valor puede ser INSTANCE_GROUP o NETWORK_ENDPOINT_GROUP.

En el caso de un balanceador de carga de red de paso a través externo basado en un grupo de destino, el valor es TARGET_POOL.

backend_scope cadena

En el caso de un balanceador de carga de red de paso a través externo basado en un servicio de backend, la zona o la región del grupo de instancias o del NEG de backend.

En el caso de un balanceador de carga de red basado en un grupo de destino, el valor es UNSUPPORTED_FOR_TARGET_POOL.

backend_scope_type cadena

El tipo de ámbito del grupo de backend que ha gestionado la conexión. Los valores válidos son ZONE y REGION.

En el caso de un balanceador de carga de red basado en un grupo de destino, el valor es UNSUPPORTED_FOR_TARGET_POOL.

backend_failover_configuration cadena La configuración de conmutación por error del grupo de backend que ha gestionado la conexión. Los valores válidos son PRIMARY, BACKUP o UNKNOWN.
backend_subnetwork_name cadena Nombre de la subred del backend que ha recibido la conexión.
endpoint_zone cadena La zona de la VM de backend que ha gestionado la conexión.

Etiquetas de recursos de loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

Puedes restringir tu consulta por recurso. También puedes agrupar los resultados por estos valores.

resource.label.<var>LABEL_KEY</var>:
label_key Tipo Descripción
project cadena Identificador del proyecto asociado a este recurso. Google Cloud
region cadena La región en la que se encuentra el backend del balanceador de carga. Por ejemplo: us-central1, europe-west1, asia-east1.
backend_network_name cadena La red de VPC en la que reside el backend del balanceador de carga.
backend_target_type cadena El tipo de destino backend que ha gestionado la conexión. Los valores válidos son BACKEND_SERVICE y TARGET_POOL.
backend_service_name cadena Nombre del servicio backend que ha gestionado la conexión. Si backend_target_type es TARGET_POOL, el valor es UNSUPPORTED_FOR_TARGET_POOL.
primary_target_pool cadena El nombre del grupo de destino principal. Si backend_target_type es BACKEND_SERVICE, el valor es UNSUPPORTED_FOR_BACKEND_SERVICE.
target_pool cadena Nombre del grupo de destino. Si backend_target_type es BACKEND_SERVICE, el valor es UNSUPPORTED_FOR_BACKEND_SERVICE.
forwarding_rule_name cadena Nombre de la regla de reenvío del balanceador de carga de red de paso a través externo.
backend_group_name cadena Nombre del grupo de backend que ha gestionado la conexión. Si backend_target_type es TARGET_POOL, el valor es UNSUPPORTED_FOR_TARGET_POOL.
backend_group_type cadena

El tipo de grupo de backend que ha gestionado la conexión.

Si backend_target_type es BACKEND_SERVICE, el valor es INSTANCE_GROUP o NETWORK_ENDPOINT_GROUP.

Si backend_target_type es TARGET_POOL, el valor es UNSUPPORTED_FOR_TARGET_POOL.

backend_group_scope cadena El ámbito del grupo de backend (nombre de la zona o región) que ha gestionado la conexión. Si backend_target_type es TARGET_POOL, el valor es UNSUPPORTED_FOR_TARGET_POOL.
backend_subnetwork_name cadena Nombre de la subred del backend que ha recibido la conexión.
backend_zone cadena La zona de la VM de backend que ha gestionado la conexión.

Etiquetas de métricas

Puedes restringir tu consulta por etiqueta de métrica. También puedes agrupar los resultados por estos valores.

metric.label.<var>LABEL_KEY</var>:
label_key Tipo Descripción
client_country cadena El país del cliente que ha iniciado la conexión con el balanceador de carga de red de paso a través externo.
client_continent cadena El continente del cliente que ha iniciado la conexión con el balanceador de carga de red de paso a través externo.
protocol cadena

El protocolo de la conexión del recurso loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule.

Este campo se deja en blanco en el caso de los recursos tcp_lb_rule y udp_lb_rule.

Monitorizar solicitudes a la API

Puedes crear consultas arbitrarias sobre métricas de balanceadores de carga de red de paso a través externos mediante la solicitud projects.timeSeries.list de la versión 3 de la API Monitoring. La estructura exacta de las distintas definiciones sigue la semántica genérica de los filtros de monitorización.

Solicitudes de ejemplo a la API

  • Obtiene todos los bytes enviados desde todos los balanceadores de carga de red de paso a través externos del proyecto entre las 12:00 y las 12:02 (UTC) del 1 de julio del 2019 con agregaciones de 1 minuto.

    Parámetros de timeSeries.list:

    • name: projects/PROJECT_ID
    • Filtro: resource.type = "tcp_lb_rule" Y metric.name="loadbalancing.googleapis.com/l3/external/egress_bytes_count"
    • interval.start_time: 2019-07-01T12:00:00Z
    • interval.end_time: 2019-07-01T12:02:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.perSeriesAligner: ALIGN_SUM
  • Obtén la medición de la mediana del RTT de todos los balanceadores de carga de red de paso a través externos del proyecto entre las 12:19 y las 12:20 (UTC) del 1 de julio del 2019, desglosada por país del cliente.

    Parámetros de timeSeries.list:

    • name: projects/PROJECT_ID
    • Filtro: resource.type = "tcp_lb_rule" Y metric.name="loadbalancing.googleapis.com/l3/external/rtt_latencies"
    • interval.start_time: 2019-07-01T12:19:00Z
    • interval.end_time: 2019-07-01T12:20:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.groupByFields: metric.label.client_country
    • aggregation.perSeriesAligner: ALIGN_PERCENTILE_50
  • Obtener el total de bytes de un balanceador de carga de red con paso a través externo específico entre las 12:19 y las 12:20 (UTC) del 1 de julio del 2019, desglosado por zona de endpoint y continente del cliente.

    Parámetros de timeSeries.list:

    • name: projects/PROJECT_ID
    • Filtro: resource.type = "tcp_lb_rule" Y resource.label.load_balancer_name = "netlb-bs-1" Y metric.name="loadbalancing.googleapis.com/l3/external/ingress_bytes_count"
    • interval.start_time: 2019-07-01T12:19:00Z
    • interval.end_time: 2017-07-01T12:20:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.groupByFields: metric.label.client_continent
    • aggregation.groupByFields: resource.label.endpoint_zone
    • aggregation.perSeriesAligner: ALIGN_SUM

Siguientes pasos