Registro y monitorización de balanceadores de carga de red de proxy

En esta página se explica cómo configurar y usar Cloud Logging y Cloud Monitoring para balanceadores de carga de red proxy.

Recursos de Monitoring

En la siguiente tabla se especifican los nombres de los recursos de los balanceadores de carga.

Balanceador de carga de red con proxy externo regional

Balanceador de carga de red con proxy interno regional

Balanceador de carga de red con proxy interno interregional

Balanceador de carga de red con proxy externo global

Balanceador de carga de red de proxy clásico
Tipo de recurso monitorizado de Logging "Regla de balanceador de carga de red de proxy"
l4_proxy_rule
"Global External Proxy Network Load Balancer Rule" (Regla de balanceador de carga de red de proxy externo global)
tcp_ssl_proxy_rule
Monitorizar el tipo de recurso monitorizado "Regla de balanceador de carga de red de proxy"
l4_proxy_rule
"Global External Proxy Network Load Balancer Rule" (Regla de balanceador de carga de red de proxy externo global)
tcp_ssl_proxy_rule

Registro de balanceadores de carga de red de proxy

Los registros proporcionan información útil para solucionar problemas y monitorizar balanceadores de carga. Los registros se agregan para cada conexión y te permiten saber cómo se enruta cada conexión a los back-ends de servicio.

No se aplican cargos adicionales por usar los registros. Sin embargo, en función de cómo importes los registros, se aplicarán los precios estándar de Cloud Logging, BigQuery o Pub/Sub. Además, habilitar los registros no afecta al rendimiento del balanceador de carga.

Muestreo y recogida de registros

Se toman muestras de las conexiones que salen y entran en las instancias de máquina virtual (VM) de backend del balanceador de carga. Estas conexiones muestreadas se procesan para generar registros. Puedes controlar la fracción de las conexiones que se emiten como entradas de registro mediante el parámetro logConfig.sampleRate. Si logConfig.sampleRate es 1.0 (100%), significa que se generan registros de todas las conexiones y se escriben en Cloud Logging.

Habilitar el registro en un servicio de backend nuevo

gcloud

Usa el comando gcloud compute backend-services create.

En el caso de los balanceadores de carga de red con proxy externos regionales y los balanceadores de carga de red con proxy internos regionales:

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

En el caso de los balanceadores de carga de red con proxy externo globales, los balanceadores de carga de red con proxy clásicos o los balanceadores de carga de red con proxy internos entre regiones:

    gcloud compute backend-services create BACKEND_SERVICE \
        --global \
        --enable-logging \
        --logging-sample-rate=SAMPLE_RATE
    

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 registran todas las conexiones. Habilitar el registro, pero definir la frecuencia de muestreo en 0.0 equivale a inhabilitar el registro. El valor predeterminado es 1.0.

API

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

En el caso de los balanceadores de carga de red con proxy internos regionales:

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

En el caso de los balanceadores de carga de red de proxy externo regionales:

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

En el caso de los balanceadores de carga de red con proxy externo globales:

Haz una solicitud POST al método backendServices.insert:

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

En el caso de los balanceadores de carga de red de proxy clásicos:

Haz una solicitud POST al método backendServices.insert:

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

En el caso de los balanceadores de carga de red con proxy internos entre regiones:

Haz una solicitud POST al método backendServices.insert:

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

Haz los cambios siguientes:

  • BACKEND_SERVICE: el nombre del servicio de backend.
  • 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 registran todas las conexiones. Habilitar el registro, pero definir la frecuencia de muestreo en 0.0 equivale a inhabilitar el registro. El valor predeterminado es 1.0.

Habilitar el registro en un servicio de backend

gcloud

Usa el comando gcloud compute backend-services update.

En el caso de los balanceadores de carga de red con proxy externos regionales y los balanceadores de carga de red con proxy internos regionales:

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

En el caso de los balanceadores de carga de red con proxy externo globales, los balanceadores de carga de red con proxy clásicos o los balanceadores de carga de red con proxy internos entre regiones, haz lo siguiente:

    gcloud compute backend-services update BACKEND_SERVICE \
        --global \
        --enable-logging \
        --logging-sample-rate=SAMPLE_RATE
    

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 registran todas las conexiones. Habilitar el registro, pero definir la frecuencia de muestreo en 0.0 equivale 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/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
     

