Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-06-28 GMT+08:00

Registro de acceso

Escenarios

ELB registra las solicitudes HTTP y HTTPS recibidas por los balanceadores de carga, incluida la hora en que se envió la solicitud, la dirección IP del cliente, la ruta de la solicitud y la respuesta del servidor. Para habilitar el log de acceso, debe interconectar ELB con LTS y crear un grupo de log y un flujo de log en la consola LTS.

El registro de acceso es compatible con los oyentes de HTTP/HTTPS de balanceadores de carga dedicados y compartidos.

Configuración de LTS

Para ver los registros de acceso, primero debe configurar LTS siguiendo las instrucciones en la Guía del usuario de Log Tank Service.

  1. Cree un grupo de log.
    1. Inicie sesión en la consola de gestión.
    2. En la esquina superior izquierda de la página, haga clic en y seleccione la región y el proyecto deseados.
    3. Haga clic en en la esquina superior izquierda y haga Management & Governance > Log Tank Service.
    1. En el panel de navegación de la izquierda, elija Log Management.
    2. Haga clic en Create Log Group. En el cuadro de diálogo que se muestra, escriba un nombre para el grupo de log.

      Establezca Log Retention Duration según sea necesario.

    1. Haga clic en OK.
  2. Cree un flujo de log.
    1. En la consola de LTS, haga clic en a la izquierda de un nombre de grupo de log.
    2. Haga clic en Create Log Stream. En el cuadro de diálogo que se muestra, escriba un nombre para el flujo de log.
    3. Seleccione un proyecto de empresa según sea necesario.
    4. Haga clic en OK.

Configuración del registro de acceso

Configurar el registro de acceso en la consola ELB.
  1. Pase el ratón sobre en la esquina superior izquierda para mostrar Service List y elija Networking > Elastic Load Balance.
  2. Busque el balanceador de carga y haga clic en su nombre.
  3. En Access Logs, haga clic en Configure Access Logging.
  1. Habilite el log de acceso y seleccione el grupo de log y el flujo de log que creó.
  2. Haga clic en OK.

Consultar logs de acceso

Después de habilitar el registro de acceso, puede obtener detalles sobre las solicitudes enviadas al balanceador de carga.

Hay dos formas de ver los registros de acceso.

  • En la consola ELB, haga clic en el nombre del balanceador de carga y haga clic en Access Logs para ver los registros.
  • (Recomendado) En la consola LTS, haga clic en el nombre del flujo de log correspondiente. En la página mostrada, haga clic en Real-Time Logs

Lo siguiente es un log de ejemplo. Para obtener más información sobre los campos del log, consulte Tabla 1. El formato de log no se puede modificar.

$msec $access_log_topic_id [$time_iso8601] $log_ver $remote_addr:$remote_port $status "$request_method $scheme://$host$router_request_uri $server_protocol" $request_length $bytes_sent $body_bytes_sent $request_time "$upstream_status" "$upstream_connect_time" "$upstream_header_time" "$upstream_response_time" "$upstream_addr" "$http_user_agent" "$http_referer" "$http_x_forwarded_for" $lb_name $listener_name $listener_id
$pool_name "$member_name" $tenant_id $eip_address:$eip_port "$upstream_addr_priv" $certificate_id $ssl_protocol $ssl_cipher $sni_domain_name $tcpinfo_rtt $self_defined_header
Tabla 1 Descripción del parámetro

Parámetro

Descripción

Descripción

Valor de ejemplo

msec

Tiempo en segundos con una resolución de milisegundos

Datos de punto flotante

1530153091.868

access_log_topic_id

ID de flujo de log

UUID

04465dfa-640f-4567-8b58-45c9f8bbc23f

time_iso8601

Hora local en el formato estándar ISO 8601

-

2018-06-28T10:31:31+08:00

log_ver

Versión de formato de log

Valor fijo: elb_01

elb_01

remote_addr: remote_port

Dirección IP y número del puerto del cliente

Registra la dirección IP y el puerto del cliente.

10.184.30.170:59605

status

Código de estado de HTTP

Registra el código de estado de la solicitud.

200

request_method scheme://host request_uri server_protocol

Request method Protocol://Host name: Request URI Request protocol

  • request_method: método de solicitud
  • scheme: HTTP o HTTPS
  • host: nombre de host, que puede ser un nombre de dominio o una dirección IP
  • request_uri: indica que el URI nativo iniciado por el navegador sin ninguna modificación no incluye el protocolo y el nombre de host.

POST https://setting1.hicloud.com/AccountServer/IUserInfoMng/stAuth?Version=26400&cVersion=ID_SDK_2.6.4.300

request_length

Longitud de la solicitud recibida del cliente, incluidos el encabezado y el cuerpo

Integer

295

bytes_sent

Número de bytes enviados al cliente

Integer

58470080

body_bytes_sent

