更新时间:2022-04-24 GMT+08:00
分享

访问日志

操作场景

负载均衡的访问日志功能支持查看和分析对七层负载均衡HTTP和HTTPS进行请求的详细访问日志记录,包括请求时间、客户端IP地址、请求路径和服务器响应等。配置访问日志时需要您对接云日志服务,并且已经创建需要关联的云日志组和日志流。

七层独享型负载均衡和七层共享型负载均衡支持此功能,四层独享型负载均衡和四层共享型负载均衡不支持。

当前支持访问日志的区域有:华北-北京一、华北-北京四、华东-上海一、华东-上海二、华南-广州、华南-广州-友好用户环境、西南-贵阳一、中国-香港、亚太-新加坡。

配置云日志服务

为了能够在云日志服务上面看到弹性负载均衡的日志,需要配置云日志服务。关于云日志服务的详细配置和操作方法,请参见《云日志服务用户指南》

  1. 在“云日志服务”界面创建日志组。
    1. 登录管理控制台。
    2. 在管理控制台左上角单击图标,选择区域和项目。
    3. 选择“服务列表 > 管理与监管 > 云日志服务”。
      图1 进入云日志服务
    1. 单击左侧导航栏“日志管理”。
    2. 单击 “创建日志组”,在弹出框内,输入日志组名称。
    1. 单击“确定”,创建完成。
  2. 在“云日志服务”界面创建日志流。
    1. 选择已创建的日志组名称,进入该日志组页面。
    2. 单击“创建日志流”,在弹出框内,输入日志流名称。
    1. 单击“确定”,创建完成。

配置ELB访问日志

在“弹性负载均衡”界面配置访问日志。
  1. 单击页面左上角的,选择“网络 > 弹性负载均衡”。
  2. 在“负载均衡器”界面,单击需要配置访问日志的负载均衡器名称。
  3. 在该负载均衡器界面的“访问日志”页签,单击“配置访问日志”。
    图2 配置ELB访问日志
    图3 配置访问日志
  1. 开启日志记录,选择您在云日志服务中创建的日志组和日志流。
  2. 单击“确定”,配置完成。

查看访问日志

当您配置了访问日志,可以查看访问日志的详细信息。

查看方式以下两种:

  • 通过“弹性负载均衡”控制台,进入访问日志界面,即可查看访问日志。
  • (推荐)通过“云日志服务”控制台,进入日志主题界面,选择相应日志主题名称,单击“实时日志”,即可查看访问日志。

日志显示格式如下,日志字段说明如表1所示。不支持修改日志格式。

$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
表1 字段说明

参数

描述

取值说明

取值示例

msec

以秒为单位的时间,日志写入时的分辨率为毫秒。

浮点型数据

1530153091.868

access_log_topic_id

访问日志流ID。

uuid

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

time_iso8601

日志写入时的时间,采用ISO 8601标准格式本地时间。

-

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

log_ver

ELB服务日志版本号。

固定值:elb_01

elb_01

remote_addr: remote_port

客户端IP地址:客户端端口。

记录客户端IP地址和客户端端口号。

10.184.30.170:59605

status

ELB响应的状态码。

记录请求状态码。

200

request_method scheme://host request_uri server_protocol

请求方法。请求方式://主机名:请求URI 请求协议。

  • request_method:请求方法。
  • scheme: http或https。
  • host: 主机名,可能为域名或者IP。
  • request_uri:

    浏览器发起的不做任何修改的原生URI。不包括协议及主机名。

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

request_length

从客户端收到的请求长度(包括请求header和请求body)。

整型数据

295

bytes_sent

发送到客户端的字节数 。

整型数据

58470080

body_bytes_sent

发送到客户端的字节数(不包括响应头)。

整型数据

58469792

request_time

请求处理时间,即ELB收到第一个客户端请求报文到ELB发送完响应报文的时间间隔(单位:秒)。

浮点型数据

499.769

upstream_status

从上游服务器获得的响应状态码,当ELB代理进行请求重试时会包含多个响应的状态码,当请求未被正确转发到后端服务器时此字段为 -。

后端返回给ELB的状态码

200 或者 "-, 200",或者"502, 502 : 200",或者"502 : "

upstream_connect_time

与上游服务器建立连接所花费的时间,时间以秒为单位,分辨率为毫秒。当ELB代理进行请求重试时会包含多个连接的时间,当请求未被正确转发到后端服务器时此字段为 -。

浮点型数据