En el caso de los balanceadores de carga de red con proxy internos regionales:

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

En el caso de los balanceadores de carga de red de proxy externo regionales:

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

En el caso de los balanceadores de carga de red con proxy externo globales:

Haz una solicitud PATCH al método backendServices/patch:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL_MANAGED",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

En el caso de los balanceadores de carga de red de proxy clásicos:

Haz una solicitud PATCH al método backendServices/patch:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

En el caso de los balanceadores de carga de red con proxy internos entre regiones:

Haz una solicitud PATCH al método backendServices/patch:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "INTERNAL_MANAGED",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Haz los cambios siguientes:

  • PROJECT_ID: el nombre de tu proyecto.
  • BACKEND_SERVICE: el nombre del servicio de backend.
  • SAMPLE_RATE: este campo solo se puede especificar si el registro está habilitado para este servicio de 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 registran todas las conexiones. Habilitar el registro, pero definir la frecuencia de muestreo en 0.0 equivale a inhabilitar el registro. El valor predeterminado es 1.0.

Inhabilitar el registro en un servicio backend

gcloud

Usa el comando gcloud compute backend-services update.

En el caso de los balanceadores de carga de red con proxy externos regionales y los balanceadores de carga de red con proxy internos regionales:

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

En el caso de los balanceadores de carga de red con proxy externo globales, los balanceadores de carga de red con proxy clásicos o los balanceadores de carga de red con proxy internos entre regiones, haz lo siguiente:

gcloud compute backend-services update BACKEND_SERVICE \
   --global \
   --no-enable-logging

Haz los cambios siguientes:

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

API

En el caso de los balanceadores de carga de red con proxy externos regionales y los balanceadores de carga de red con proxy internos regionales:

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
   }
  }
 

En el caso de los balanceadores de carga de red con proxy externo globales, los balanceadores de carga de red con proxy clásicos o los balanceadores de carga de red con proxy internos entre regiones:

Haz una solicitud PATCH al método backendServices/patch:

 PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
  {
  "logConfig": {
    "enable": false
   }
  }
 

Haz los cambios siguientes:

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

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, 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 Proxy Network Load Balancer Rule (Regla de balanceador de carga de red proxy).

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

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.

    resource.type="LOG_RESOURCE_TYPE"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
    
  4. Haz clic en Realizar una consulta.

Haz los cambios siguientes:

  • LOG_RESOURCE_TYPE: el tipo de recurso monitorizado de registro, que puede ser l4_proxy_rule o tcp_ssl_proxy_rule.
  • PROJECT_ID: el nombre de tu proyecto.

Ver los registros de un servicio backend específico

Para ver los registros de un servicio 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.

    resource.type="LOG_RESOURCE_TYPE"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. Haz clic en Realizar una consulta.

Haz los cambios siguientes:

  • LOG_RESOURCE_TYPE: el tipo de recurso monitorizado de registro, que puede ser l4_proxy_rule o tcp_ssl_proxy_rule.
  • PROJECT_ID: el nombre de tu proyecto.
  • BACKEND_SERVICE_NAME: el nombre del servicio backend.

Ver los registros de un grupo de instancias de backend

Para ver los registros 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.

    resource.type="LOG_RESOURCE_TYPE"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
    resource.labels.backend_group_name="BACKEND_GROUP_NAME"
    
  4. Haz clic en Realizar una consulta.

Haz los cambios siguientes:

  • LOG_RESOURCE_TYPE: el tipo de recurso monitorizado de registro, que puede ser l4_proxy_rule o tcp_ssl_proxy_rule.
  • PROJECT_ID: el nombre de tu proyecto.
  • BACKEND_GROUP_NAME: el nombre del grupo de instancias.

Qué se registra

Las entradas de registro contienen información útil para monitorizar y depurar tu tráfico. Los registros de registro contienen campos obligatorios, que son los campos predeterminados de todos los registros de registro.