Número de bytes enviados al cliente (excepto el encabezado de respuesta)

Integer

58469792

request_time

Tiempo de procesamiento de la solicitud en segundos desde el momento en que el balanceador de carga recibe el primer paquete de solicitud del cliente hasta el momento en que el balanceador de carga envía el paquete de respuesta

Datos de punto flotante

499.769

upstream_status

Código de estado de respuesta devuelto por el servidor backend

  • Cuando el balanceador de carga intenta reintentar una solicitud, habrá varios códigos de estado de respuesta.
  • Si la solicitud no se enruta correctamente al servidor backend, se muestra un guion (-) como valor nulo para este campo.

Código de estado HTTP devuelto por el servidor backend al balanceador de carga

200 or "-, 200", or "502, 502: 200", or "502:"

upstream_connect_time

Tiempo necesario para establecer una conexión con el servidor backend, en segundos, con una resolución de milisegundos

  • Cuando el balanceador de carga intente volver a intentar una solicitud, habrá varios tiempos de conexión.
  • Si la solicitud no se enruta correctamente al servidor backend, se muestra un guion (-) como valor nulo para este campo.

Datos de punto flotante

0.008, "-, 0.008", "0.008, 0.005: 0.004", or "0.008:"

upstream_header_time

Tiempo necesario para recibir el encabezado de respuesta del servidor backend, en segundos, con una resolución de milisegundos

  • Cuando el balanceador de carga intenta volver a intentar una solicitud, habrá varios tiempos de respuesta.
  • Si la solicitud no se enruta correctamente al servidor backend, se muestra un guion (-) como valor nulo para este campo.

Datos de punto flotante

0.008, "-, 0.008", "0.008, 0.005: 0.004", or "0.008:"

upstream_response_time

Tiempo necesario para recibir la respuesta del servidor backend, en segundos, con una resolución de milisegundos

  • Cuando el balanceador de carga intenta volver a intentar una solicitud, habrá varios tiempos de respuesta.
  • Si la solicitud no se enruta correctamente al servidor backend, se muestra un guion (-) como valor nulo para este campo.

Datos de punto flotante

0.008, "-, 0.008", "0.008, 0.005: 0.004", or "0.008:"

upstream_addr

