Si desea analizar el comportamiento de los usuarios, comprender su distribución geográfica y solucionar problemas a partir de los registros de acceso, utilice la función de registros de acceso que ALB ofrece junto con Simple Log Service (SLS).
Los registros de acceso de ALB son adecuados para escenarios de auditoría de solicitudes, diagnóstico de fallas y análisis de rendimiento. Además, ofrecen capacidades de registro de acceso similares a las de las puertas de enlace web tradicionales como Nginx. Con estos registros puede consultar información como encabezados de solicitud HTTP, códigos de estado y distribuciones de latencia. Esto le permite solucionar problemas como URL con error en las solicitudes, alta latencia de API o discrepancias entre los datos de monitoreo y el volumen de tráfico real. Los registros de acceso solo registran las solicitudes HTTP/HTTPS establecidas correctamente. No registran eventos como fallas de conexión TCP, escaneo de puertos ni fallas en el protocolo de enlace TLS.
Facturación
Una vez que los registros de acceso de ALB se entregan a Simple Log Service, se le cobra por almacenamiento, tráfico de lectura, solicitudes, transformación de datos y envío. Simple Log Service billing.
Requisitos previos
Simple Log Service está activado. Activar Simple Log Service.
Crear un registro de acceso
Inicie sesión en la consola de ALB.
En la barra de navegación superior, seleccione la región donde se despliega la instancia de ALB.
En la página Instances, haga clic en el ID de la instancia que desea gestionar.
En la página de detalles de la instancia, haga clic en la pestaña Access Logs y luego en Create Access Log.
-
En el cuadro de diálogo Create Access Log, configure los parámetros Project y Logstore, y haga clic en OK.
Parámetro
Descripción
Project
Seleccione un proyecto de Simple Log Service para gestionar los recursos. Opciones:
-
Select Project: seleccione un proyecto existente en la lista desplegable.
-
Create Project: introduzca un nombre de proyecto en el campo.
Logstore
Seleccione un logstore para recopilar, almacenar y consultar los datos de registro. Opciones:
-
Select Logstore: seleccione un logstore existente en la lista desplegable.
-
Create Logstore: introduzca un nombre de logstore en el campo. Si selecciona Create Project, también debe seleccionar Create Logstore.
Notes on Creating Service-linked Role
Se crea automáticamente un rol vinculado al servicio.
-
-
En el mensaje que aparece, lea la información y haga clic en OK.
Si crea un logstore, los índices y los paneles se habilitan de forma predeterminada.
Si selecciona un logstore existente, los paneles se habilitan automáticamente. Los índices existentes no se sobrescriben. Cree los índices en la consola de Simple Log Service.
Consultar un registro de acceso
En la pestaña Access Logs, haga clic en el enlace situado a la derecha de Simple Log Service para ir a la consola de Simple Log Service y consultar los datos de registro.
-
En la pestaña Access Logs, haga clic en la pestaña Monitoring Center, Access Center o Fine-grained Monitoring y especifique las condiciones de filtro para consultar las métricas.
Módulo
Descripción
Monitoring Center
Muestra datos de monitoreo en tiempo real: PV, Request Success Rate, Average Latency, 4xx Requests, Status Distribution, Traffic, P50/P90/P99/P9999 Latency, así como los principales host, URL y backend por solicitudes, latencia y tasa de errores.
Access center
Muestra estadísticas de acceso: comparaciones diarias y semanales de PV/UV, distribución de PV/UV, PVs Today, 7-day PVs, Top 10 States with Most Requests, Percentage of Mobile Users, los 10 principales host, los 10 principales agentes de usuario y las direcciones IP con más solicitudes.
Fine-grained Monitoring
Muestra métricas agregadas en intervalos de un segundo para identificar fluctuaciones transitorias: QPS, Access Latency, Upstream Latency, Success Rate, Request Traffic, Response Body Traffic, Status Code 2xx, Status Code 3xx, Error Codes, Upstream Status Code 2xx, Upstream Status Code 3xx y Upstream Error Codes.
En la esquina superior derecha de la pestaña Monitoring Center, Access Center o Fine-grained Monitoring, haga clic en More Charts para ir a la página CloudLens for ALB y consultar más informes de ALB. Para obtener más información, consulte Data reports.
En la esquina superior derecha de la pestaña Monitoring Center, Access Center o Fine-grained Monitoring, haga clic en Configure Alert Rules para ir a la página CloudLens for ALB y consultar los incidentes de alerta de ALB.
-
También puede usar las siguientes funciones en la esquina superior derecha de la pestaña Monitoring Center, Access Center o Fine-grained Monitoring:
: habilita Dedicated SQL. Enable Dedicated SQL.Después de entregarlos a Simple Log Service, puede consultar, analizar, descargar, enviar y procesar los registros de acceso, además de crear reglas de alerta. Para obtener más información, consulte Common operations for service logs.
Registrar encabezados personalizados
El campo slb_headers registra los nombres y valores de los encabezados de solicitud personalizados para analizar las solicitudes.
El tamaño del encabezado personalizado por registro de acceso es de 1 KB de forma predeterminada y se puede aumentar hasta 8 KB. Para solicitar un aumento, comuníquese con su administrador de cuenta. Para obtener más información, consulte Request length limits
Si la longitud total de los encabezados personalizados en una sola entrada de registro supera el límite anterior, el campo slb_headers registra únicamente los encabezados que caben dentro del límite y añade Discarded:TooManyCustomizedHeaders al final del valor del campo.
La edición Extensible Edition no admite el registro de encabezados personalizados.
En la pestaña Access Logs, haga clic en Record Custom Headers en la sección Basic Information.
-
En el cuadro de diálogo Record Custom HTTP Headers in Logs, seleccione en la lista desplegable el listener añadido a la instancia de ALB.
Para crear un listener, haga clic en Create Listener en la lista desplegable. Para obtener más información, consulte Add an HTTP listener, Add an HTTPS listener y Add a QUIC listener.
-
En el mensaje que aparece, lea la información y haga clic en OK.
Tras la configuración, el campo slb_headers registra todos los encabezados de solicitud excepto los siguientes:
# The slb_headers field does not record information about the following headers: host referer user-agent x-forwarded-for x-readtime x-real-ip uber-trace-id X-B3-TraceId X-B3-SpanId X-B3-ParentSpanId X-B3-Sampled
Eliminar un registro de acceso
En la pestaña Access Logs, haga clic en Disable Logging en la sección Basic Information.
En el mensaje que aparece, lea la información y haga clic en OK.
Campos de registro
Standard Edition
|
Campo |
Descripción |
|
app_lb_id |
El ID de la instancia de ALB. |
|
__topic__ |
El tema del registro. Valor predeterminado: alb_layer7_access_log. |
|
body_bytes_sent |
El tamaño del cuerpo de la respuesta HTTP. Unidad: bytes. |
|
client_ip |
La dirección IP del cliente si Retrieve Client IP está habilitado; de lo contrario, la dirección IP del salto anterior. |
|
host |
El nombre de dominio o la dirección IP. Orden de resolución: parámetros de solicitud → encabezado host → IP del servidor de backend. |
|
http_host |
El encabezado Host de una solicitud HTTP. |
|
http_referer |
El encabezado Referer de una solicitud HTTP. |
|
http_user_agent |
El encabezado User-Agent de una solicitud HTTP. |
|
http_x_forwarded_for |
El encabezado X-Forwarded-For de una solicitud HTTP. |
|
http_x_real_ip |
El encabezado X-Real-IP de una solicitud HTTP. |
|
read_request_time |
El tiempo que ALB tarda en leer la solicitud. Unidad: milisegundos. |
|
request_length |
El tamaño combinado de la línea inicial, los encabezados y el cuerpo de la solicitud. Unidad: bytes. |
|
request_method |
El método de la solicitud. |
|
request_time |
El tiempo desde la recepción de la solicitud hasta la devolución de la respuesta. Unidad: segundos. |
|
request_uri |
El URI de una solicitud. |
|
scheme |
El esquema de la solicitud: HTTP o HTTPS. |
|
server_protocol |
La versión del protocolo HTTP. Ejemplos: HTTP/1.0, HTTP/1.1. |
|
slb_vport |
El puerto del listener de la instancia de ALB. |
|
slb_xtrace |
El ID de seguimiento de la instancia de ALB para el análisis de trazas. |
|
xtrace_type |
El tipo de datos que usa Xtrace para el análisis de trazas de la instancia de ALB. Solo se admite Zipkin. |
|
ssl_cipher |
El conjunto de cifrado utilizado para la conexión SSL. Ejemplo: ECDHE-RSA-AES128-GCM-SHA256. |
|
ssl_protocol |
El protocolo de conexión SSL. Ejemplo: TLS 1.2. |
|
status |
El código de estado HTTP devuelto por la instancia de ALB. |
|
tcpinfo_rtt |
El tiempo de establecimiento de la conexión TCP. Unidad: milisegundos. |
|
time |
La hora de generación del registro en formato ISO 8601: |
|
upstream_addr |
La dirección IP y el puerto del servidor de backend. |
|
upstream_response_time |
El tiempo desde el establecimiento de la conexión con el backend hasta su cierre. Unidad: segundos. |
|
upstream_status |
El código de estado HTTP del servidor de backend. |
|
vip_addr |
La dirección IP virtual. |
|
write_response_time |
El tiempo de escritura de la respuesta. Unidad: milisegundos. |
|
client_port |
El número de puerto del cliente. |
|
slb_headers |
Encabezados personalizados. Disponible solo después de habilitar el registro de encabezados personalizados. |
Extensible Edition
|
Campo |
Descripción |
|
app_lb_id |
El ID de la instancia de ALB. |
|
__topic__ |
El tema del registro. Valor predeterminado: alb_layer7_access_log. |
|
body_bytes_sent |
El tamaño del cuerpo de la respuesta HTTP. Unidad: bytes. |
|
client_ip |
La dirección IP del cliente si Retrieve Client IP está habilitado; de lo contrario, la dirección IP del salto anterior. |
|
host |
El nombre de dominio o la dirección IP. Orden de resolución: parámetros de solicitud → encabezado host → IP del servidor de backend. |
|
http_referer |
El encabezado Referer de una solicitud HTTP. |
|
http_user_agent |
El encabezado User-Agent de una solicitud HTTP. |
|
http_x_forwarded_for |
El encabezado X-Forwarded-For de una solicitud HTTP. Registra el valor de X-Forwarded-For después de que ALB lo reescribe. |
|
http_x_real_ip |
El encabezado X-Real-IP de una solicitud HTTP. |
|
read_request_time |
El tiempo que ALB tarda en leer la solicitud. Unidad: milisegundos. |
|
request_length |
El tamaño combinado de la línea inicial, los encabezados y el cuerpo de la solicitud. Unidad: bytes. |
|
request_method |
El método de la solicitud. |
|
request_time |
El tiempo desde la recepción de la solicitud hasta la devolución de la respuesta. Unidad: segundos. |
|
request_uri |
El URI de una solicitud. |
|
scheme |
El esquema de la solicitud: HTTP o HTTPS. |
|
server_protocol |
La versión del protocolo HTTP. Ejemplos: HTTP/1.0, HTTP/1.1. |
|
slb_vport |
El puerto del listener de la instancia de ALB. |
|
ssl_cipher |
El conjunto de cifrado utilizado para la conexión SSL. Ejemplo: ECDHE-RSA-AES128-GCM-SHA256. |
|
ssl_protocol |
El protocolo de conexión SSL. Ejemplo: TLS 1.2. |
|
status |
El código de estado HTTP devuelto por la instancia de ALB. |
|
time |
La hora de generación del registro en formato ISO 8601: |
|
upstream_addr |
La dirección IP y el puerto del servidor de backend. |
|
upstream_response_time |
El tiempo desde el establecimiento de la conexión con el backend hasta su cierre. Unidad: segundos. |
|
vip_addr |
La dirección IP virtual. |
|
write_response_time |
El tiempo de escritura de la respuesta. Unidad: milisegundos. |
|
client_port |
El número de puerto del cliente. |
|
upstream_protocol |
La versión del protocolo HTTP utilizada para la comunicación entre ALB y el servidor de backend. |
|
upstream_hostname |
El nombre de dominio DNS del servidor de backend. Si no hay ningún nombre de dominio DNS disponible, se utilizan la dirección IP y el puerto del servidor de backend. |
|
response_flags |
Detalles adicionales sobre la respuesta o la conexión. |
|
status_details |
Información detallada sobre el código de estado de la respuesta, como via_upstream, direct_response y route_not_found. |
|
llm_log |
Datos de la solicitud de IA, codificados en formato JSON. Contiene los siguientes subcampos:
|
Ejemplos de consulta
En la página de consulta de registros de la consola de Simple Log Service, puede filtrar los registros de acceso de ALB de las siguientes maneras:
Filtrar por tiempo: use el selector de tiempo en la parte superior de la página para elegir un intervalo de tiempo, como los últimos 15 minutos, la última hora, hoy o un intervalo personalizado.
Filtrar por URL: introduzca
request_uri:/api/xxxen el cuadro de consulta para mostrar solo las entradas de registro cuyo URI de solicitud contenga/api/xxx.Filtrar por código de estado: introduzca
status:200para consultar las solicitudes con un código de estado 200. Sustituya 200 por otro código de estado para consultar las solicitudes con ese código.Filtrar por método de solicitud: introduzca
request_method:Get*para filtrar las solicitudes GET.Consulta con múltiples condiciones: introduzca
request_uri:/api/xxx and status:200para filtrar las solicitudes que coincidan con un patrón de URI específico y devuelvan un código de estado 200.
Antes de usar la sintaxis field:value para consultas específicas de campos, configure índices a nivel de campo para los campos de registro correspondientes en la consola de Simple Log Service. Los índices de texto completo no admiten consultas a nivel de campo. Si no configura los índices a nivel de campo, la consulta devuelve un error.
Preguntas frecuentes
¿Puedo consultar datos sobre las solicitudes que acceden a mi instancia de ALB antes de crear un registro de acceso?
No, no es posible.
Los registros de acceso solo capturan datos a partir del momento en que los habilita. Antes de crear un registro de acceso, Simple Log Service no recopila ningún dato de acceso de ALB.
¿Por qué el monitoreo de ALB muestra anomalías (como errores 4XX o volúmenes de tráfico altos) o actividad de escaneo, pero no aparecen registros en los registros de acceso?
Las posibles causas son:
1. Los registros de acceso no están habilitados
Debe habilitar la función de registros de acceso de ALB para consultar información detallada de errores, URL de solicitudes y comprobar la precisión de los datos. Sin los registros de acceso habilitados, resulta difícil solucionar problemas basándose únicamente en los datos de monitoreo.
2. Fallas de conexión TCP o escaneo de puertos
ALB es un load balancer de capa 7. Los registros de acceso solo registran solicitudes HTTP/HTTPS y no registran fallas de conexión TCP. Para identificar y bloquear direcciones IP anómalas, habilite Cloud Firewall y consulte los registros de conexiones TCP fallidas hacia la dirección IP pública de ALB.
3. Tiempo de espera agotado del listener de capa 4
Los tiempos de espera agotados del listener TCP de capa 4 normalmente no se registran en los registros de Ingress ni en los registros de acceso. Solo se genera una entrada con código de estado 499 o 504 cuando la conexión se establece correctamente, pero la respuesta excede el tiempo de espera.
4. Falla en el protocolo de enlace TLS
Las fallas en el protocolo de enlace TLS (como incompatibilidad de certificado o de versión de protocolo) normalmente no se reflejan directamente en los registros de acceso, porque la solicitud HTTP aún no se ha establecido cuando ocurre la falla. Estos problemas requieren análisis mediante los registros del servidor de backend y la captura de paquetes del lado del cliente.
¿Cómo uso los registros de acceso de ALB para solucionar problemas de URL con error, alta latencia o registros de solicitudes específicas?
Inicie sesión en la consola de Simple Log Service, vaya al logstore de ALB correspondiente y realice consultas según los siguientes escenarios:
1. Consultar URL que devuelven códigos de estado específicos (como 400 o 4XX)
En el cuadro de consulta, introduzca status:400 (u otro código de estado). Revise el campo request_uri en los resultados para identificar las rutas de URL específicas que devolvieron el error.
2. Solucionar problemas de alta latencia en la interfaz
Filtre por el campo upstream_response_time, que registra el tiempo desde que ALB establece la conexión con el servidor de backend hasta que termina de recibir los datos (unidad: segundos). Un valor alto indica que la latencia se origina en el procesamiento del backend y no en el reenvío de ALB. Compare este valor con el campo request_time para confirmar el tiempo total transcurrido (intervalo entre la recepción de la solicitud del cliente y la devolución de la respuesta, unidad: segundos).
3. Comprobar registros de solicitudes para rutas o IP de origen específicas
Para buscar por ruta de solicitud, introduzca request_uri:/api/xxx y consulte las solicitudes de la ruta objetivo. Use campos como client_ip (IP del cliente) o http_host (Host de la solicitud) en consultas combinadas para confirmar si ALB recibió solicitudes del origen especificado.
4. Comprobar la precisión de los datos de registro
Los registros de acceso de ALB registran todo el tráfico de solicitudes HTTP/HTTPS de los clientes que acceden a los servicios de backend a través de ALB. Consulte la sección Campos de registro de este documento para revisar las definiciones de los datos y confirmar si el contenido del registro coincide con el tráfico de negocio esperado.