Campo Formato de campo Tipo de campo: obligatorio u opcional Descripción
severity
timestamp
receiveTimestamp
insertID
logName
LogEntry Obligatorio Los campos generales, tal como se describen en una entrada de registro.
resource MonitoredResource Obligatorio

El MonitoredResource es el tipo de recurso asociado a una entrada de registro.

El MonitoredResourceDescriptor describe el esquema de un objeto MonitoredResource mediante un nombre de tipo y un conjunto de etiquetas. Para obtener más información, consulta Etiquetas de recursos.

jsonPayload object (formato Struct) Obligatorio La carga útil de la entrada de registro, que se expresa como un objeto JSON. El objeto JSON contiene los siguientes campos:
  • statusDetails
  • Entradas de registro de políticas de seguridad de Google Cloud Armor
  • El campo proxyStatus contiene una cadena que especifica por qué el balanceador de carga de red con proxy externo global, el balanceador de carga de red con proxy externo regional y el balanceador de carga de red con proxy interno han devuelto el código de error. Este campo no se admite en los balanceadores de carga de red proxy clásicos.

    El campo no se registra si el valor es una cadena vacía. Esto puede ocurrir si el proxy devuelve un código de error que no es 0, 4XX ni 5XX.

    El campo proxyStatus consta de dos partes:

  • backendNetworkName: especifica la red de VPC del backend.

Campos de registro

Los registros de registro contienen campos obligatorios, que son los campos predeterminados de cada registro de registro.

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

En la siguiente tabla se enumeran todos los campos de registro obligatorios del recurso l4_proxy_rule.

Campo Formato de campo Descripción
conexión IpConnection Tupla de 5 elementos que describe esta conexión.
startTime cadena Marca de tiempo (formato de cadena de fecha RFC 3339) en la que el balanceador de carga aceptó la conexión del cliente.
endTime cadena Marca de tiempo (formato de cadena de fecha RFC 3339) en la que el cliente o el backend finalizaron la conexión.
bytesSent int64 Número de bytes enviados del servidor al cliente.
bytesReceived int64 Número de bytes que el servidor ha recibido del cliente.

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

Campo de error proxyStatus

El campo proxyStatus contiene una cadena que especifica por qué el balanceador de carga ha devuelto un error. El campo proxyStatus se compone de dos partes: proxyStatus error y proxyStatus details. En esta sección se describen las cadenas que se admiten en el campo proxyStatus error.

El campo proxyStatus error se aplica a los siguientes balanceadores de carga:

  • Balanceador de carga de red con proxy externo global
  • Balanceador de carga de red con proxy externo regional
  • Balanceador de carga de red con proxy interno interregional
  • Balanceador de carga de red con proxy interno regional
Error de proxyStatus Descripción Códigos de respuesta habituales
destination_unavailable El balanceador de carga considera que el backend no está disponible. Por ejemplo, si se han producido errores en los intentos recientes de comunicarse con el backend o si una comprobación de estado ha dado como resultado un error. 500, 503
connection_timeout El balanceador de carga ha agotado el tiempo de espera al intentar abrir una conexión con el backend. 504
connection_terminated

La conexión del balanceador de carga con el backend ha finalizado antes de que se recibiera una respuesta completa.

Este proxyStatus error se devuelve en cualquiera de los siguientes casos:

  • La conexión del balanceador de carga con el backend ha finalizado antes de que se haya recibido una respuesta completa.
  • La conexión TLS ha fallado en el handshake de SSL y el cliente no ha establecido una conexión con el balanceador de carga.

0, 502, 503
connection_refused Se rechaza la conexión del balanceador de carga al backend. 502, 503
connection_limit_reached

El balanceador de carga está configurado para limitar el número de conexiones que tiene con el backend y se ha superado ese límite.

Este proxyStatus error se devuelve en cualquiera de los siguientes casos:

  • Si algún backend está en modo de mantenimiento, el tráfico no se puede enrutar al backend.
  • Si la solicitud tiene un límite de frecuencia local.
  • Envoy gestiona las condiciones de error, como la falta de memoria.
