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.
- Cree un grupo de log.
- Inicie sesión en la consola de gestión.
- En la esquina superior izquierda de la página, haga clic en y seleccione la región y el proyecto deseados.
- Haga clic en en la esquina superior izquierda y haga Management & Governance > Log Tank Service.
- En el panel de navegación de la izquierda, elija Log Management.
- 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.
- Haga clic en OK.
- Cree un flujo de log.
- En la consola de LTS, haga clic en a la izquierda de un nombre de grupo de log.
- Haga clic en Create Log Stream. En el cuadro de diálogo que se muestra, escriba un nombre para el flujo de log.
- Seleccione un proyecto de empresa según sea necesario.
- Haga clic en OK.
Configuración del registro de acceso
- Pase el ratón sobre en la esquina superior izquierda para mostrar Service List y elija Networking > Elastic Load Balance.
- Busque el balanceador de carga y haga clic en su nombre.
- En Access Logs, haga clic en Configure Access Logging.
- Habilite el log de acceso y seleccione el grupo de log y el flujo de log que creó.
- 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
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 |
|
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
|
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
|
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
|
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
|
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.
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.
- Inicie sesión en la consola de gestión.
- En la esquina superior izquierda de la página, haga clic en y seleccione la región y el proyecto deseados.
- Haga clic en en la esquina superior izquierda y haga Management & Governance > Log Tank Service.
- En el panel de navegación de la izquierda, elija Log Transfer.
- En la página Log Transfer, haga clic en Configure Log Transfer en la esquina superior derecha.
- Configure los parámetros. Para obtener más información, consulte la Guía del usuario de Log Tank Service.