Almacenamiento de registros
Puedes habilitar, inhabilitar y ver los registros de un servicio de backend de un balanceador de carga de aplicación externo.
Puedes habilitar o inhabilitar el registro de cada servicio de backend. Puedes configurar si quieres registrar todas las solicitudes o una fracción muestreada aleatoriamente.
Debes asegurarte de que no haya ninguna exclusión de registros que se aplique a los balanceadores de carga de aplicaciones externos. Para obtener información sobre cómo verificar que se permiten los registros Cloud HTTP Load
Balancer
, consulte Filtros de exclusión.
Muestreo y recogida de registros
Las solicitudes (y las respuestas correspondientes) gestionadas por las instancias de máquina virtual (VM) de backend del balanceador de carga se muestrean. Estas solicitudes muestreadas se procesan para generar registros. Puede controlar la fracción de las solicitudes que se emiten como entradas de registro según el parámetro logConfig.sampleRate
.
Si logConfig.sampleRate
es 1.0
(100%), significa que se generan registros de todas las solicitudes y se escriben en Cloud Logging.
Campos opcionales:
Los registros de registro contienen campos obligatorios y campos opcionales. En la sección Qué se registra 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 en los registros todos los campos opcionales del formato de registro. Cuando se añaden nuevos campos opcionales al formato de registro, los registros 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, como
tls.protocol,tls.cipher,orca_load_report.cpu_utilization,orca_load_report.mem_utilization
.
Para obtener información sobre cómo personalizar los campos opcionales, consulta Habilitar el registro en un nuevo servicio backend.
Habilitar el registro en un servicio de backend nuevo
Consola
En la Google Cloud consola, ve a la página Balanceo de carga.
Haz clic en el nombre de tu balanceador de carga.
Haz clic en
Editar.Haz clic en Configuración de backend.
Selecciona Crear un servicio de backend.
Rellena los campos obligatorios del servicio backend.
En la sección Almacenamiento de registros, marca la casilla Habilitar el almacenamiento de registros.
Define una fracción de Frecuencia de muestreo. Puedes definir un número entre
0.0
y1.0
, donde0.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 Campos opcionales, haga clic en Incluir todos los campos opcionales.
Para terminar de editar el servicio de backend, haz clic en Actualizar.
Para terminar de editar el balanceador de carga, haz clic en Actualizar.
gcloud: modo regional
Crea un servicio de backend y habilita el registro con el gcloud compute backend-services create
comando.
gcloud compute backend-services create BACKEND_SERVICE \ --region=REGION \ --enable-logging \ --logging-sample-rate=VALUE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
donde
--region
indica que el servicio backend es regional. Use este campo para los servicios de backend que se utilicen con balanceadores de carga de aplicaciones externos regionales.--enable-logging
habilita el registro de ese servicio de backend.--logging-sample-rate
le permite especificar un valor entre0.0
y1.0
, donde0.0
significa que no se registra ninguna solicitud y1.0
significa que se registra el 100% de las solicitudes. Este campo solo tiene sentido con el parámetro--enable-logging
. Habilitar el registro, pero definir la frecuencia de muestreo en0.0
equivale a inhabilitar el registro. El valor predeterminado es1.0
.--logging-optional
te permite especificar 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 enOPTIONAL_FIELDS
.
--logging-optional-fields
te permite especificar una lista separada por comas de campos opcionales que quieras incluir en los registros.Por ejemplo,
tls.protocol,tls.cipher
solo se puede definir siLOGGING_OPTIONAL_MODE
se define comoCUSTOM
. Si usa métricas personalizadas y quiere registrar elementos del informe de carga de ORCA, debe asignar el valorCUSTOM
aLOGGING_OPTIONAL_MODE
y especificar qué elementos se deben registrar en el campoOPTIONAL_FIELDS
. Por ejemplo,orca_load_report.cpu_utilization,orca_load_report.mem_utilization
.
Habilitar el registro en un servicio de backend
Consola
En la Google Cloud consola, ve a la página Balanceo de carga.
Haz clic en el nombre de tu balanceador de carga.
Haz clic en
Editar.Haz clic en Configuración de backend.
Haz clic en
Editar junto a tu servicio backend.En la sección Almacenamiento de registros, marca la casilla Habilitar el almacenamiento de registros.
En el campo Frecuencia de muestreo, define la probabilidad de muestreo. Puedes definir un número del
0.0
al1.0
, donde0.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 Campos opcionales, haga clic en Incluir todos los campos opcionales.
Para terminar de editar el servicio de backend, haz clic en Actualizar.
Para terminar de editar el balanceador de carga, haz clic en Actualizar.
gcloud: modo regional
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=VALUE \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
donde
--region
indica que el servicio backend es regional. Use este campo para los servicios de backend que se utilicen con balanceadores de carga de aplicaciones externos regionales.--enable-logging
habilita el registro de ese servicio de backend.--logging-sample-rate
le permite especificar un valor entre0.0
y1.0
, donde0.0
significa que no se registra ninguna solicitud y1.0
significa que se registra el 100% de las solicitudes. Solo tiene sentido con el parámetro--enable-logging
. Habilitar el registro, pero definir la frecuencia de muestreo en0.0
equivale a inhabilitar el registro. El valor predeterminado es1.0
.--logging-optional
te permite especificar 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 enOPTIONAL_FIELDS
.
--logging-optional-fields
te permite especificar una lista separada por comas de campos opcionales que quieras incluir en los registros.Por ejemplo,
tls.protocol,tls.cipher
. Solo se puede definir siLOGGING_OPTIONAL_MODE
se establece enCUSTOM
.
Inhabilitar o modificar el registro en un servicio de backend
Consola
En la Google Cloud consola, ve a la página Balanceo de carga.
Haz clic en el nombre de tu balanceador de carga.
Haz clic en
Editar.Haz clic en Configuración de backend.
Haz clic en
Editar junto a tu servicio backend.Para inhabilitar el registro por completo, en la sección Registro, desmarca la casilla Habilitar registro.
Si dejas el registro habilitado, puedes definir una fracción de Frecuencia de muestreo diferente. Puedes definir un número entre
0.0
y1.0
, donde0.0
significa que no se registra ninguna solicitud y1.0
significa que se registra el 100% de las solicitudes. El valor predeterminado es1.0
. Por ejemplo,0.2
significa que el 20% de las solicitudes muestreadas generan registros.Para terminar de editar el servicio de backend, haz clic en Actualizar.
Para terminar de editar el balanceador de carga, haz clic en Actualizar.
gcloud: modo regional
Inhabilita el registro en un servicio de backend con el comando gcloud compute backend-services update
.
Inhabilitar el registro por completo
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --no-enable-logging
donde
--region
indica que el servicio backend es regional. Use este campo para los servicios de backend que se utilicen con balanceadores de carga de aplicaciones externos regionales.--no-enable-logging
inhabilita el registro de ese servicio de backend.
Habilitar campos opcionales de registro en un servicio de backend
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
donde
--logging-sample-rate
le permite especificar un valor entre0.0
y1.0
, donde0.0
significa que no se registra ninguna solicitud y1.0
significa que se registra el 100% de las solicitudes. Solo tiene sentido con el parámetro--enable-logging
. Habilitar el registro, pero definir la frecuencia de muestreo en0.0
equivale a inhabilitar el registro. El valor predeterminado es1.0
.--logging-optional
te permite especificar 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 enOPTIONAL_FIELDS
.
--logging-optional-fields
te permite especificar una lista separada por comas de campos opcionales que quieras incluir en los registros.Por ejemplo,
tls.protocol,tls.cipher
solo se puede definir siLOGGING_OPTIONAL_MODE
se define comoCUSTOM
. Si usa métricas personalizadas y quiere registrar elementos del informe de carga de ORCA, debe asignar el valorCUSTOM
aLOGGING_OPTIONAL_MODE
y especificar qué elementos se deben registrar en el campoOPTIONAL_FIELDS
. Por ejemplo,orca_load_report.cpu_utilization,orca_load_report.mem_utilization
.
Actualizar el modo opcional de registro de PERSONALIZADO a otro
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=
donde
--logging-optional
te permite especificar 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.
--logging-optional-fields
debe configurarse explícitamente como se muestra para borrar los camposCUSTOM
. La API no permite combinar un modo que no seaCUSTOM
con camposCUSTOM
.
Modificar la frecuencia de muestreo de los registros
gcloud compute backend-services update BACKEND_SERVICE \ --global | --region=REGION \ --logging-sample-rate=VALUE
Ver registros
Los registros HTTP(S) se indexan primero por una regla de reenvío y, después, por un mapa de URLs.
Para ver los registros, ve a la página Explorador de registros:
Para ver todos los registros, en el menú de filtros Recurso, selecciona Balanceador de carga HTTP de Cloud > Todas las reglas de reenvío.
Para ver los registros de una regla de reenvío, seleccione el nombre de una regla de reenvío.
Para ver los registros de un mapa de URLs, seleccione una regla de reenvío y, a continuación, un mapa de URLs.
Los campos de registro de tipo booleano suelen aparecer solo si tienen el valor true
. Si un campo booleano tiene el valor false
, 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 sustituyen por signos de interrogación.
En el caso de los balanceadores de carga de aplicación externos regionales, puedes exportar métricas basadas en registros mediante registros de recursos (resource.type="http_external_regional_lb_rule"
).
Qué se registra
Las entradas de registro de los balanceadores de carga de aplicaciones externos contienen información útil para monitorizar y depurar el tráfico HTTP(S). Los registros de registro contienen campos obligatorios, que son los campos predeterminados de todos los registros de registro.
Los registros de registro contienen campos opcionales que añaden información adicional sobre tu tráfico HTTP(S). 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 campotls
tiene el formato TlsInfo
, que contiene el protocolo TLS y el cifrado TLS en un solo campo.
Estos campos de varios campos se describen en la siguiente tabla de formato de registro.
Campo | Formato de campo | Tipo de campo: obligatorio u opcional | Descripción |
---|---|---|---|
severity insertID timestamp logName |
LogEntry | Obligatorio | Los campos generales, tal como se describen en una entrada de registro. |
httpRequest | HttpRequest | Obligatorio | Un protocolo habitual para registrar solicitudes HTTP. |
resource | MonitoredResource | Obligatorio | El MonitoredResource es el tipo de recurso asociado a una entrada de registro. El MonitoredResourceDescriptor
describe el esquema de un objeto |
jsonPayload | objeto (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:
|
cadena | Obligatorio | El campo El campo no se registra si el valor es una cadena vacía. Esto puede ocurrir si el proxy o el backend no devuelven un código de estado o si el código de estado devuelto no es El campo
|
|
AuthzPolicyInfo | Obligatorio | El campo authzPolicyInfo almacena información sobre el resultado de la política de autorización. Esta información solo está disponible para los balanceadores de carga de aplicación externos regionales que tengan habilitadas las
políticas de autorización. Para obtener más información, consulta
qué se registra en las políticas de autorización. |
|
TlsInfo | Opcional | El campo Usa el parámetro
No puedes asignar |
|
MtlsInfo | Opcional | El campo |
|
cadena | Opcional | El campo backendNetworkName especifica la red de VPC del backend.
|
|
OrcaLoadReport | Opcional | El campo Usa el parámetro
También puedes definir |
Formato del campo TlsInfo
Campo | Formato de campo | Tipo de campo: obligatorio u opcional | Descripción |
---|---|---|---|
protocol | cadena | Opcional | Protocolo TLS que usan los clientes para establecer una conexión con el balanceador de carga. Los valores posibles son TLSv1 ,
TLSv1.1 , TLSv1.2 , TLSv1.3
o QUIC .
Este valor se asigna a NULL si el cliente no usa el cifrado TLS/SSL.
|
cifrado | cadena | Opcional | Cifrado TLS que usan los clientes para establecer una conexión con el balanceador de carga. Este valor se define como NULL si el cliente no usa HTTP(S) o si no usa el cifrado TLS/SSL.
|
Formato del campo MtlsInfo
Campo | Formato de campo | Tipo de campo: obligatorio u opcional | Descripción |
---|---|---|---|
clientCertPresent | bool | Opcional |
|
clientCertChainVerified | bool | Opcional |
|
clientCertError | cadena | Opcional | Cadenas predefinidas que representan las condiciones de error. Para obtener más información sobre las cadenas de error, consulta Modo de validación de cliente. |
clientCertSha256Fingerprint | cadena | Opcional | Huella digital SHA-256 codificada en Base64 del certificado de cliente. |
clientCertSerialNumber | cadena | Opcional | Número de serie del certificado de cliente.
Si el número de serie tiene más de 50 bytes, se añade la cadena |
clientCertValidStartTime | cadena | Opcional | Marca de tiempo (cadena de fecha en formato RFC 3339
) antes de la cual el certificado de cliente no es válido.
Por ejemplo, |
clientCertValidEndTime | cadena | Opcional | Marca de tiempo (cadena de fecha con formato RFC 3339) a partir de la cual el certificado de cliente no es válido.
Por ejemplo, |
clientCertSpiffeId | cadena | Opcional | El ID de SPIFFE del campo de nombre alternativo del sujeto (SAN). Si el valor no es válido o supera los 2048 bytes, el ID de SPIFFE se asigna a una cadena vacía. Si el ID de SPIFFE tiene más de 2048 bytes, se añade la cadena |
clientCertUriSans | cadena | Opcional | Lista separada por comas y codificada en Base64 de las extensiones SAN de tipo URI. Las extensiones SAN se extraen del certificado de cliente.
El ID de SPIFFE no se incluye en el campo Si el campo |
clientCertDnsnameSans | cadena | Opcional | Lista separada por comas y codificada en Base64 de las extensiones SAN de tipo DNSName. Las extensiones SAN se extraen del certificado de cliente. Si el campo |
clientCertIssuerDn | cadena | Opcional | Campo Issuer completo codificado en Base64 del certificado. Si el campo |
clientCertSubjectDn | cadena | Opcional | Campo Subject completo del certificado codificado en Base64. Si el campo |
clientCertLeaf | cadena | Opcional | El certificado de hoja de cliente de una conexión mTLS establecida en la que el certificado ha superado la validación. La codificación del certificado cumple el estándar RFC 9440: el certificado DER binario se codifica con Base64 (sin saltos de línea, espacios ni otros caracteres que no pertenezcan al alfabeto Base64) y se delimita con dos puntos a cada lado. Si |
clientCertChain | cadena | Opcional | Lista de certificados separados por comas, en orden TLS estándar, de la cadena de certificados de cliente de una conexión mTLS establecida en la que el certificado de cliente ha superado la validación, sin incluir el certificado de hoja. La codificación de certificados cumple el estándar RFC 9440. Si el tamaño combinado de |
Etiquetas de recurso
En la siguiente tabla se enumeran las etiquetas de recursos de resource.type="http_external_regional_lb_rule"
.
Campo | Tipo | Descripción |
---|---|---|
backend_name |
cadena | Nombre del grupo de instancias o del NEG de backend. Sin embargo, la etiqueta está vacía en el caso de una conexión TLS fallida. |
backend_scope |
cadena |
El ámbito del backend (el nombre de una zona o de una región). Puede ser UNKNOWN siempre que backend_name sea desconocido.
|
backend_scope_type |
cadena |
El ámbito del backend (REGION /ZONE ). Puede ser
UNKNOWN cuando backend_name sea desconocido.
|
backend_target_name |
cadena | Nombre del backend seleccionado para gestionar la solicitud, en función de la regla de ruta del mapa de URLs o de la regla de ruta que coincida con la solicitud. |
backend_target_type |
cadena |
El tipo de destino de backend. Puede ser BACKEND_SERVICE o UNKNOWN si no se ha asignado el backend.
|
backend_type |
cadena |
El tipo de grupo de backend. Puede ser INSTANCE_GROUP ,
NETWORK_ENDPOINT_GROUP o UNKNOWN si no se ha asignado ningún backend.
|
forwarding_rule_name |
cadena | Nombre del objeto de regla de reenvío. |
matched_url_path_rule |
cadena |
La regla de ruta o de ruta de acceso del mapa de URLs configurada como parte de la clave del mapa de URLs. Puede ser UNMATCHED o UNKNOWN como alternativas.
|
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 |
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. |
url_map_name |
cadena | Nombre del objeto de mapa de URLs configurado para seleccionar un servicio de backend.
En el caso de una conexión TLS fallida,
url_map_name está vacío. |
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 aplicación externo regional
- Balanceador de carga de aplicación interno entre regiones
- Balanceador de carga de aplicación 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
|
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
|
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.
|
http_response_timeout
|
El balanceador de carga ha alcanzado el límite de tiempo de espera configurado del servicio de backend mientras esperaba la respuesta completa del backend. | 504 , 408
|
http_request_error
|
El balanceador de carga ha detectado un error HTTP 4xx, lo que indica que hay 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 carga ha detectado un error de protocolo HTTP al comunicarse con el backend. | 502
|
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 o por el cliente cuando se ha habilitado mTLS. | 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 aplicación externo regional
- Balanceador de carga de aplicación interno regional
- Balanceador de carga de aplicación interno entre regiones
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
|
response_sent_by_backend
|
La solicitud HTTP se ha enviado correctamente al backend a través de un proxy y el backend ha devuelto la respuesta. | El código de estado HTTP lo define el software que se ejecuta en el backend. |
client_timed_out
|
La conexión entre el balanceador de carga y el cliente ha superado el tiempo de espera inactivo. Para obtener más información sobre el balanceador de carga de aplicaciones externo regional, consulta Tiempo de espera de keep-alive HTTP de cliente. Para obtener más información sobre el balanceador de carga de aplicaciones interno, consulta Tiempo de espera de keep-alive HTTP del cliente. |
0 , 408
|
backend_timeout
|
El backend ha agotado el tiempo de espera al generar 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 se admiten las versiones 1.1 y 2.0 de HTTP. | 400
|
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
|
invalid_request_headers
|
Los encabezados de solicitud HTTP recibidos de un cliente contienen al menos un carácter que no está permitido según una especificación HTTP aplicable. Por ejemplo, los nombres de los campos de encabezado que incluyen comillas dobles ( Para obtener más información, consulta estos artículos: |
400 , 404
|
ip_detection_failed
|
No se ha podido detectar la dirección IP original. | Cualquier código de estado posible en función de la naturaleza del error. El valor debe estar entre 400 y 599 .
|
request_body_too_large
|
El cuerpo de la solicitud HTTP ha superado la longitud máxima admitida por el balanceador de carga. | 413 , 507
|
request_header_timeout
|
Se ha agotado el tiempo de espera del encabezado de la solicitud porque el balanceador de carga no ha recibido la solicitud completa en un plazo de 5 segundos. | 408 , 504
|
denied_by_security_policy
|
El balanceador de carga ha denegado esta solicitud debido a una política de seguridad de Google Cloud Armor. | 403
|
throttled_by_security_policy
|
La solicitud se ha bloqueado por una regla de limitación de Cloud Armor. | 429
|
client_cert_chain_invalid_eku
|
El certificado de cliente o su emisor no tiene un uso de clave extendido que incluya clientAuth. Para obtener más información, consulta la sección Errores registrados de 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 de conexiones cerradas. | 0
|
client_cert_invalid_rsa_key_size
|
Un certificado de hoja o intermedio de cliente tenía un tamaño de clave RSA no válido. Para obtener más información, consulta Errores registrados de conexiones cerradas. | 0
|
client_cert_not_provided
|
El cliente no ha proporcionado el certificado solicitado durante la negociación. Para obtener más información, consulta Errores registrados de conexiones cerradas. | 0
|
client_cert_pki_too_large
|
La PKI que se va a usar para la validación tiene más de tres certificados intermedios que comparten el mismo Subject y Subject Public Key Info .
Para obtener más información, consulta Errores registrados de conexiones cerradas.
|
0
|
client_cert_unsupported_elliptic_curve_key
|
Un certificado de cliente o intermedio usa una curva elíptica no admitida. Para obtener más información, consulta Errores registrados de conexiones cerradas. | 0
|
client_cert_unsupported_key_algorithm
|
Un certificado de cliente o intermedio usa un algoritmo que no es RSA ni ECDSA. Para obtener más información, consulta Errores registrados de conexiones cerradas. | 0
|
client_cert_validation_failed
|
El certificado de cliente no supera la validación con TrustConfig .
Para obtener más información, consulta Errores registrados de conexiones cerradas.
|
0
|
client_cert_validation_not_performed
|
Has configurado TLS mutuo sin configurar un TrustConfig .
Para obtener más información, consulta Errores registrados de conexiones cerradas.
|
0
|
client_cert_validation_search_limit_exceeded
|
Se ha alcanzado el límite de profundidad o de iteración al intentar validar la cadena de certificados. Para obtener más información, consulta Errores registrados de conexiones cerradas. | 0 |
client_cert_validation_timed_out
|
Se ha superado el tiempo límite (200 ms) al validar la cadena de certificados. Para obtener más información, consulta Errores registrados de conexiones cerradas. | 0
|
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
, oconnection_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"
Registros de solicitudes de políticas de autorización
El objeto authz_info
de la carga útil JSON de la entrada de registro del balanceador de carga contiene información sobre las políticas de autorización. Puedes configurar métricas basadas en registros para el tráfico permitido o denegado por estas políticas. Consulta más detalles del registro de políticas de autorización.
Campo | Tipo | Descripción |
---|---|---|
authz_info.policies[] |
objeto | Lista de políticas que coinciden con la solicitud. |
authz_info.policies[].name |
cadena | 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 |
cadena | Los detalles incluyen lo siguiente:
|
authz_info.overall_result |
enum | El resultado puede ser ALLOWED o DENIED . |
Interactuar con los registros
Puedes interactuar con los registros del balanceador de carga de aplicaciones externo mediante la API Cloud Logging. La API Logging ofrece formas de filtrar de forma interactiva los registros que tienen campos específicos definidos. Exporta los registros coincidentes a Cloud Logging, Cloud Storage, BigQuery o Pub/Sub. Para obtener más información sobre la API Logging, consulta la descripción general de la API Logging.
Supervisión
El balanceador de carga exporta datos de monitorización a Monitoring.
Puedes usar las métricas de monitorización para hacer 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 de Cloud Monitoring.
Definir políticas de alertas
Puedes crear políticas de alertas para monitorizar los valores de las métricas y recibir notificaciones cuando esas métricas incumplan una condición.
-
En la Google Cloud consola, ve a la página notifications Alertas:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- Si no has creado tus canales de notificación y quieres recibir notificaciones, haz clic en Editar canales de notificación y añade tus canales de notificación. Vuelve a la página Alertas después de añadir tus canales.
- En la página Alertas, selecciona Crear política.
- Para seleccionar la métrica, despliega el menú Seleccionar una métrica y, a continuación, haz lo siguiente:
- Para limitar el menú a las entradas relevantes, introduce
Regional External Application Load Balancer Rule
en la barra de filtro. Si no hay resultados después de filtrar el menú, desactive el interruptor Mostrar solo recursos y métricas activos. - En Tipo de recurso, selecciona Regla de balanceador de carga de aplicación externo regional.
- Seleccione una Categoría de métrica y una Métrica y, a continuación, Aplicar.
- Para limitar el menú a las entradas relevantes, introduce
- Haz clic en Siguiente.
- Los ajustes de la página Configurar activador de alerta determinan cuándo se activa la alerta. Seleccione un tipo de condición y, si es necesario, especifique un umbral. Para obtener más información, consulta el artículo Crear políticas de alertas de umbral de métricas.
- Haz clic en Siguiente.
- Opcional: Para añadir notificaciones a tu política de alertas, haz clic en Canales de notificación. En el cuadro de diálogo, selecciona uno o más canales de notificación y, luego, haz clic en Aceptar.
- Opcional: Actualiza la duración del cierre automático de incidentes. Este campo determina cuándo cierra Monitoring los incidentes si no hay datos de métricas.
- Opcional: Haz clic en Documentación y añade la información que quieras incluir en las notificaciones.
- Haz clic en Nombre de la alerta y escribe el que quieras asignar a la política de alertas.
- Haz clic enCreate Policy (Crear política).
Definir paneles de control personalizados de Cloud Monitoring
Puede crear paneles de control personalizados de Cloud Monitoring para las métricas del balanceador de carga:
En la Google Cloud consola, ve a la página Monitorización.
Selecciona Paneles > Crear panel.
Haz clic en Añadir gráfico y, a continuación, ponle un título.
Para identificar la serie temporal que se va a mostrar, elija un tipo de recurso y un tipo de métrica:
- En la sección Recurso y métrica, haga clic en el gráfico y, a continuación, en la sección Seleccionar una métrica, elija una de las opciones disponibles:
- En el caso de un balanceador de carga de aplicación externo regional, selecciona el tipo de recurso Regla de balanceador de carga de aplicación externo regional.
- Haz clic en Aplicar.
Para especificar filtros de monitorización, haga clic en Filtros > Añadir filtro.
Haz clic en Guardar.
Frecuencia de los informes de métricas y retención
Las métricas de los balanceadores de carga de aplicaciones externos se exportan a Cloud Monitoring en lotes con una granularidad de 1 minuto. Los datos de monitorización se conservan durante seis (6) semanas.
El panel de control proporciona 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 un análisis manualmente en cualquier intervalo de entre 6 semanas y 1 minuto.
Monitorizar métricas
Puede monitorizar las siguientes métricas de los balanceadores de carga de aplicación externos.
Las siguientes métricas de los balanceadores de carga de aplicaciones externos regionales se registran en Cloud Monitoring.
Estas métricas empiezan por loadbalancing.googleapis.com/
.
Métrica | Nombre | Descripción |
---|---|---|
Número de solicitudes | https/external/regional/request_count |
Número de solicitudes atendidas por el balanceador de carga de aplicación externo regional. |
Número de bytes de solicitudes | https/external/regional/request_bytes |
Número de bytes enviados como solicitudes de clientes al balanceador de carga de aplicaciones externo regional. |
Número de bytes de respuesta | https/external/regional/response_bytes |
Número de bytes enviados como respuestas desde el balanceador de carga de aplicaciones externo regional al cliente. |
Latencias totales | https/external/regional/total_latencies |
Distribución de la latencia total. La latencia total es el tiempo en milisegundos que transcurre entre el primer byte de la solicitud recibida por el proxy y el último byte de la respuesta enviada por el proxy. Incluye el tiempo que tarda el proxy en procesar la solicitud, el tiempo que tarda la solicitud en enviarse del proxy al backend, el tiempo que tarda el backend en procesar la solicitud, el tiempo que tarda la respuesta en enviarse de vuelta al proxy y el tiempo que tarda el proxy en procesar la respuesta y enviarla al cliente. No incluye el tiempo de ida y vuelta entre el cliente y el proxy. Además, las pausas entre solicitudes en la misma conexión que usan |
Latencias de backend | https/external/regional/backend_latencies |
Distribución de la latencia del backend. La latencia del backend es el tiempo en milisegundos que transcurre entre el último byte de la solicitud enviada al backend y el último byte de la respuesta recibida por el proxy. Incluye el tiempo que tarda el backend en procesar la solicitud y el tiempo que tarda en enviar la respuesta al proxy. |
Dimensiones de filtro de métricas
Puede aplicar filtros a las métricas de los balanceadores de carga de aplicaciones externos.
Las métricas se agregan para cada balanceador de carga de aplicaciones externo regional. Puede filtrar métricas agregadas usando las siguientes dimensiones para resource.type="http_external_regional_lb_rule"
.
Propiedad | Descripción |
---|---|
backend_name |
Nombre del grupo de instancias o del NEG de backend. |
backend_scope |
El ámbito del backend (el nombre de una zona o de una región). Puede ser UNKNOWN siempre que backend_name sea desconocido.
|
backend_scope_type |
El ámbito del backend (REGION /ZONE ).
Puede ser UNKNOWN cuando backend_name
es desconocido.
|
backend_target_name |
Nombre del backend seleccionado para gestionar la solicitud, en función de la regla de ruta del mapa de URLs o de la regla de ruta que coincida con la solicitud. |
backend_target_type |
El tipo de destino de backend. Puede ser BACKEND_SERVICE o UNKNOWN si no se ha asignado el backend.
|
backend_type |
El tipo de grupo de backend. Puede ser INSTANCE_GROUP ,
NETWORK_ENDPOINT_GROUP o UNKNOWN si no se ha asignado ningún backend.
|
forwarding_rule_name |
Nombre del objeto de regla de reenvío. |
matched_url_path_rule |
La regla de ruta o de ruta de acceso del mapa de URLs configurada como parte de la clave del mapa de URLs. Puede ser UNMATCHED o UNKNOWN como alternativas.
|
network_name |
Nombre de la red VPC del balanceador de carga. |
project_id |
Identificador del proyecto asociado a este recurso. Google Cloud |
region |
La región en la que se define el balanceador de carga. |
target_proxy_name |
Nombre del objeto proxy de destino al que hace referencia la regla de reenvío. |
url_map_name |
Nombre del objeto de mapa de URLs configurado para seleccionar un servicio de backend. |