502, 503
destination_not_found El balanceador de carga no puede determinar el backend adecuado para esta solicitud. Por ejemplo, es posible que el backend no esté configurado. 500, 404
dns_error El balanceador de carga ha detectado un error de DNS al intentar encontrar una dirección IP para el nombre de host del backend. 502, 503
proxy_configuration_error El balanceador de carga ha detectado un error de configuración interno. 500
proxy_internal_error El balanceador de carga ha detectado un error interno. El error puede deberse a un reinicio programado del proxy que gestiona las conexiones. 0, 500, 502
proxy_internal_response El balanceador de carga ha generado la respuesta sin intentar conectarse al backend. Cualquier código de estado en función del tipo de problema. Por ejemplo, el código de estado 410 significa que el backend no está disponible debido a un impago.
tls_protocol_error El balanceador de carga ha detectado un error de TLS durante la negociación de TLS. 0
tls_certificate_error El balanceador de carga ha detectado un error al verificar el certificado presentado por el servidor. 0
tls_alert_received El balanceador de carga ha detectado una alerta TLS fatal durante el handshake TLS. 0

Campo de detalles de proxyStatus

El campo proxyStatus contiene una cadena que especifica por qué el balanceador de carga ha devuelto un error. El campo proxyStatus se compone de dos partes: proxyStatus error y proxyStatus details. El campo proxyStatus details es opcional y solo se muestra cuando hay información adicional disponible. En esta sección se describen las cadenas que se admiten en el campo proxyStatus details.

El campo detalles de proxyStatus se aplica a los siguientes balanceadores de carga:

  • Balanceador de carga de red con proxy externo global
  • Balanceador de carga de red con proxy externo regional
  • Balanceador de carga de red con proxy interno regional
  • Balanceador de carga de red con proxy interno interregional
