En este documento, se proporciona la información que necesitas para comprender las métricas de registro y supervisión para los balanceadores de cargas de aplicaciones internos. Las métricas de registro y supervisión de los balanceadores de cargas de aplicaciones internos regionales y los balanceadores de cargas de aplicaciones internos entre regiones son las mismas.
Logging
Puedes habilitar el registro según el servicio de backend. Un mapa de URL del balanceador de cargas de aplicaciones interno único puede hacer referencia a más de un servicio de backend. Es posible que debas habilitar el registro para varios servicios de backend según la configuración.
Muestreo y recopilación de registros
Google Cloud crea muestras de los paquetes que entran y salen de las instancias de máquina virtual (VM) 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:
Agregación: Los paquetes de muestra se agregan durante un intervalo de cinco segundos para producir una sola entrada de flujo.
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
es1.0
(100%), significa que se procesan todos los paquetes de muestra.Escritura en Logging: Las entradas de registro se escriben en Cloud Logging.
Campos opcionales
Los registros contienen campos obligatorios y opcionales. En la sección ¿Qué se registra?, se enumeran los campos opcionales y los obligatorios. Siempre se incluyen todos los campos obligatorios. Puedes personalizar qué campos de metadatos opcionales.
Si seleccionas Include all optional, todos los campos opcionales en el formato del registro se incluyen en los registros de flujo. Cuando se agregan campos opcionales nuevos al formato del registro, los registros de flujo incluyen automáticamente los campos nuevos.
Si seleccionas Exclude all optional, se omiten todos los campos opcionales.
Si seleccionas Personalizado, puedes especificar los campos opcionales que deseas incluir, como
tls.protocol,tls.cipher
.
Para obtener instrucciones sobre cómo personalizar campos opcionales, consulta Habilita el registro en un servicio de backend existente.
Habilita el registro en un servicio de backend existente
Para los balanceadores de cargas de aplicaciones internos regionales, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página Balanceo de cargas.
Haz clic en el nombre de tu balanceador de cargas.
Haz clic en
Editar.Haga clic en Configuración de backend.
Haz clic en
Editar junto al servicio de backend.Haz clic en Configuración avanzada (afinidad de sesión, tiempo de espera para el vaciado de conexiones).
Haz clic en Habilitar registro.
Configura una fracción de Tasa de muestreo. Puedes configurar un número de
0.0
a1.0
, en el que0.0
significa que no se registra ninguna solicitud, y1.0
significa que se registra el 100% de las solicitudes. El valor predeterminado es1.0
.Opcional: Para incluir todos los campos opcionales en los registros, en la sección Optional fields, haz clic en Include all optional fields.
Para terminar de editar el servicio de backend, haz clic en Actualizar.
Para terminar de editar el balanceador de cargas, haz clic en Actualizar.
gcloud
Para actualizar el servicio de backend para habilitar el registro, usa el comando gcloud compute
backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --enable-logging \ --logging-sample-rate=RATE \ --region=REGION \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
donde
--enable-logging
habilita el registro para ese servicio de backend.--logging-sample-rate
te permite especificar un valor entre0.0
y1.0
, en el que0.0
significa que no se registra ninguna solicitud, y1.0
, que se registran todas las solicitudes. Solo es significativo con el parámetro--enable-logging
. Si se habilita el registro, pero se establece la tasa de muestreo en0.0
, es lo mismo que inhabilitarlo. El valor predeterminado es1.0
.--logging-optional
te permite especificar los campos opcionales que deseas incluir en los registros:INCLUDE_ALL_OPTIONAL
para incluir todos los campos opcionales.EXCLUDE_ALL_OPTIONAL
para excluir todos los campos opcionales (opción predeterminada).CUSTOM
para incluir una lista personalizada de los campos opcionales que especifiques enOPTIONAL_FIELDS
.
--logging-optional-fields
te permite especificar una lista separada por comas de los campos opcionales que deseas incluir en los registros.Por ejemplo,
tls.protocol,tls.cipher
solo se puede configurar siLOGGING_OPTIONAL_MODE
se establece comoCUSTOM
.
Para los balanceadores de cargas de aplicaciones internos entre regiones, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página Balanceo de cargas.
Haz clic en el nombre de tu balanceador de cargas.
Haz clic en
Editar.Haga clic en Configuración de backend.
Haz clic en
Editar junto al servicio de backend.Haz clic en Configuración avanzada (afinidad de sesión, tiempo de espera para el vaciado de conexiones).
Haz clic en Habilitar registro.
Configura una fracción de Tasa de muestreo. Puedes configurar un número de
0.0
a1.0
, en el que0.0
significa que no se registra ninguna solicitud, y1.0
significa que se registra el 100% de las solicitudes. El valor predeterminado es1.0
.Opcional: Para incluir todos los campos opcionales en los registros, en la sección Optional fields, haz clic en Include all optional fields.
Para terminar de editar el servicio de backend, haz clic en Actualizar.
Para terminar de editar el balanceador de cargas, haz clic en Actualizar.
gcloud
Para actualizar el servicio de backend para habilitar el registro, usa el comando gcloud compute
backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --enable-logging \ --logging-sample-rate=RATE \ --global \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
donde
--enable-logging
habilita el registro para ese servicio de backend.--logging-sample-rate
te permite especificar un valor entre0.0
y1.0
, en el que0.0
significa que no se registra ninguna solicitud, y1.0
, que se registran todas las solicitudes. Solo es significativo con el parámetro--enable-logging
. Si se habilita el registro, pero se establece la tasa de muestreo en0.0
, es lo mismo que inhabilitarlo. El valor predeterminado es1.0
.--logging-optional
te permite especificar los campos opcionales que deseas incluir en los registros:INCLUDE_ALL_OPTIONAL
para incluir todos los campos opcionales.EXCLUDE_ALL_OPTIONAL
para excluir todos los campos opcionales (opción predeterminada).CUSTOM
para incluir una lista personalizada de los campos opcionales que especifiques enOPTIONAL_FIELDS
.
--logging-optional-fields
te permite especificar una lista separada por comas de los campos opcionales que deseas incluir en los registros.Por ejemplo,
tls.protocol,tls.cipher
solo se puede configurar siLOGGING_OPTIONAL_MODE
se establece comoCUSTOM
.
Después de habilitar el registro en el servicio de backend, cada solicitud de HTTP(S) se registra a través de Cloud Logging.
Cómo ver los registros
Para ver los registros en la consola de Google Cloud, ve a la página Explorador de registros.
Los registros del balanceador de cargas de aplicaciones interno se indexan primero por red y, luego, por región.
- Para ver los registros de todos los balanceadores de cargas de aplicaciones internos, en el primer menú desplegable, selecciona la Regla de balanceador de cargas de aplicaciones interno.
- Para ver los registros de una sola red, selecciona la Regla de balanceador de cargas de aplicaciones interno y, luego, selecciona el nombre de una red.
- Para ver los registros de una sola región de la red, selecciona la Regla de balanceador de cargas de aplicaciones interno >
NETWORK
>REGION
Los campos de registro de tipo booleano suelen aparecer solo si tienen el valor true
.
Si un campo booleano tiene un valor false
, ese campo se omite del registro.
La codificación UTF-8 se aplica a los campos de registro. Los caracteres que no son caracteres UTF-8 se reemplazan con signos de interrogación.
Puedes configurar exportaciones de métricas basadas en registros para los registros de recursos (resource.type="internal_http_lb_rule"
). Las métricas creadas se basan en el recurso “Regla de balanceador de cargas de aplicaciones interno”, que está disponible en los paneles de Cloud Monitoring:
¿Qué se registra?
Las entradas de registro del balanceador de cargas de aplicaciones interno contienen información útil para supervisar y depurar el tráfico HTTP(S). Los registros contienen campos obligatorios, que son los campos predeterminados de cada registro, y campos opcionales que agregan información adicional sobre tu tráfico HTTP(S). Los campos opcionales se pueden omitir para ahorrar costos de almacenamiento. Las entradas de registro contienen los siguientes tipos de información:
- Información general que se muestra en la mayoría de los registros de Google Cloud, como la gravedad, el ID del proyecto, el número del proyecto y la marca de tiempo, como se describe en LogEntry.
- Campos de registro de HttpRequest.
Algunos campos de registro se encuentran en formato de varios campos y poseen más de un dato en un campo específico. Por ejemplo, el campo tls
tiene el formato TlsDetails
, que contiene el protocolo TLS y el algoritmo de cifrado TLS en un solo campo.
En la siguiente tabla de formato de registros, se describen estos campos múltiples.
Campo | Tipo | Tipo del campo: opcional o requerido | Descripción |
---|---|---|---|
logName
|
string | Obligatorio |
Indica el nombre del recurso del registro al que pertenece
esta entrada de registro. En el formato "projects/PROJECT_ID/logs/requests" .
|
timestamp
|
string | Obligatorio | Indica el momento en que comenzó la solicitud. |
severity
|
Formato de LogSeverity | Obligatorio |
La gravedad de la entrada de registro. La configuración predeterminada es LogSeverity.DEFAULT .
|
httpRequest
|
Objeto HttpRequest | Obligatorio | Un proto HttpRequest que describe la solicitud de HTTP(S) que se registra. |
trace
|
string | Obligatorio |
El nombre de recurso del seguimiento asociado a la entrada de registro, si corresponde. Si contiene un nombre de recurso relativo, se supone que está relacionado con https://tracing.googleapis.com . Ejemplo: projects/PROJECT_ID/traces/06796866738c859f2f19b7cfb3214824 .
Los balanceadores de cargas de aplicaciones internos no son compatibles con este campo. |
spanId
|
string | Obligatorio |
El ID de intervalo dentro del seguimiento asociado a la entrada de registro. Para los intervalos de Trace, esta cadena tiene el mismo formato que utiliza la API de Trace v2: una codificación hexadecimal de 16 caracteres de un array de 8 bytes, como 000000000000004a .
Los balanceadores de cargas de aplicaciones internos no son compatibles con este campo. |
resource
|
Objeto MonitoredResource | Obligatorio |
El recurso supervisado que produjo esta entrada de registro. El objeto Por ejemplo, los descriptores de recursos supervisados para los balanceadores de cargas de aplicaciones internos tienen un tipo de recurso de |
jsonPayload | objeto (formato Struct) | Obligatorio | Indica la carga útil de la entrada de registro que se expresa como un objeto JSON. El objeto JSON
contiene los siguientes campos:
|
string | Obligatorio | El campo El campo no se registra si el valor es una cadena vacía. Esto puede
suceder si el proxy o el backend no muestran un error o el código de error
que no es El campo
|
|
string | Obligatorio | El campo backendTargetProjectNumber contiene el número
del proyecto que identifica al propietario del servicio de backend o del bucket de backend.
|
|
string | Obligatorio | El campo serviceDirectoryService contiene el nombre del
servicio del Directorio de servicios en el que se configuró la falla
de Cloud FIT. |
|
string | Obligatorio | El campo cloudFitExperiment contiene el nombre del
experimento de Cloud FIT. |
|
string | Obligatorio | El campo cloudFitFault contiene el nombre de la falla
insertada por un experimento de falla de Cloud FIT en esta ruta de solicitud. |
|
ServiceExtensionInfo | Obligatorio | El campo serviceExtensionInfo almacena información sobre las
transmisiones de gRPC del balanceador de cargas a las extensiones de servicio. Para obtener
más información, consulta
qué se registra con las extensiones de texto destacado. |
|
TlsDetails | Opcional | El campo tls contiene la estructura TlsDetails que especifica los metadatos TLS para la conexión entre el cliente y el balanceador de cargas de aplicaciones interno. Este campo solo está disponible si el cliente usa la encriptación TLS/SSL. |
|
MtlsDetails | Opcional | El campo mtls contiene el valor MtlsDetails que especifica los metadatos de mTLS para la conexión entre el cliente y el balanceador de cargas de aplicaciones interno. Este campo solo está disponible si el balanceador de cargas usa TLS mutua (mTLS) de frontend.
|
Formato del campo TlsDetails
Campo | Formato del campo | Tipo del campo: opcional o requerido | Descripción |
---|---|---|---|
protocol | string | Opcional | El protocolo TLS que los clientes usan para establecer una conexión con el
balanceador de cargas. Los valores posibles pueden ser TLS 1.0, 1.1, 1.2,
1.3 o QUIC .
Este valor se establece en NULL si el cliente no usa la encriptación TLS/SSL.
|
algoritmo de cifrado | string | Opcional | El algoritmo de cifrado TLS que los clientes usan para establecer una conexión con
el balanceador de cargas. Este valor se establece como NULL si el cliente no usa HTTP(S) o el cliente no usa la encriptación TLS/SSL.
|
Formato del campo MtlsDetails
Campo | Formato del campo | Tipo del campo: opcional o requerido | Descripción |
---|---|---|---|
clientCertPresent | bool | Opcional |
|
clientCertChainVerified | bool | Opcional |
|
clientCertError | string | Opcional | Strings predefinidas que representan las condiciones de error. Para obtener más información sobre las strings de error, consulta los modos de validación de cliente mTLS. |
clientCertSha256Fingerprint | string | Opcional | Huella digital SHA-256 codificada en base64 del certificado de cliente. |
clientCertSerialNumber | string | Opcional | El número de serie del certificado de cliente.
Si el número de serie supera los 50 bytes, se agrega la cadena |
clientCertValidStartTime | string | Opcional | Marca de tiempo (string con formato de fecha RFC 3339) antes de la cual el certificado de cliente no es válido.
Por ejemplo, |
clientCertValidEndTime | string | Opcional | Marca de tiempo (formato de string de fecha RFC 3339) después de la cual el certificado de cliente no es válido.
Por ejemplo, |
clientCertSpiffeId | string | Opcional | El ID de SPIFFE del campo de nombre alternativo del sujeto (SAN). Si el valor no es válido o supera los 2,048 bytes, el ID de SPIFFE se establece en una string vacía. Si el ID de SPIFFE supera los 2,048 bytes, la cadena |
clientCertUriSans | string | Opcional | Lista codificada en Base64 de comas de las extensiones de SAN de URI de tipo. Las extensiones SAN se extraen del certificado de cliente.
El ID de SPIFFE no está incluido en el campo Si el campo |
clientCertDnsnameSans | string | Opcional | Lista codificada en Base64 de comas de las extensiones de SAN de tipo DNSName. Las extensiones SAN se extraen del certificado de cliente. Si el campo |
clientCertIssuerDn | string | Opcional | Campo completo de la entidad emisora codificado en Base64 del certificado. Si el campo |
clientCertSubjectDn | string | Opcional | Campo completo del asunto codificado en base64 del certificado. Si el campo |
clientCertLeaf | string | Opcional | El certificado de hoja del cliente para una conexión mTLS establecida en la que el certificado pasó la validación. La codificación del certificado cumple con el RFC 9440: el certificado binario DER está codificado con Base64 (sin saltos de línea, espacios ni otros caracteres fuera del alfabeto Base64) y delimitado por dos puntos en ambos lados. Si |
clientCertChain | string | Opcional | La lista delimitada por comas de certificados, en orden TLS estándar, de la cadena de certificados de cliente para una conexión mTLS establecida en la que el certificado de cliente pasó la validación, sin incluir el certificado de hoja. La codificación del certificado cumple con RFC 9440. Si el tamaño combinado de |
Campo de error de proxyStatus
El campo proxyStatus
contiene una cadena que especifica por qué el balanceador
de cargas mostró un error. Hay dos partes en el campo
proxyStatus
: proxyStatus error
y proxyStatus details
.
En esta sección, se describen las cadenas compatibles con el campo
proxyStatus error
.
El campo de error de proxyStatus se aplica a los siguientes balanceadores de cargas:
- Balanceador de cargas de aplicaciones externo regional
- Balanceador de cargas de aplicaciones interno entre regiones
- Balanceador de cargas de aplicaciones interno regional
Error de proxyStatus | Descripción | Códigos de respuesta adjuntos comunes |
---|---|---|
destination_unavailable
|
El balanceador de cargas considera que el backend no está disponible. Por ejemplo, los intentos recientes de comunicarse con el backend fallaron, o una verificación de estado podría provocar un error. | 500, 503 |
connection_timeout
|
Se agotó el tiempo de espera del intento del balanceador de cargas para abrir una conexión con el backend. | 504 |
connection_terminated
|
La conexión del balanceador de cargas al backend finalizó antes de que se recibiera una respuesta completa. Este
|
0, 502, 503 |
connection_refused
|
Se rechaza la conexión del balanceador de cargas al backend. | 502, 503 |
connection_limit_reached
|
El balanceador de cargas está configurado para limitar la cantidad de conexiones que tiene al backend y se superó ese límite. Este
|
502, 503 |
destination_not_found
|
El balanceador de cargas no puede determinar el backend adecuado para usar en esta solicitud. Por ejemplo, es posible que el backend no esté configurado. | 500, 404 |
dns_error
|
El balanceador de cargas encontró un error de DNS cuando intentó encontrar una dirección IP para el nombre de host del backend. | 502, 503 |
proxy_configuration_error
|
El balanceador de cargas encontró un error de configuración interno. | 500 |
proxy_internal_error
|
El balanceador de cargas encontró un error interno. | 0, 500, 502 |
proxy_internal_response
|
El balanceador de cargas generó la respuesta sin intentar conectarse al backend. | Cualquier código de respuesta según el tipo de problema. Por ejemplo, el
código de respuesta 410 significa que el backend no está disponible debido a
mora de pago.
|
http_response_timeout
|
El balanceador de cargas alcanzó un límite de tiempo de espera del servicio de backend configurado mientras esperaba la respuesta completa del backend. | 504, 408 |
http_request_error
|
El balanceador de cargas encontró un error HTTP 4xx que indica problemas con la solicitud del cliente. | 400, 403, 405, 406, 408, 411, 413, 414, 415, 416, 417 o 429 |
http_protocol_error
|
El balanceador de cargas encontró un error de protocolo HTTP durante la comunicación con el backend. | 502 |
tls_protocol_error
|
El balanceador de cargas encontró un error de TLS durante el protocolo de enlace TLS. | 0 |
tls_certificate_error
|
El balanceador de cargas encontró un error en el momento de verificar el certificado que presentó el servidor o el cliente cuando mTLS está habilitada. | 0 |
tls_alert_received
|
El balanceador de cargas encontró una alerta TLS irrecuperable durante el protocolo de enlace TLS. | 0 |
Campo de detalles de proxyStatus
El campo proxyStatus
contiene una cadena que especifica por qué el balanceador
de cargas mostró un error. Hay dos partes en el campo
proxyStatus
: proxyStatus error
y proxyStatus details
.
El campo proxyStatus details
es opcional y se muestra solo cuando
hay información adicional disponible.
En esta sección, se describen las cadenas compatibles con el campo
proxyStatus details
.
El campo de detalles del proxyStatus se aplica a los siguientes balanceadores de cargas:
- Balanceador de cargas de aplicaciones externo regional
- Balanceador de cargas de aplicaciones interno regional
- Balanceador de cargas de aplicaciones interno entre regiones
Detalles de proxyStatus | Descripción | Códigos de respuesta adjuntos comunes |
---|---|---|
client_disconnected_before_any_response
|
La conexión con el cliente se interrumpió antes de que el balanceador de cargas enviara cualquier respuesta. | 0 |
backend_connection_closed
|
El backend cerró su conexión con el balanceador de cargas de forma inesperada. Esto puede suceder si el balanceador de cargas envía tráfico a otra entidad, como una aplicación de terceros con un tiempo de espera de TCP menor que el de 10 minutos (600 segundos) del balanceador de cargas. | 502 |
failed_to_connect_to_backend
|
No se pudo conectar el balanceador de cargas al backend. Esta falla incluye los tiempos de espera durante la fase de conexión. | 503 |
failed_to_pick_backend
|
El balanceador de cargas no pudo elegir un backend en buen estado para manejar la solicitud. | 502 |
response_sent_by_backend
|
La solicitud HTTP se envió mediante proxy al backend de forma correcta, y el backend mostró la respuesta. | El software que se ejecuta en el backend establece el código de respuesta HTTP. |
client_timed_out
|
La conexión entre el balanceador de cargas y el cliente superó el tiempo de espera de inactividad. Para obtener más información acerca del balanceador de cargas de aplicaciones externo regional, consulta Tiempo de espera de keepalive de HTTP del cliente. Para obtener más información acerca del balanceador de cargas de aplicaciones interno, consulta Tiempo de espera de keepalive de HTTP del cliente. |
0, 408 |
backend_timeout
|
Se agotó el tiempo de espera del backend mientras se generaba una respuesta. |
502 |
http_protocol_error_from_backend_response
|
La respuesta del backend contiene un error de protocolo HTTP. | 501, 502 |
http_protocol_error_from_request
|
La solicitud del cliente contiene un error de protocolo HTTP. | 400, 503 |
http_version_not_supported
|
No se admite la versión del protocolo HTTP. Solo son compatibles HTTP 0.9, 1.0, 1.1 y 2.0. | 400 |
handled_by_identity_aware_proxy
|
Identity-Aware Proxy (IAP) generó esta respuesta durante la verificación de la identidad del cliente antes de permitir el acceso. | 200, 302, 400, 401, 403, 500, 502 |
invalid_request_headers
|
Los encabezados de la solicitud HTTP recibidos del cliente no son válidos. | 400, 404 |
ip_detection_failed
|
No se pudo detectar la dirección IP original. | Cualquier código de respuesta posible según la naturaleza de la falla. El valor debe ser de 400 a 599. |
request_body_too_large
|
El cuerpo de la solicitud HTTP superó la longitud máxima que admite el balanceador de cargas. | 413, 507 |
request_header_timeout
|
Se agotó el tiempo de espera del encabezado de la solicitud porque el balanceador de cargas no recibió la solicitud completa en un plazo de 5 segundos. | 408, 504 |
denied_by_security_policy
|
El balanceador de cargas rechazó esta solicitud debido a una política de seguridad de Google Cloud Armor. | 403 |
throttled_by_security_policy
|
La regla de limitación de Google Cloud Armor bloqueó la solicitud. | 429 |
client_cert_chain_invalid_eku
|
El certificado de cliente o su entidad emisora no tienen un uso de clave extendido que incluya clientAuth. Para obtener más información, consulta Errores registrados para conexiones cerradas. | 0 |
client_cert_chain_max_name_constraints_exceeded
|
Un certificado intermedio proporcionado para la validación tenía más de 10 restricciones de nombres. Para obtener más información, consulta Errores registrados para conexiones cerradas. | 0 |
client_cert_invalid_rsa_key_size
|
Una hoja de cliente o un certificado intermedio tenía un tamaño de clave RSA no válido. Para obtener más información, consulta Errores registrados para conexiones cerradas. | 0 |
client_cert_not_provided
|
El cliente no proporcionó el certificado solicitado durante el protocolo de enlace. Para obtener más información, consulta Errores registrados para conexiones cerradas. | 0 |
client_cert_pki_too_large
|
La PKI que se usará para la validación tiene más de tres certificados
intermedios que comparten la misma Subject y
Subject Public Key Info .
Para obtener más información, consulta Errores registrados para conexiones cerradas.
|
0 |
client_cert_unsupported_elliptic_curve_key
|
Un cliente o un certificado intermedio usa una curva elíptica no compatible. Para obtener más información, consulta Errores registrados para conexiones cerradas. | 0 |
client_cert_unsupported_key_algorithm
|
Un cliente o un certificado intermedio usa un algoritmo que no es de RSA ni ECEC. Para obtener más información, consulta Errores registrados para conexiones cerradas. | 0 |
client_cert_validation_failed
|
El certificado de cliente falla la validación con TrustConfig .
Para obtener más información, consulta Errores registrados para conexiones cerradas.
|
0 |
client_cert_validation_not_performed
|
Configuraste la TLS mutua sin configurar TrustConfig .
Para obtener más información, consulta Errores registrados para conexiones cerradas.
|
0 |
client_cert_validation_search_limit_exceeded
|
Se alcanza el límite de iteración o profundidad mientras se intenta validar la cadena de certificados. Para obtener más información, consulta Errores registrados para conexiones cerradas. | 0 |
client_cert_validation_timed_out
|
El límite de tiempo excedido (200 ms) durante la validación de la cadena de certificados. Para obtener más información, consulta Errores registrados para conexiones cerradas. | 0 |
tls_version_not_supported
|
Se reconoce la versión del protocolo TLS, pero no se admite. El error da como resultado una conexión TLS cerrada. | 0 |
unknown_psk_identity
|
Los servidores envían este error cuando se requiere el establecimiento de la clave PSK, pero el cliente no proporciona una identidad de PSK aceptable. El error da como resultado una conexión TLS cerrada. | 0 |
no_application_protocol
|
Enviado por los servidores cuando una extensión "application_layer_protocol_negotiation" del cliente anuncia solo protocolos que el servidor no admite. Consulta Extensión de negociación de protocolo de la capa de aplicación TLS. El error da como resultado una conexión TLS cerrada. | 0 |
no_certificate
|
No se encontró ningún certificado. El error da como resultado una conexión TLS cerrada. | 0 |
bad_certificate
|
Un certificado no es válido o contiene firmas que no se pudieron verificar. El error da como resultado una conexión TLS cerrada. | 0 |
unsupported_certificate
|
Un certificado es de un tipo no compatible. El error da como resultado una conexión TLS cerrada. | 0 |
certificate_revoked
|
El firmante revocó un certificado. El error da como resultado una conexión TLS cerrada. | 0 |
certificate_expired
|
Un certificado caducó o no es válido. El error da como resultado una conexión TLS cerrada. | 0 |
certificate_unknown
|
Surgieron algunos problemas no especificados mientras se procesaba el certificado, por lo que es inaceptable. El error da como resultado una conexión TLS cerrada. | 0 |
unknown_ca
|
Se recibió una cadena de certificados válida o una cadena parcial, pero no se aceptó el certificado porque no se pudo ubicar el certificado de la AC o no coincidió con un ancla de confianza conocida. El error da como resultado una conexión TLS cerrada. | 0 |
unexpected_message
|
Se recibió un mensaje inapropiado, como un mensaje de protocolo de enlace incorrecto o datos de aplicaciones prematuros. El error da como resultado una conexión TLS cerrada. | 0 |
bad_record_mac
|
Se recibe un registro que no se puede desproteger. El error da como resultado una conexión TLS cerrada. | 0 |
record_overflow
|
Se recibió un registro TLSCiphertext con una longitud mayor que
2 14 +256 bytes, o se desencriptó un registro en un
registro TLSPlaintext con más de 2 14 bytes
(o algún otro límite negociado). El error da como resultado una conexión TLS
cerrada.
|
0 |
handshake_failure
|
No se puede negociar un conjunto aceptable de parámetros de seguridad dadas las opciones disponibles. El error da como resultado una conexión TLS cerrada. | 0 |
illegal_parameter
|
Un campo del protocolo de enlace era incorrecto o no era coherente con otros campos. El error da como resultado una conexión TLS cerrada. | 0 |
access_denied
|
Se recibió un certificado o PSK válido, pero cuando se aplicó el control de acceso, el cliente no procedió con la negociación. El error da como resultado una conexión TLS cerrada. | 0 |
decode_error
|
No se pudo decodificar un mensaje porque algunos campos estaban fuera del rango especificado o la longitud del mensaje era incorrecta. El error da como resultado una conexión TLS cerrada. | 0 |
decrypt_error
|
Falló una operación criptográfica de protocolo de enlace (sin capa de registro), lo que incluye la imposibilidad de verificar correctamente una firma o validar un mensaje finalizado o un vinculador PSK. El error da como resultado una conexión TLS cerrada. | 0 |
insufficient_security
|
Una negociación falló específicamente porque el servidor requiere parámetros más seguros que los que admite el cliente. El error da como resultado una conexión TLS cerrada. | 0 |
inappropriate_fallback
|
Enviado por un servidor en respuesta a un reintento de conexión no válido de un cliente. El error da como resultado una conexión TLS cerrada. | 0 |
user_cancelled
|
El usuario cancela el protocolo de enlace por algún motivo no relacionado con una falla del protocolo. El error da como resultado una conexión TLS cerrada. | 0 |
missing_extension
|
Enviado por extremos que reciben un mensaje de protocolo de enlace que no contiene una extensión que es obligatorio enviar para la versión TLS ofrecida o para otros parámetros negociados. El error da como resultado una conexión TLS cerrada. | 0 |
unsupported_extension
|
Enviado por extremos que reciben cualquier mensaje de protocolo de enlace que contenga una extensión
cuya inclusión se sabe que está prohibida en el mensaje de protocolo de enlace determinado, o
que incluya cualquier extensión en ServerHello o
Certificate que no se ofreció primero en el ClientHello o la CertificateRequest
correspondiente.
El error da como resultado una conexión TLS cerrada.
|
0 |
unrecognized_name
|
Enviado por los servidores cuando no existe un servidor que pueda identificarse con el nombre que proporciona el cliente a través de la extensión “server_name”. Consulta Definiciones de la extensión TLS. | 0 |
bad_certificate_status_response
|
Enviado por clientes cuando el servidor proporciona una respuesta de OCSP no válida o inaceptable a través de la extensión "status_request". Consulta Definiciones de la extensión TLS. El error da como resultado una conexión TLS cerrada. | 0 |
load_balancer_configured_resource_limits_reached
|
El balanceador de cargas alcanzó los límites de recursos configurados, como la cantidad máxima de conexiones. | 400, 500, 503 |
Entradas de registro de la conexión TLS con errores
Cuando la conexión TLS entre el cliente y el balanceador de cargas falla antes de que
se seleccione cualquier backend, las entradas de registro registran los errores. Puedes configurar los
servicios de backend con diferentes tasas de muestreo de registro. Cuando falla una conexión TLS,
la tasa de muestreo de registro de la conexión TLS con errores es la tasa de muestreo más alta para cualquier
servicio de backend. Por ejemplo, si configuraste dos servicios de backend con
una tasa de muestreo de registro como 0.3
y 0.5
, la tasa de muestreo de registro de
conexión TLS con errores es 0.5
.
Puedes identificar las conexiones TLS con errores si verificas estos detalles de la entrada de registro:
- El tipo de error de proxyStatus es
tls_alert_received
,tls_certificate_error
,tls_protocol_error
oconnection_terminated
. - No hay información de backend.
En el siguiente ejemplo, se muestra una entrada de registro de TLS con errores 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 recursos
En la siguiente tabla, se enumeran las etiquetas de recursos de resource.type="internal_http_lb_rule"
.
Campo | Tipo | Descripción |
---|---|---|
network_name |
string | El nombre de la red de VPC del balanceador de cargas. |
project_id | string | El identificador del proyecto de Google Cloud asociado a este recurso. |
region |
string | La región en la que se define el balanceador de cargas. |
url_map_name | string | El nombre del objeto del mapa de URL configurado para seleccionar un servicio de backend. |
forwarding_rule_name |
string | El nombre del objeto de regla de reenvío. |
target_proxy_name | string | El nombre del objeto proxy de destino al que hace referencia la regla de reenvío. |
matched_url_path_rule |
string |
La regla de ruta de acceso del mapa de URL o la regla de ruta configurada como parte de la clave del mapa de URL. Puede ser UNMATCHED o UNKNOWN como resguardos.
|
backend_target_name |
string | El nombre del backend seleccionado para controlar la solicitud, en función de la regla de ruta de acceso del mapa de URL o la regla de ruta que coincide con la solicitud. |
backend_target_type | string | El tipo de destino de backend (BACKEND_SERVICE / UNKNOWN ). |
backend_name |
string | El nombre del grupo de instancias de backend o NEG. |
backend_type |
string | El tipo de backend, ya sea un grupo de instancias o un NEG, o un tipo desconocido. Cloud Logging registra las solicitudes cuando |
backend_scope |
string |
El alcance del backend (ya sea un nombre de zona o de región). Puede ser
UNKNOWN siempre que se desconozca backend_name .
|
backend_scope_type |
string |
El alcance del backend (REGION /ZONE ). Puede
ser UNKNOWN siempre que se desconozca backend_name .
|
backend_target_cross_project_id |
String |
El ID del proyecto del bucket o servicio de destino de backend. Este campo solo está disponible si el recurso de destino del backend se crea en un proyecto diferente del proyecto en el que se crea el recurso url_map .
|
Registros de solicitudes de la política de autorización
El objeto authz_info
en la carga útil de JSON de la entrada de registro del balanceador de cargas contiene información sobre las políticas de autorización. Puedes configurar métricas basadas en registros para el tráfico que estas políticas permiten o deniegan.
Campo | Tipo | Descripción |
---|---|---|
authz_info.policies[] |
objeto | Es la lista de políticas que coinciden con la solicitud. |
authz_info.policies[].name |
string | Es el nombre de la política de autorización que coincide con la solicitud. El nombre está vacío por los siguientes motivos:
|
authz_info.policies[].result |
enum | El resultado puede ser ALLOWED o DENIED . |
authz_info.policies[].details |
string | Los detalles incluyen lo siguiente:
|
authz_info.overall_result |
enum | El resultado puede ser ALLOWED o DENIED . |
Visualiza los registros para la validación del certificado de cliente de mTLS
Para ver los errores registrados para conexiones cerradas durante la validación mutua del certificado de cliente de TLS, completa los siguientes pasos.
Console
En la consola de Google Cloud, ve a la página Explorador de registros.
Haz clic en el botón de activación Mostrar consulta para habilitar el editor de consultas.
Pega lo siguiente en el campo Consulta. Reemplaza
FORWARDING_RULE_NAME
por el nombre de la regla de reenvío.jsonPayload.statusDetails=~"client_cert" jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" resource.labels.forwarding_rule_name=FORWARDING_RULE_NAME
Haz clic en Ejecutar consulta.
Supervisión
Los balanceadores de cargas de aplicaciones internos exportan los datos de supervisión a 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
- 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.
Visualiza las métricas de Cloud Monitoring
Console
Para consultar las métricas de un recurso supervisado usando el Explorador de métricas, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página leaderboardExplorador de métricas:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- En el elemento Métrica, expande el menú Seleccionar una métrica,
ingresa
Internal Application Load Balancer Rule
en la barra de filtros y, luego, usa los submenús para seleccionar un métrica y tipo de recurso específicos:- En el menú Recursos activos, selecciona Balanceador interno de cargas de aplicaciones.
- Para seleccionar una métrica, usa los menús Categorías de métricas activas y Métricas activas.
- Haz clic en Aplicar.
Para quitar series temporales de la pantalla, usa el elemento Filtro.
Para combinar series temporales, usa los menús del elemento Agregación. Por ejemplo, para mostrar el uso de CPU de tus VM, en función de su zona, configura el primer menú como Mean y el segundo menú como zona.
Todas las series temporales se muestran cuando el primer menú del elemento Agregación se establece en Sin agregar. La configuración predeterminada para el elemento Agregación está determinada por el tipo de métrica que elegiste.
- Para obtener cuotas y otras métricas que informen una muestra por día, haz lo siguiente:
- En el panel Mostrar, establece el Tipo de widget en Gráfico de barras apiladas.
- Establece el período en al menos una semana.
Define las políticas de alertas
Console
Puedes crear políticas de alertas para supervisar los valores de las métricas y recibir notificaciones cuando estas infrinjan una condición.
-
En la consola de Google Cloud, ve a la página notifications Alertas.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- 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.
- En la página Alertas, elige Crear política.
- Para elegir la métrica, expande el menú Seleccionar una métrica y, luego, haz lo siguiente:
- Para limitar el menú a las entradas relevantes, ingresa
Internal Application Load Balancer Rule
en la barra de filtros. Si no hay resultados después de que filtres el menú, inhabilita el botón de activación Show only active resources & metrics. - Para el Tipo de recurso, selecciona Regla de balanceador de cargas de aplicaciones interno.
- Selecciona una Categoría de métrica y una Métrica. Luego, selecciona Aplicar.
- Para limitar el menú a las entradas relevantes, ingresa
- Haz clic en Siguiente.
- 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 Crea políticas de alertas de límite de métrica.
- Haz clic en Siguiente.
- Para agregar notificaciones a tu política de alertas, haz clic en Canales de notificaciones (opcional). En el diálogo, elige uno o más canales de notificaciones del menú y, luego, haz clic en Aceptar.
- 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.
- Opcional: Haz clic en Documentación y, luego, agrega la información que deseas incluir en un mensaje de notificación.
- Haz clic en Nombre de la alerta y, luego, ingresa un nombre para la política de alertas.
- Haz clic en Crear política.
Define paneles personalizados de Monitoring
Console
Puedes crear paneles personalizados de Monitoring a través de métricas del balanceador de cargas de aplicaciones interno:
En la consola de Google Cloud, ve a la página Monitoring.
Selecciona Paneles > Crear panel.
Haz clic en Agregar gráfico.
Ponle un título al gráfico.
Selecciona métricas y filtros. Para las métricas, el tipo de recurso es Balanceador de cargas de HTTP(S) interno.
Haz clic en Guardar.
Frecuencia y retención de informes de métricas
Las métricas de los balanceadores de cargas se exportan a Monitoring en lotes de nivel de detalle de 1 minuto. Los datos de supervisión se conservan durante seis (6) semanas. El panel proporciona un análisis de datos en intervalos predeterminados de 1 hora (una hora), 6 horas (seis horas), 1 día (un día), 1 semana (una semana) y 6 semanas (seis semanas). Puedes solicitar un análisis de forma manual en cualquier intervalo de 6 semanas a 1 minuto.
Supervisión de métricas para balanceadores de cargas de aplicaciones internos
Las siguientes métricas para balanceadores de cargas de aplicaciones internos se informan en Monitoring:
Métrica | FQDN | Descripción |
---|---|---|
Recuento de solicitudes | loadbalancing.googleapis.com/https/internal/request_count |
La cantidad de solicitudes que entregó el balanceador de cargas de aplicaciones interno. |
Recuento de bytes de solicitud | loadbalancing.googleapis.com/https/internal/request_bytes |
La cantidad de bytes enviados como solicitudes de clientes al balanceador de cargas de aplicaciones interno. |
Recuento de bytes de respuesta | loadbalancing.googleapis.com/https/internal/response_bytes |
La cantidad de bytes enviados como respuestas del balanceador de cargas de HTTP(S) interno al cliente |
Latencias totales | loadbalancing.googleapis.com/https/internal/total_latencies |
Una distribución de la latencia, en milisegundos. La latencia se mide desde el momento en que el proxy recibe el primer byte de la solicitud hasta el momento en que el proxy envía el último byte de la respuesta. |
Latencias de backend | loadbalancing.googleapis.com/https/internal/backend_latencies |
Una distribución de la latencia, en milisegundos. La latencia se mide desde el momento en el que el proxy envía el primer byte de la solicitud al backend hasta el momento en que el proxy recibe el último byte de la respuesta del backend. |
Filtrado de las dimensiones para las métricas del balanceador de cargas de aplicaciones interno
Las métricas se agregan para cada balanceador de cargas de aplicaciones interno. Puedes filtrar métricas agregadas por las dimensiones siguientes.
Propiedad | Descripción |
---|---|
BACKEND_SCOPE | La zona o región de Google Cloud del grupo de backend que entregó la solicitud del cliente, o una string especial para casos en los que no se asignó el grupo de backend.
Ejemplos: us-central1-a , europe-west1-b , asia-east1 y UNKNOWN
|
PROXY_REGION | Región del balanceador de cargas de aplicaciones interno, del cliente y del backend. Ejemplos: us-central1 , europe-west1 o asia-east1
|
BACKEND | El nombre del grupo de instancias de backend o NEG que entregó la solicitud del cliente |
BACKEND_TARGET | El nombre del servicio de backend que entregó la solicitud del cliente |
MATCHED_URL_RULE | La regla de ruta de acceso del mapa de URL o la regla de ruta que coincidió con el prefijo de la solicitud HTTP(S) del cliente (hasta 50 caracteres). |
La métrica de Response code class fraction
es compatible con todo el balanceador de cargas. No se admite más nivel de detalle.
¿Qué sigue?
- Lee la información conceptual sobre los balanceadores de cargas de aplicaciones internos.
- Crea un balanceador de cargas de aplicaciones interno.
- Consulta balanceo de cargas interno y los nombres de DNS para conocer las opciones de nombres de DNS disponibles que puede usar tu balanceador de cargas.