0.008 或者 "-, 0.008" ,或者"0.008, 0.005 : 0.004",或者"0.008 : "

upstream_header_time

从上游服务器接收响应头所花费的时间,时间以秒为单位,分辨率为毫秒。当ELB代理进行请求重试时会包含多个响应时间,当请求未被正确转发到后端服务器时此字段为 -。

浮点型数据

0.008 或者 "-, 0.008" ,或者"0.008, 0.005 : 0.004",或者"0.008 : "

upstream_response_time

从上游服务器接收响应所花费的时间,时间以秒为单位,分辨率为毫秒。当ELB代理进行请求重试时会包含多个响应时间,当请求未被正确转发到后端服务器时此字段为 -。

浮点型数据

0.008 或者 "-, 0.008" ,或者"0.008, 0.005 : 0.004",或者"0.008 : "

upstream_addr

后端服务器在ELB服务内部IP地址和端口(客户可忽略)。

IP地址+端口号

100.64.1.246:80(可能有多个值,每个值都是ip:port或者-,用逗号空格或者空格冒号空格隔开)

http_user_agent

ELB收到请求头中的http_user_agent内容,表示客户端的系统型号、浏览器信息等。

记录浏览器的相关信息

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

http_referer

ELB收到请求头中的http_referer内容,表示该请求所在的页面链接。

页面链接请求

http://10.154.197.90/

http_x_forwarded_for

ELB收到请求头中的http_x_forwarded_for内容,表示请求经过的代理服务器IP地址。

IP地址

10.154.197.90

lb_name

负载均衡器的名称(格式为“loadbalancer_” + “负载均衡器ID”)。

字符串

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

listener_name

监听器的名称(格式为“listener_” + “监听器ID”)。

字符串

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

listener_id

监听器在ELB服务内部的ID(客户可忽略)。

字符串

-

pool_name

后端服务器组名称(格式为“pool_” + “后端服务器组ID”)。

字符串

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

member_name

后端服务器的名称(格式为“member_” + “服务器ID”,尚未支持)。可能有多个值,每个值都是member_id或者-,用逗号空格隔开。

字符串

member_47b07465-075a-4d2f-8ce9-0b9f39bff160(可能有多个值,每个值都是member_id或者-,用逗号空格隔开)

tenant_id

租户ID。

字符串

04dd36f921000fe20f95c00bba986340

eip_address:eip_port

弹性IP地址和监听器监听的端口号。

弹性IP地址和监听器监听的端口号。

4.17.12.248:443

upstream_addr_priv

后端主机的IP地址和端口号。可能有多个值,每个值都是ip:port或者-,用逗号空格隔开。

IP地址+端口号

-, 192.168.1.2:8080(可能有多个值,每个值都是ip:port或者-,用逗号空格隔开)

certificate_id

[HTTPS监听器]SSL连接建立时使用的证书ID(尚未支持)。

字符串

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

ssl_protocol

[HTTPS监听器]SSL连接建立使用的协议,非HTTPS监听器,此字段为 -。

字符串

TLS 1.2

ssl_cipher

[HTTPS监听器]SSL连接建立使用的加密套件,非HTTPS监听器,此字段为 -。

字符串

ECDHE-RSA-AES256-GCM-SHA384

sni_domain_name

[HTTPS监听器]SSL握手时客户端提供的SNI域名,非HTTPS监听器,此字段为 -。

字符串

www.test.com

tcpinfo_rtt

ELB与客户端之间的tcp rtt时间,单位:微秒。

整型数据

39032

self_defined_header

该字段为保留字段,默认为“-”。

字符串

-

日志示例

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 -

以上日志示例对应的字段如下:

表2 日志示例对应的字段

参数

示例

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

-

日志分析:

在[2022-02-14T14:23:56+08:00]时,ELB接收到客户端地址和端口(192.168.1.1:888)发起的“POST /HTTP/1.1”请求,ELB将请求转发给后端服务器(100.64.0.129:8080),后端服务器响应状态码200,ELB最终向客户端响应状态码200。

分析结果:

后端服务器正常响应请求。

配置日志转储

如果您希望将日志转储进行二次分析,您可以参考本章设置日志转储。

  1. 选择“服务列表 > 云日志服务”。
  2. 单击“日志转储”。
    图4 配置日志转储
  3. 根据实际情况设置转储方式和其他配置项,具体操作请参见《云日志服务用户指南》
分享:

    相关文档

    相关产品

close