Detalles de proxyStatus Descripción Códigos de estado de respuesta habituales
client_disconnected_before_any_response La conexión con el cliente se ha interrumpido antes de que el balanceador de carga enviara ninguna respuesta. 0
backend_connection_closed El backend ha cerrado inesperadamente su conexión con el balanceador de carga. Esto puede ocurrir si el balanceador de carga envía tráfico a otra entidad, como una aplicación de terceros que tiene un tiempo de espera de TCP inferior al tiempo de espera de 10 minutos (600 segundos) del balanceador de carga. 502
failed_to_connect_to_backend El balanceador de carga no ha podido conectarse al backend. Este error incluye tiempos de espera durante la fase de conexión. 503
failed_to_pick_backend El balanceador de carga no ha podido elegir un backend en buen estado para gestionar la solicitud. 502
handled_by_identity_aware_proxy Esta respuesta la ha generado Identity-Aware Proxy (IAP) durante la verificación de la identidad del cliente antes de permitir el acceso. 200, 302, 400, 401, 403, 500, 502
request_overall_timeout Se ha superado el tiempo de espera total de la solicitud. Para obtener más información, consulta Errores registrados de conexiones cerradas. 408, 503, 504
tls_version_not_supported Se reconoce la versión del protocolo TLS, pero no se admite. El error provoca que se cierre la conexión TLS. 0
unknown_psk_identity Los servidores envían este error cuando se requiere el establecimiento de una clave PSK, pero el cliente no proporciona una identidad PSK aceptable. El error provoca que se cierre la conexión TLS. 0
no_application_protocol Enviado por los servidores cuando una extensión "application_layer_protocol_negotiation" de un cliente anuncia solo protocolos que el servidor no admite. Consulta la extensión de negociación de protocolo de capa de aplicación de TLS. El error provoca que se cierre la conexión TLS. 0
no_certificate No se ha encontrado ningún certificado. El error provoca que se cierre la conexión TLS. 0
bad_certificate Un certificado no es válido o contiene firmas que no se han podido verificar. El error provoca que se cierre la conexión TLS. 0
unsupported_certificate Un certificado es de un tipo no admitido. El error provoca que se cierre la conexión TLS. 0
certificate_revoked El firmante ha revocado un certificado. El error provoca que se cierre la conexión TLS. 0
certificate_expired Un certificado ha caducado o no es válido. El error provoca que se cierre la conexión TLS. 0
certificate_unknown Se han detectado algunos problemas sin especificar al procesar el certificado, por lo que no se puede aceptar. El error provoca que se cierre la conexión TLS. 0
unknown_ca Se ha recibido una cadena de certificados válida o una cadena parcial, pero no se puede aceptar el certificado porque no se encuentra el certificado de CA o no coincide con una raíz de confianza conocida. El error provoca que se cierre la conexión TLS. 0
unexpected_message Se ha recibido un mensaje inapropiado, como un mensaje de handshake incorrecto o datos de aplicación prematuros. El error provoca que se cierre la conexión TLS. 0
bad_record_mac Se recibe un registro que no se puede desproteger. El error provoca que se cierre la conexión TLS. 0
record_overflow Se ha recibido un registro TLSCiphertext con una longitud superior a 214+256 bytes, o bien se ha descifrado un registro TLSPlaintext con más de 214 bytes (u otro límite negociado). El error provoca que se cierre la conexión TLS. 0
handshake_failure No se ha podido negociar un conjunto aceptable de parámetros de seguridad con las opciones disponibles. El error provoca que se cierre la conexión TLS. 0
illegal_parameter Un campo del handshake era incorrecto o no coincidía con otros campos. El error provoca que se cierre la conexión TLS. 0
access_denied Se ha recibido un certificado o una PSK válidos, pero cuando se ha aplicado el control de acceso, el cliente no ha continuado con la negociación. El error provoca que se cierre la conexión TLS. 0
decode_error No se ha podido decodificar un mensaje porque algunos campos están fuera del intervalo especificado o la longitud del mensaje es incorrecta. El error provoca que se cierre la conexión TLS. 0
decrypt_error Ha fallado una operación criptográfica de handshake (no de capa de registro), como no poder verificar correctamente una firma o validar un mensaje finalizado o un enlace PSK. El error provoca que se cierre la conexión TLS. 0
insufficient_security Se ha producido un error en una negociación porque el servidor requiere parámetros más seguros que los que admite el cliente. El error provoca que se cierre la conexión TLS. 0
inappropriate_fallback Enviada por un servidor en respuesta a un intento de reintento de conexión no válido de un cliente. El error provoca que se cierre la conexión TLS. 0
user_cancelled El usuario ha cancelado el handshake por algún motivo ajeno a un fallo del protocolo. El error provoca que se cierre la conexión TLS. 0
missing_extension Enviado por los endpoints que reciben un mensaje de handshake que no contiene una extensión obligatoria para enviar la versión de TLS ofrecida u otros parámetros negociados. El error provoca que se cierre la conexión TLS. 0
unsupported_extension Enviado por los endpoints que reciben cualquier mensaje de handshake que contenga una extensión que se sabe que está prohibida para incluirla en el mensaje de handshake en cuestión, o que incluya cualquier extensión en ServerHello o Certificate que no se haya ofrecido primero en el ClientHello o CertificateRequest correspondiente. El error provoca que se cierre la conexión TLS. 0
unrecognized_name Enviado por los servidores cuando no hay ningún servidor que se pueda identificar por el nombre proporcionado por el cliente a través de la extensión "server_name". Consulta las definiciones de extensiones TLS. 0
bad_certificate_status_response Enviada por los clientes cuando el servidor proporciona una respuesta OCSP no válida o inaceptable a través de la extensión "status_request". Consulta las definiciones de extensiones TLS. El error provoca que se cierre la conexión TLS. 0
load_balancer_configured_resource_limits_reached El balanceador de carga ha alcanzado los límites de recursos configurados, como el número máximo de conexiones. 0

Entradas de registro de conexiones TLS fallidas

Cuando falla la conexión TLS entre el cliente y el balanceador de carga antes de que se seleccione ningún backend, las entradas de registro registran los errores. Puedes configurar los servicios backend con diferentes frecuencias de muestreo de registros. Cuando falla una conexión TLS, la frecuencia de muestreo de los registros de conexiones TLS fallidas es la frecuencia de muestreo más alta de cualquier servicio backend. Por ejemplo, si has configurado dos servicios de backend con una frecuencia de muestreo de registros de 0.3 y 0.5, la frecuencia de muestreo de registros de conexión TLS fallida es 0.5.