Dirección IP y número de puerto del servidor backend. Puede haber varios valores separados por comas y espacios, y cada valor tiene el formato de IP address}:{Port number o -.

Este parámetro solo está disponible para balanceadores de carga dedicados.

Dirección IP y número de puerto

-, or 192.168.1.2:8080

http_user_agent

http_user_agent en la cabecera de solicitud recibida por el balanceador de carga, indicando el modelo del sistema y la información del navegador del cliente

Registra la información relacionada con el navegador.

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36

http_referer

http_referer en el encabezado de solicitud recibido por el balanceador de carga, indicando el enlace de página de la solicitud

Solicitar un enlace de página

http://10.154.197.90/

http_x_forwarded_for

http_x_forwarded_for en la cabecera de solicitud recibida por el balanceador de carga, indicando la dirección IP del servidor proxy por el que pasa la solicitud

Dirección IP

10.154.197.90

lb_name

Nombre del balanceador de carga en el formato del loadbalancer_Load balancer ID

String

loadbalancer_789424af-3fd2-4292-8c62-2a2dd7005175

listener_name

Nombre del oyente en el formato de listener_Listener ID

String

listener_fde03b66-f960-440e-954a-0be8b2b75093

listener_id

ID de oyente (Este campo se puede ignorar)

String

-

pool_name

Nombre de grupo de servidor backend en el formato de pool_backend server group ID

String

pool_066a5dc5-a3e4-4ea1-99f1-2a5716b681f6

member_name

Nombre del servidor backend en el formato de member_server ID (este campo aún no se admite). Puede haber varios valores separados por comas y espacios, y cada valor es un ID de miembro (member_id) o -.

String

member_47b07465-075a-4d2f-8ce9-0b9f39bff160 (Puede haber varios valores separados por comas y espacios, y cada valor es un ID de miembro (member_id) o -.)

tenant_id

ID del tenant

String

04dd36f921000fe20f95c00bba986340

eip_address:eip_port

EIP del balanceador de carga y del puerto frontend que se configuraron cuando se agregó el oyente

EIP del balanceador de carga y del puerto frontend que se configuraron cuando se agregó el oyente

4.17.12.248:443

upstream_addr_priv

Dirección IP y número de puerto del servidor backend. Puede haber varios valores separados por comas y espacios, y cada valor tiene el formato de IP address}:{Port number o -.

Este parámetro solo está disponible para balanceadores de carga dedicados.

Dirección IP y número de puerto

-, 192.168.1.2:8080 (Puede haber varios valores por comas y espacios, y cada valor tiene el formato de IP address}:{Port number o -.)

certificate_id

[HTTPS listener] ID de certificado utilizado para establecer una conexión SSL

Este campo aún no se admite.

String

17b03b19-b2cc-454e-921b-4d187cce31dc

ssl_protocol

[HTTPS listener] Protocolo utilizado para establecer una conexión SSL

Para un oyente que no sea HTTPS, se muestra un guion (-) como valor nulo para este campo.

String

TLS 1.2

ssl_cipher

[HTTPS listener] Suite de cifrado utilizada para establecer una conexión SSL

Para un oyente que no sea HTTPS, se muestra un guion (-) como valor nulo para este campo.

String

ECDHE-RSA-AES256-GCM-SHA384

sni_domain_name

[HTTPS listener] Nombre de dominio SNI proporcionado por el cliente durante el protocolo de enlace SSL

Para un oyente que no sea HTTPS, se muestra un guion (-) como valor nulo para este campo.

String

www.test.com

tcpinfo_rtt

Tiempo de ida y vuelta (RTT) TCP entre el balanceador de carga y el cliente en microsegundos

Integer

39032

self_defined_header

Este campo está reservado. El valor predeterminado es -.

String

-

Ejemplo de log

1644819836.370 eb11c5a9-93a7-4c48-80fc-03f61f638595 [2022-02-14T14:23:56+08:00] elb_01 192.168.1.1:888 200 "POST https://www.test.com/example/HTTP/1.1" 1411 251 3 0.011 "200" "0.000" "0.011" "0.011" "100.64.0.129:8080" "okhttp/3.13.1" "-" "-" loadbalancer_295a7eee-9999-46ed-9fad-32a62ff0a687 listener_20679192-8888-4e62-a814-a2f870f62148 3333fd44fe3b42cbaa1dc2c641994d90 pool_89547549-6666-446e-9dbc-e3a551034c46 "-" f2bc165ad9b4483a9b17762da851bbbb 121.64.212.1:443 "10.1.1.2:8080" - TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 www.test.com 56704 -

En la siguiente tabla se describen los campos del log.

Tabla 2 Campos en el log

Campo

Valor de ejemplo

msec

1644819836.370

access_log_topic_id

eb11c5a9-93a7-4c48-80fc-03f61f638595

time_iso8601

[2022-02-14T14:23:56+08:00]

log_ver

elb_01

remote_addr: remote_port

192.168.1.1:888

status

200

request_method scheme://host request_uri server_protocol

"POST https://www.test.com/example/1 HTTP/1.1"

request_length

1411

bytes_sent

251

body_bytes_sent

3

request_time

0.011

upstream_status

"200"

upstream_connect_time

"0.000"

upstream_header_time

"0.011"

upstream_response_time

"0.011"

upstream_addr

"100.64.0.129:8080"

http_user_agent

"okhttp/3.13.1"

http_referer

"-"

http_x_forwarded_for

"-"

lb_name

loadbalancer_295a7eee-9999-46ed-9fad-32a62ff0a687

listener_name

listener_20679192-8888-4e62-a814-a2f870f62148

listener_id

3333fd44fe3b42cbaa1dc2c641994d90

pool_name

pool_89547549-6666-446e-9dbc-e3a551034c46

member_name

"-"

tenant_id

f2bc165ad9b4483a9b17762da851bbbb

eip_address:eip_port

121.64.212.1:443

upstream_addr_priv

"10.1.1.2:8080"

certificate_id

-

ssl_protocol

TLSv1.2

ssl_cipher

ECDHE-RSA-AES256-GCM-SHA384

sni_domain_name

www.test.com

tcpinfo_rtt

56704

self_defined_header

-

Análisis de logs:

A las 14:23:56 GMT+08:00 del 14 de febrero de 2022, el balanceador de carga recibe una solicitud GET HTTP/1.1 de un cliente cuya dirección IP y número de puerto son 192.168.1.1 y 888, luego enruta la solicitud a un servidor backend cuya IP dirección y número de puerto son 100.64.0.129 y 8080, y finalmente devuelve 200 OK al cliente después de recibir el código de estado del servidor backend.

Resultados del análisis:

El servidor backend responde a la solicitud normalmente.

Configuración de la transferencia de log

Si desea analizar los registros de acceso más tarde, transfiera los registros a OBS o al Data Ingestion Service (DIS) para su almacenamiento.

  1. Inicie sesión en la consola de gestión.
  2. En la esquina superior izquierda de la página, haga clic en y seleccione la región y el proyecto deseados.
  3. Haga clic en en la esquina superior izquierda y haga Management & Governance > Log Tank Service.
  4. En el panel de navegación de la izquierda, elija Log Transfer.
  5. En la página Log Transfer, haga clic en Configure Log Transfer en la esquina superior derecha.
  1. Configure los parámetros. Para obtener más información, consulte la Guía del usuario de Log Tank Service.