Almacenamiento de registros
Puedes habilitar, inhabilitar y ver los registros de un servicio de backend de un balanceador de carga de aplicación externo. En el caso de los balanceadores de carga de aplicaciones externos con segmentos de backend, el registro se habilita automáticamente y no se puede inhabilitar.
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 global
Crea un servicio de backend y habilita el registro con el gcloud compute backend-services create
comando.
gcloud compute backend-services create BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --logging-optional=LOGGING_OPTIONAL_MODE \ --logging-optional-fields=OPTIONAL_FIELDS
El comando gcloud compute backend-services create
admite los siguientes campos:
--global
indica que el servicio backend es global. Usa este campo para los servicios de backend que se usan con balanceadores de carga de aplicación externos globales.--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, definaLOGGING_OPTIONAL_MODE
comoCUSTOM
y especifique 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
.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 global
Habilita el registro en un servicio de backend con el comando gcloud compute backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE
donde
--global
indica que el servicio backend es global. Usa este campo para los servicios de backend que se usan con balanceadores de carga de aplicación externos globales.--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
.
gcloud: modo clásico
Habilita el registro en un servicio de backend con el comando gcloud compute backend-services update
.
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=VALUE
donde
--global
indica que el servicio backend es global. Usa este campo para los servicios de backend que se utilicen con un balanceador de carga de aplicaciones clásico.--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
.
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 global
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 \ --global \ --no-enable-logging
donde
--global
indica que el servicio backend es global. Usa este campo para los servicios de backend que se usan con balanceadores de carga de aplicación externos globales.--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 \ --logging-sample-rate=VALUE
gcloud: modo clásico
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 \ --global \ --no-enable-logging
donde
--global
indica que el servicio backend es global. Usa este campo para los servicios de backend que se utilicen con un balanceador de carga de aplicaciones clásico.--no-enable-logging
inhabilita el registro de ese servicio de backend.
Modificar la frecuencia de muestreo de los registros
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --logging-sample-rate=VALUE
donde
--global
indica que el servicio backend es global. Usa este campo para los servicios de backend que se utilicen con un balanceador de carga de aplicaciones clásico.--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.
Ver registros
Para seguir las instrucciones paso a paso de esta tarea directamente en la Google Cloud consola, haga clic en Ayúdame:
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 aplicaciones clásicos y los balanceadores de carga de aplicaciones externos globales, puedes exportar métricas basadas en registros mediante registros de recursos (resource.type="http_load_balancer"
). Las métricas creadas se basan en el recurso Regla de balanceador de carga de aplicaciones (métricas basadas en registros) (l7_lb_rule
), que está disponible en los paneles de Cloud Monitoring en lugar de en el recurso https_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 campo earlyDataRequest
.
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 logName |
LogEntry | Obligatorio | Los campos generales, tal como se describen en una entrada de registro. |
timestamp | cadena (formato Timestamp ) | Opcional | La hora en la que la primera capa de GFE recibe la solicitud. |
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 statusDetails contiene una cadena que explica por qué el balanceador de carga ha devuelto el código de estado HTTP que ha devuelto. Para obtener más información sobre estas cadenas de registro, consulta los mensajes de éxito HTTP de statusDetails y los mensajes de error HTTP de statusDetails. |
|
cadena | Obligatorio | El campo backendTargetProjectNumber contiene el número de proyecto en el que se ha creado el destino de backend (servicio de backend o bucket de backend). Este campo tiene el siguiente formato:
"projects/PROJECT_NUMBER" . Esta información solo está disponible para los balanceadores de carga de aplicación externos globales que usan respuestas de error personalizadas. |
|
entero | Obligatorio | overrideResponseCode contiene el código de respuesta de anulación
aplicado a la respuesta enviada al cliente. Esta información solo está disponible para los balanceadores de carga de aplicación externos globales que usan respuestas de error personalizadas. |
|
cadena | Obligatorio | El campo errorService contiene el servicio backend que
ha proporcionado la respuesta de error personalizada. Esta información solo está disponible para los balanceadores de carga de aplicación externos globales que usan respuestas de error personalizadas. |
|
cadena | Obligatorio | El campo errorBackendStatusDetails contiene el
statusDetails de la respuesta final que se ha enviado al cliente.
Esta información solo está disponible para los balanceadores de carga de aplicación externos globales que usan respuestas de error personalizadas. |
|
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 globales 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. |
|
cadena | Opcional | El campo loadBalancingScheme solo se rellena si utilizas la función de migración del balanceador de carga de aplicación clásico. Este campo contiene una cadena que describe el esquema de balanceo de carga que se ha usado para enrutar la solicitud. Los valores posibles son EXTERNAL y EXTERNAL_MANAGED . |
|
TlsInfo | Obligatorio | El campo Usa el parámetro
No puedes asignar |
|
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.
|
earlyDataRequest | booleano | Obligatorio | La solicitud incluye datos iniciales en el handshake TLS. |
Etiquetas de recurso
En la siguiente tabla se enumeran las etiquetas de recursos de resource.type="http_load_balancer"
.
Campo | Tipo | Descripción |
---|---|---|
backend_service_name |
cadena | Nombre del servicio de backend. |
forwarding_rule_name |
cadena | Nombre del objeto de regla de reenvío. |
project_id |
cadena | Identificador del proyecto asociado a este recurso. Google Cloud |
target_proxy_name |
cadena | Nombre del objeto proxy de destino al que hace referencia la regla de reenvío. |
url_map_name |
cadena | El nombre del objeto de mapa de URLs configurado para seleccionar un servicio de backend. |
zone |
cadena | La zona en la que se ejecuta el balanceador de carga. La zona es
global . |
Mensajes de éxito HTTP de statusDetails
statusDetails (correcto) | Significado | Códigos de respuesta habituales |
---|---|---|
byte_range_caching
|
La solicitud HTTP se ha servido mediante el almacenamiento en caché de intervalos de bytes de Cloud CDN. | Se puede usar cualquier código de respuesta que se pueda almacenar en caché. |
response_from_cache
|
La solicitud HTTP se ha servido desde una caché de Cloud CDN. | Se puede usar cualquier código de respuesta que se pueda almacenar en caché. |
response_from_cache_validated
|
El código de retorno se ha definido a partir de una entrada almacenada en caché de Cloud CDN que ha validado un backend. | Se puede usar cualquier código de respuesta que se pueda almacenar en caché. |
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 respuesta HTTP lo define el software que se ejecuta en el backend. |
Mensajes de error HTTP de statusDetails
statusDetails (failure) | Significado | Códigos de estado habituales |
---|---|---|
aborted_request_due_to_backend_early_response
|
Se ha abortado una solicitud con un cuerpo porque el backend ha enviado una respuesta anticipada con un código de estado. La respuesta se ha reenviado al cliente. La solicitud se ha terminado. | 4XX o 5XX
|
backend_connection_closed_after_partial_response_sent
|
La conexión backend se ha cerrado de forma inesperada después de que se haya enviado una respuesta parcial al cliente. | El código de estado HTTP lo define el software que se ejecuta en el backend.
El código de estado HTTP El código de estado HTTP es |
backend_connection_closed_before_data_sent_to_client
|
El backend ha cerrado inesperadamente su conexión con el balanceador de carga antes de que la respuesta se enviara al cliente a través de un proxy. | 502 y 503 El código de estado HTTP es |
backend_early_response_with_non_error_status
|
El backend ha enviado un código de estado sin errores (1XX o 2XX ) a una solicitud antes de recibir todo el cuerpo de la solicitud.
|
502 , 503
|
backend_interim_response_not_supported
|
El backend ha enviado un código de estado provisional 1XX a la solicitud en un contexto en el que no se admiten respuestas provisionales.
|
|
backend_response_corrupted
|
El cuerpo de la respuesta HTTP enviada por el backend tiene una codificación de transferencia fragmentada no válida o está dañado. | Cualquier código de estado posible en función de la naturaleza de la corrupción.
A menudo, 502 , 503 .
|
backend_response_headers_too_long
|
Los encabezados de respuesta HTTP enviados por el backend han superado el límite permitido. Para obtener más información, consulta la sección Tamaño del encabezado de los balanceadores de carga de aplicación externos. | 502 , 503
|
backend_timeout
|
El backend ha agotado el tiempo de espera al generar una respuesta. En una conexión websocket:
|
El código de estado HTTP es |
banned_by_security_policy
|
La solicitud se ha prohibido mediante una regla de prohibición basada en la frecuencia de Cloud Armor. | 429
|
body_not_allowed
|
El cliente ha enviado una solicitud HTTP con un cuerpo, pero el método HTTP utilizado no permite que se incluya un cuerpo. | 400
|
byte_range_caching_aborted
|
El balanceador de carga ha recibido una respuesta que indica que el recurso se puede almacenar en caché y admite intervalos de bytes. Cloud CDN ha recibido una respuesta incoherente (por ejemplo, una con un código de estado distinto del 206 Partial Content esperado). Esto ha ocurrido al intentar rellenar la caché con una solicitud de intervalo de bytes.
Por lo tanto, el balanceador de carga ha cancelado la respuesta al cliente.
|
2XX
|
byte_range_caching_forwarded_backend_response
|
El balanceador de carga ha recibido una respuesta que indica que el recurso se puede almacenar en caché y admite intervalos de bytes. Cloud CDN ha recibido una respuesta incoherente (por ejemplo, una con un código de estado distinto del 206 Partial Content esperado). Esto ha ocurrido al intentar rellenar la caché con una solicitud de intervalo de bytes.
A continuación, el balanceador de carga reenvía la respuesta incoherente al cliente.
|
Devuelto desde el backend. Se puede devolver cualquier código de estado. |
byte_range_caching_retrieval_abandoned
|
El cliente ha cancelado una solicitud de intervalo de bytes o una solicitud de validación iniciada por Cloud CDN. | Devuelto desde el backend. Se puede devolver cualquier código de estado. |
byte_range_caching_retrieval_from_backend_failed_after_partial_response
|
Se ha producido un error en una solicitud de intervalo de bytes o de validación iniciada por Cloud CDN. Consulta la entrada de registro de Cloud Logging correspondiente a la solicitud iniciada por Cloud CDN para ver el estado detallado del backend. | 2XX
|
cache_lookup_failed_after_partial_response
|
El balanceador de carga no ha podido servir una respuesta completa desde la caché de Cloud CDN debido a un error interno. | 2XX
|
cache_lookup_timeout_after_partial_response
|
Se ha agotado el tiempo de espera de la secuencia de búsqueda en la caché de Cloud CDN porque el cliente no ha recuperado el contenido a tiempo. | 2XX
|
client_disconnected_after_partial_response
|
La conexión con el cliente se ha interrumpido después de que el balanceador de carga haya enviado una respuesta parcial. | Devuelto desde el backend. Se puede devolver cualquier código de estado. El código de estado HTTP es |
client_disconnected_before_any_response
|
La conexión con el cliente se ha interrumpido antes de que el balanceador de carga enviara ninguna respuesta. |
El código de estado HTTP es |
client_timed_out
|
El GFE ha cerrado la conexión del cliente por inactividad debido a la falta de progreso mientras actuaba como proxy de la solicitud o de la respuesta. | 0 o 408
|
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 la sección 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 la sección 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 la sección 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 diez certificados intermedios que comparten el mismo asunto y la misma información de clave pública del asunto. Para obtener más información, consulta Errores registrados en conexiones cerradas. | 0
|
client_cert_chain_max_name_constraints_exceeded
|
Un certificado intermedio proporcionado para la validación tenía más de diez restricciones de nombres. Para obtener más información, consulta la sección Errores registrados de conexiones cerradas. | 0
|
client_cert_chain_invalid_eku |
El certificado de cliente o su emisor no tienen el uso de clave ampliado (UKA) que incluye clientAuth . Para obtener más información, consulta la sección Errores registrados de conexiones cerradas.
|
0
|
client_cert_validation_timed_out
|
Se ha superado el tiempo límite al validar la cadena de certificados. Para obtener más información, consulta la sección 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 la sección Errores registrados de conexiones cerradas. | 0
|
client_cert_validation_not_performed
|
Has configurado mTLS sin configurar un TrustConfig .
Para obtener más información, consulta la sección 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 la sección Errores registrados de conexiones cerradas. | 0
|
client_cert_validation_failed
|
La validación del certificado de cliente falla con TrustConfig
cuando se usan algoritmos hash como MD4, MD5 y SHA-1.
Para obtener más información, consulta la sección Errores registrados de conexiones cerradas.
|
0
|
config_not_found
|
Falta la configuración del proyecto en el balanceador de carga. Este error puede producirse de forma intermitente después de haber realizado cambios en la configuración que añadan un nuevo recurso. Otra causa del error es que la GFE de la primera capa no se comunica con la GFE de la segunda capa. Esto puede deberse a un error interno, como un lanzamiento en curso, una sobrecarga del balanceador de carga o problemas de configuración intermitentes. Estos errores son temporales y se espera que se produzcan dentro del SLA. Sin embargo, si la tasa de errores supera el 0,01%, ponte en contacto con el Google Cloud equipo de Asistencia para obtener más ayuda. |
404 , 502 , 503
|
direct_response
|
El balanceador de carga ha anulado esta solicitud y ha devuelto una respuesta fija. | Puede que veas cualquier código de estado HTTP en función de la naturaleza del problema. Por ejemplo, el código de estado HTTP 410 significa que el backend no está disponible debido a un impago.
|
denied_by_security_policy
|
El balanceador de carga ha denegado esta solicitud debido a una política de seguridad de Google Cloud Armor. | Configurado en la política de seguridad. |
error_uncompressing_gzipped_body
|
Se ha producido un error al descomprimir una respuesta HTTP comprimida con gzip. | 502 , 503
|
failed_to_connect_to_backend
|
El balanceador de carga no ha podido conectarse al backend. Esto incluye los tiempos de espera durante la fase de conexión. | 502 , 503 |
failed_to_pick_backend
|
El balanceador de carga no ha podido elegir un backend en buen estado para gestionar la solicitud. | 502 , 503
|
failed_to_negotiate_alpn
|
El balanceador de carga y el backend no han podido negociar un protocolo de capa de aplicación (como HTTP/2) para comunicarse entre sí a través de TLS. | 502 , 503
|
headers_too_long
|
Los encabezados de solicitud eran más grandes que el máximo permitido. | 413
|
http_version_not_supported
|
No se admite la versión HTTP. Solo se admiten las versiones 0.9, 1.0, 1.1 y 2.0 de HTTP. | 400
|
internal_error
|
Error interno en el balanceador de carga. Normalmente representa un error transitorio en la infraestructura del balanceador de carga. Vuelve a probar la consulta. | 4XX o 5XX
|
invalid_external_origin_endpoint
|
La configuración del backend externo no es válida. Revisa la configuración del NEG de Internet y asegúrate de que especifica un FQDN, una dirección IP y un puerto válidos. | 4XX
|
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
|
invalid_http2_client_header_format
|
Los encabezados HTTP/2 de un cliente no son válidos. Para obtener más información, consulta invalid_request_headers .
|
400
|
invalid_http2_client_request_path
|
La ruta de solicitud HTTP/2 de un cliente contiene al menos un carácter que no está permitido según la especificación URI. Para obtener más información, consulta la sección 3.3. Sección "Ruta" de RFC 3986. |
400
|
multiple_iap_policies
|
No se pueden combinar varias políticas de Identity-Aware Proxy (IAP). Si tienes una política de IAP adjunta a un servicio de backend y otra política adjunta a un objeto sin servidor, elimina una de las políticas y vuelve a intentarlo. Los objetos sin servidor incluyen App Engine, Cloud Run y Cloud Functions. | 500
|
malformed_chunked_body
|
El cuerpo de la solicitud se ha codificado en fragmentos de forma incorrecta. | 411
|
request_loop_detected
|
El balanceador de carga ha detectado un bucle de solicitudes. Este bucle puede deberse a una configuración incorrecta en la que el backend ha reenviado la solicitud al balanceador de carga. | 502 , 503
|
required_body_but_no_content_length
|
La solicitud HTTP requiere un cuerpo, pero los encabezados de la solicitud no incluyen un encabezado de longitud de contenido o de transferencia codificada en fragmentos. | 400 , 403 , 411
|
secure_url_rejected
|
Se ha recibido una solicitud con una URL https:// a través de una conexión HTTP/1.1 sin cifrar.
|
400
|
server_cert_chain_exceeded_limit
|
La cadena de certificados del servidor es demasiado larga (más de 10 certificados intermedios incluidos en el certificado del servidor). | 502 , 503 |
|
El certificado del servidor tiene un campo de extensión Extended Key Usage (EKU) , pero ese campo no incluye serverAuth . |
|
|
Un certificado intermedio proporcionado para la validación tenía más de 10 restricciones de nombres. | 502 , 503 |
server_cert_exceeded_size_limit
|
La carga útil del certificado de servidor (incluidos los certificados intermedios) es demasiado grande (más de 16 KB). | 503 |
server_cert_invalid_rsa_key_size
|
Un servidor o un certificado intermedio tiene un tamaño de clave RSA no válido. No se realiza ninguna validación. Las claves RSA pueden tener entre 2048 y 4096 bits. |
503 |
server_cert_not_provided
|
El servidor no ha proporcionado el certificado solicitado durante la negociación. | 503 |
server_cert_pki_too_large
|
La PKI que se va a usar para la validación tiene más de diez certificados intermedios que comparten el mismo asunto y la misma información de clave pública del asunto. No se realiza ninguna validación. |
503 |
server_cert_trust_config_not_found
|
No se ha encontrado ningún TrustConfig que coincida.
|
503 |
server_cert_unsupported_elliptic_curve_key
|
Un servidor o un certificado intermedio está usando una curva elíptica no admitida. . No se realiza ninguna validación. Las curvas válidas son P-256 y P-384. |
503 |
server_cert_unsupported_key_algorithm
|
Un servidor o un certificado intermedio usa un algoritmo que no es RSA ni ECDSA. . No se realiza ninguna validación. |
503 |
server_cert_validation_internal_error
|
Error interno al validar la cadena de certificados. | 503 |
server_cert_validation_not_performed
|
Has configurado mTLS sin configurar un recurso |
503 |
server_cert_validation_search_limit_exceeded
|
Se ha alcanzado el límite de profundidad o iteración al intentar validar la cadena de certificados. La profundidad máxima de una cadena de certificados es de diez, incluidos los certificados raíz y de servidor. El número máximo de iteraciones es 100 (certificados examinados para validar la cadena de certificados del servidor). |
503 |
server_cert_validation_timed_out
|
Se ha superado el tiempo límite al intentar validar la cadena de certificados. | 503 |
server_cert_validation_unavailable
|
El servicio no puede realizar la validación de la cadena de certificados. | 503 |
ssl_certificate_san_verification_failed
|
El balanceador de carga no encuentra ningún nombre alternativo del sujeto (SAN) en el certificado SSL presentado por el backend que coincida con el nombre de host configurado. | 502 , 503
|
ssl_certificate_chain_verification_failed
|
No se ha podido verificar el certificado SSL presentado por el backend. | 502 , 503
|
throttled_by_security_policy
|
La solicitud se ha bloqueado por una regla de limitación de Cloud Armor. | 429
|
unsupported_method
|
El cliente ha proporcionado un método de solicitud HTTP no admitido. | 400
|
unsupported_100_continue
|
La solicitud del cliente incluía el encabezado "Expect: 100-continue" en un protocolo que no lo admite. | 400
|
upgrade_header_rejected
|
La solicitud HTTP del cliente contenía el encabezado Upgrade y se ha rechazado. | 400
|
websocket_closed
|
Se ha cerrado la conexión websocket. | 101
|
websocket_handshake_failed
|
No se ha podido realizar el handshake de WebSocket. | Cualquier código de estado posible en función de la naturaleza del error de handshake. |
request_body_too_large
|
El cuerpo de la solicitud HTTP ha superado el máximo admitido por el backend. No se aplica a los back-ends de máquinas virtuales. | 413 |
handled_by_identity_aware_proxy
|
Esta respuesta se ha generado mediante Identity-Aware Proxy durante la verificación de identidad del cliente antes de permitir el acceso. |
|
serverless_neg_routing_failed
|
No se puede enviar la solicitud de NEG sin servidor. Este error puede producirse cuando no se puede acceder a la región especificada en el NEG o cuando no se encuentra el nombre del recurso (por ejemplo, el nombre de la función de Cloud Run). | 404 , 502 , 503
|
fault_filter_abort
|
Este error puede producirse si el cliente ha configurado un filtro de errores y se ha activado para la solicitud en cuestión. | El valor debe estar comprendido entre 200 y 599 .
|
early_data_rejected
|
La solicitud enviada en los datos iniciales de TLS no era válida. Esto puede ocurrir en los siguientes casos, entre otros:
|
425 |
Ver los registros de la validación del certificado de cliente de mTLS
Para ver los errores registrados de las conexiones cerradas durante la validación del certificado de cliente TLS mutuo, sigue estos pasos.
Consulta de consola
En la Google Cloud consola, ve a la página Explorador de registros.
Haz clic en el interruptor Mostrar consulta.
Pega lo siguiente en el campo de consulta. Sustituye
FORWARDING_RULE_NAME
por el nombre de tu 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 Realizar una consulta.
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 . |
Registro de Cloud Armor
La tabla de mensajes de error HTTP statusDetail
contiene algunos mensajes que se aplican a Cloud Armor. Para obtener más información sobre los registros de Cloud Armor, consulta Usar el registro de solicitudes.
Registro de despliegues de VPC compartida
Los registros y las métricas de Application Load Balancer suelen exportarse al proyecto que tiene la regla de reenvío. Por lo tanto, los administradores de servicios (propietarios o usuarios de proyectos en los que se crea el servicio backend) no tendrán acceso a los registros y las métricas del balanceador de carga de forma predeterminada. Puedes usar roles de gestión de identidades y accesos para conceder estos permisos a los administradores de servicios. Para obtener más información sobre los roles de gestión de identidades y accesos disponibles y los pasos para proporcionar acceso, consulta Conceder acceso a Monitoring.
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
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 aplicación externos globales se registran en Cloud Monitoring.
Estas métricas empiezan por loadbalancing.googleapis.com/
.
Métrica | Nombre | Descripción |
---|---|---|
Número de solicitudes | https/request_count |
Número de solicitudes atendidas por el balanceador de carga de aplicaciones externo. |
Número de bytes de solicitudes | https/request_bytes_count |
Número de bytes enviados como solicitudes de clientes al balanceador de carga de aplicaciones externo. |
Número de bytes de respuesta | https/response_bytes_count |
Número de bytes enviados como respuestas desde el balanceador de carga de aplicación externo a los clientes. |
Latencias totales | https/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 En el caso de las conexiones Websocket, este campo hace referencia a la duración total de la conexión.* Por ejemplo, un balanceador de carga recibe 1 solicitud por segundo del Reino Unido, todas con una latencia de 100 ms, y 9 solicitudes por segundo de EE. UU., todas con una latencia de 50 ms. En un minuto determinado, hubo 60 solicitudes del Reino Unido y 540 de Estados Unidos. La monitorización de métricas conserva la distribución en todas las dimensiones. Puedes solicitar información como la siguiente:
|
TTR de frontend† | https/frontend_tcp_rtt |
Distribución del RTT del frontend. El RTT de frontend es el tiempo en milisegundos que tardan los datos en ir del cliente al proxy y volver. Incluye el tiempo que tarda una solicitud en ir del cliente al proxy y volver del proxy al cliente. No se actualiza durante la vida útil de la conexión. Por ejemplo, configurar una conexión TCP con un handshake de 3 vías llevaría 1,5 RTTs. Cuando se procesan las solicitudes, el balanceador de carga toma muestras y calcula la media del tiempo que tardan los datos en ir y volver entre el cliente y el proxy. A continuación, registra un valor de RTT suavizado. El RTT suavizado es un algoritmo que gestiona las variaciones y las anomalías que pueden producirse en las mediciones de RTT. |
Latencias de backend† | https/backend_latencies |
Distribución de la latencia del backend. La latencia del backend es el tiempo, en milisegundos, que transcurre entre el primer byte de la solicitud que recibe el backend y el último byte de la respuesta que recibe el proxy. Incluye el tiempo que tarda la solicitud en enviarse del proxy al backend, el tiempo que tarda el backend en procesar la solicitud y el tiempo que tarda la respuesta en enviarse de vuelta al proxy. |
Fracción de clase de código de respuesta | Fracción del total de respuestas del balanceador de carga de aplicaciones externo que pertenecen a cada clase de código de respuesta (2XX , 4XX , etc.). En Monitoring, este valor solo está disponible en los paneles de control predeterminados. No está disponible para los paneles de control personalizados. Puedes usar la API Monitoring para configurar alertas. |
|
Número de solicitudes de backend | https/backend_request_count |
Número de solicitudes enviadas desde el balanceador de carga de aplicaciones externo a los backends. |
Número de bytes de solicitudes de backend | https/backend_request_bytes_count |
Número de bytes enviados como solicitudes desde el balanceador de carga de aplicaciones externo a los backends. |
Número de bytes de respuesta del backend | https/backend_response_bytes_count |
Número de bytes enviados como respuestas desde los backends (incluida la caché) al balanceador de carga de aplicaciones externo. |
* Para monitorizar las conexiones de websockets, crea un servicio de backend específico para websockets.
† La suma de la latencia de ida y vuelta del frontend y la latencia del backend puede no ser inferior o igual a la latencia total. Esto se debe a que, aunque sondea el RTT a través del socket del GFE al cliente en el momento en que se confirma la respuesta HTTP, dependemos de los informes del kernel para algunas de estas mediciones y no podemos asegurarnos de que el kernel tenga una medición del RTT para la respuesta HTTP dada. El resultado final es un valor de RTT suavizado que también se ve afectado por las respuestas HTTP, los SYN/ACK y los handshakes SSL anteriores que no influyen en los tiempos reales de la solicitud HTTP actual.
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 aplicación clásico y para cada balanceador de carga de aplicación externo global. Puede filtrar las métricas agregadas por las siguientes dimensiones de resource.type="http_load_balancer"
o resource.type="https_lb_rule"
. Ten en cuenta que no todas las dimensiones están disponibles en todas las métricas.
Propiedad | Descripción |
---|---|
backend_scope |
El Google Cloud ámbito
(región o zona)
del grupo de instancias del servicio de backend que ha atendido la conexión. Si no había ningún grupo de instancias disponible o si la solicitud la ha atendido otra entidad, verá uno de los siguientes valores en lugar de la región o la zona del grupo de instancias del servicio backend.
Cuando se elige este desglose, los gráficos muestran métricas de backend (balanceador de carga a backends), no métricas de frontend (cliente a balanceador de carga). |
backend_type |
Nombre del grupo de backend que ha atendido la solicitud del cliente.
Puede ser
|
backend_target_type |
Nombre del servicio de backend que ha atendido la solicitud. Puede ser BACKEND_SERVICE , BACKEND_BUCKET o UNKNOWN si no se ha asignado ningún backend, o NO_BACKEND_SELECTED si se ha producido un error o una interrupción antes de que se seleccionara un backend, se produjera una redirección de URL o un balanceador de carga de aplicaciones clásico con backends sin servidor devolviera una respuesta 200 OK . |
matched_url_path_rule |
Regla de ruta del mapa de URLs que ha coincidido con el prefijo de la solicitud HTTP(S) (hasta 50 caracteres). |
forwarding_rule_name |
Nombre de la regla de reenvío que usa el cliente para enviar la solicitud. |
url_map_name |
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
|
target_proxy_name |
Nombre del objeto de proxy HTTP(S) de destino al que hace referencia la regla de reenvío. |
backend_target_name |
Nombre del destino de backend. El destino puede ser un servicio de backend o un segmento de backend. Se devuelve UNKNOWN si no se ha asignado ningún backend.
|
backend_name |
Nombre del grupo de instancias, del segmento o del NEG de backend.
Se devuelve UNKNOWN si no se ha asignado el backend o NO_BACKEND_SELECTED si se ha producido un error o una interrupción antes de que se seleccionara un backend, se produjera una redirección de URL o un balanceador de carga de aplicaciones clásico con backends sin servidor devolviera una respuesta 200 OK . |
backend_scope_type |
El tipo de ámbito del grupo de backend. Puede ser
|
proxy_continent |
Continente de la GFE HTTP(S) que ha finalizado la conexión HTTP(S). Por ejemplo, America , Europe o Asia . |
protocol |
Protocolo usado por el cliente. Puede ser HTTP/1.0 ,
HTTP/1.1 , HTTP/2.0 , QUIC/HTTP/2.0 o
UNKNOWN . |
response_code |
El código de estado HTTP de la solicitud. |
response_code_class |
Clase del código de estado HTTP de la solicitud: 200 , 300 , 400 , 500 o 0 si no hay ninguna. |
cache_result |
Resultado de la caché para servir la solicitud HTTP mediante proxy: HIT ,
MISS , DISABLED , PARTIAL_HIT (para una solicitud
servida parcialmente desde la caché y parcialmente desde el backend) o
UNKNOWN . |
client_country |
País del cliente que ha enviado la solicitud HTTP. Por ejemplo, United States o Germany . |
load_balancing_scheme |
El esquema de balanceo de carga utilizado. Si se usa el balanceador de carga de aplicación clásico, el valor es EXTERNAL . Si se usa un balanceador de carga de aplicación externo global, el valor es EXTERNAL_MANAGED . |
Siguientes pasos
- Consulta la información general sobre el registro de Cloud CDN.
- Consulta información sobre el almacenamiento en caché.
- Consulta información sobre las URLs y cookies firmadas.