Para identificar las conexiones TLS fallidas, comprueba los detalles de estas entradas de registro:

  • El tipo de error proxyStatus es tls_alert_received, tls_certificate_error, tls_protocol_error, o connection_terminated.
  • No hay información de backend.

En el siguiente ejemplo se muestra una entrada de registro de TLS fallida con el campo proxyStatus error:

   json_payload:    {
   @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
   proxyStatus: "error="tls_alert_received"; details="server_to_client: handshake_failure""
   log_name: "projects/529254013417/logs/mockservice.googleapis.com%20name"
   }
   http_request {
    latency {
      nanos: 12412000
    }
    protocol: "HTTP/1.0"
    remote_ip: "127.0.0.2"
   }
  resource {
    type: "mock_internal_http_lb_rule"
    labels {
      backend_name: ""
      backend_scope: ""
      backend_scope_type: "UNKNOWN"
      backend_target_name: ""
      backend_target_type: "UNKNOWN"
      backend_type: "UNKNOWN"
      forwarding_rule_name: "l7-ilb-https-forwarding-rule-dev"
      matched_url_path_rule: "UNKNOWN"
      network_name: "lb-network"
      region: "REGION"
      target_proxy_name: "l7-ilb-https-proxy-dev"
      url_map_name: ""
    }
  }
  timestamp: "2023-08-15T16:49:30.850785Z"
  

Etiquetas de recurso

En la siguiente tabla se enumeran las etiquetas de recursos del tipo de recurso l4_proxy_rule.

Campo Tipo Descripción
network_name cadena Nombre de la red VPC del balanceador de carga.
project_id cadena Identificador del proyecto asociado a este recurso. Google Cloud
region [región] cadena La región en la que se define el balanceador de carga.
target_proxy_name cadena Nombre del objeto proxy de destino al que hace referencia la regla de reenvío.
forwarding_rule_name cadena Nombre del objeto de regla de reenvío.
loadbalancing_scheme_name cadena Atributo de la regla de reenvío y del servicio de backend de un balanceador de carga que indica si el balanceador de carga se puede usar para el tráfico interno o externo.
backend_target_name cadena Nombre del backend seleccionado para gestionar la solicitud.
backend_target_type cadena El tipo de destino de backend (BACKEND_SERVICE / UNKNOWN).
backend_name cadena Nombre del grupo de instancias de backend o del grupo de puntos finales de red (NEG).
backend_type cadena

El tipo de backend (grupo de instancias, NEG o desconocido).

Cloud Logging registra las solicitudes cuando el valor de backend_type es UNKNOWN, aunque el registro esté inhabilitado. Por ejemplo, si un cliente cierra la conexión con el balanceador de carga antes de que este pueda elegir un backend, el valor de backend_type se define como UNKNOWN y la solicitud se registra. Estos registros proporcionan información útil para depurar las solicitudes de clientes que se han cerrado porque el balanceador de carga no ha podido seleccionar un backend.

backend_scope cadena El ámbito del backend, que puede ser el nombre de una zona o de una región. Puede ser UNKNOWN siempre que backend_name sea desconocido.
backend_scope_type cadena El alcance del backend (REGION/ZONE). Puede ser UNKNOWN cuando backend_name sea desconocido.

Supervisión

Los balanceadores de carga de red de proxy exportan datos de monitorización a Cloud Monitoring.

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

  • Evalúa la configuración, el uso y el rendimiento de un balanceador de carga.
  • Solucionar problemas.
  • Mejorar la utilización de los recursos y la experiencia de usuario.

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

Ver paneles de control de monitorización

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

    Ir a Monitoring

  2. Si Recursos aparece en el panel de navegación, selecciona Recursos y, a continuación, Balanceadores de carga de Google Cloud. De lo contrario, selecciona Paneles de control y, a continuación, el panel de control llamado Balanceadores de carga de Google Cloud.

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

En el panel de la izquierda, puede ver varios detalles de este balanceador de carga. En el panel de la derecha, puedes ver gráficos de series temporales. Para ver desgloses específicos, haga clic en Desgloses.

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

Las métricas de los balanceadores de carga se exportan a Monitoring en lotes con una granularidad de un minuto. Los datos de monitorización se conservan durante seis (6) 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 1H (una hora), 6H (seis horas), 1D (un día), 1W (una semana) y 6W (seis semanas). Puedes solicitar manualmente un análisis en cualquier intervalo de entre seis semanas y un minuto.

Métricas de los balanceadores de carga de red de proxy clásicos

Las siguientes métricas de los balanceadores de carga de red de proxy clásicos se registran en Monitoring.

Métrica Nombre Descripción
Tráfico entrante tcp_ssl_proxy/ingress_bytes_count Número de bytes enviados desde endpoints externos a backends configurados a través de Google Front End (GFE), en bytes por segundo.
Tráfico saliente tcp_ssl_proxy/egress_bytes_count Número de bytes enviados desde los backends configurados a los endpoints externos a través de GFE (en bytes por segundo).
Conexiones abiertas tcp_ssl_proxy/open_connections Número de conexiones abiertas en el momento de la muestra. Las muestras se toman con un minuto de diferencia.
Nuevas conexiones por segundo tcp_ssl_proxy/new_connections Número de conexiones que se han creado (el cliente se ha conectado correctamente al backend). La granularidad del recuento es por minuto, pero los gráficos se ajustan para mostrar los valores por segundo. Para obtener más información, consulta la documentación de Monitoring.
Conexiones cerradas por segundo tcp_ssl_proxy/closed_connections Número de conexiones que se han cerrado. La granularidad del recuento es por minuto, pero los gráficos se ajustan para mostrar los valores por segundo. Para obtener más información, consulta la documentación de Monitoring.
RTT de frontend tcp_ssl_proxy/frontend_tcp_rtt Distribución del tiempo de ida y vuelta (RTT) suavizado medido para cada conexión entre el cliente y el GFE (medido por la pila TCP del GFE cada vez que los bytes de la capa de aplicación pasan del GFE al cliente). El RTT suavizado es un algoritmo que gestiona las variaciones y anomalías que pueden producirse en las mediciones de RTT.

Métricas de otros balanceadores de carga

Las siguientes métricas de los balanceadores de carga de red con proxy internos regionales, los balanceadores de carga de red con proxy externos regionales, los balanceadores de carga de red con proxy internos entre regiones y los balanceadores de carga de red con proxy externos globales se registran en Monitoring.

Métrica Nombre Descripción
Tráfico entrante l4_proxy/ingress_bytes_count Número de bytes enviados desde el cliente a la VM de backend mediante el proxy. Se muestrea cada 60 segundos. Después del muestreo, los datos no podrán verse durante un máximo de 210 segundos.
Tráfico saliente l4_proxy/egress_bytes_count Número de bytes enviados desde la VM de backend al cliente mediante el proxy. Se muestrea cada 60 segundos. Después del muestreo, los datos no podrán verse durante un máximo de 210 segundos.
Conexiones cerradas por segundo l4_proxy/tcp/closed_connections_count Número de conexiones que se han terminado mediante un mensaje TCP RST o TCP FIN. Se muestrea cada 60 segundos. Después del muestreo, los datos no podrán verse durante un máximo de 210 segundos.

Dimensiones de filtro de métricas

Las métricas se agregan para cada balanceador de carga. Las métricas se pueden desglosar aún más por las siguientes dimensiones.

Propiedad Descripción
ÁMBITO DE BACK-END El ámbito (región o zona) del grupo de instancias que ha servido la conexión.
ZONA DE BACK-END Si el grupo de instancias era un grupo de instancias zonales, la zona del grupo de instancias que ha servido la conexión.
REGIÓN DE BACK-END Si el grupo de instancias era un grupo de instancias regional, la región del grupo de instancias que ha servido la conexión.
PROXY CONTINENT El continente del GFE que ha terminado la conexión TCP/SSL del usuario. Por ejemplo, America, Europe o Asia.
INSTANCE GROUP El nombre del grupo de instancias que ha recibido la conexión del usuario.
REGLA DE REENVÍO Nombre de la regla de reenvío que se usa para conectarse a GFE.
CLIENT COUNTRY Nombre del país del usuario.

Siguientes pasos