访问日志
操作场景
负载均衡的访问日志功能支持查看和分析对七层负载均衡HTTP和HTTPS进行请求的详细访问日志记录,包括请求时间、客户端IP地址、请求路径和服务器响应等。配置访问日志时需要您对接云日志服务,已创建需要关联的云日志组和日志流。配置了访问日志后,新连接上的请求日志才会上传到AOM日志桶。
配置访问日志
- 在“云日志服务”界面创建日志组。
- 单击左侧导航栏“日志管理”。
- 单击 “创建日志组”,在弹出框内,输入日志组名称。
- 单击“确定”,创建完成。
- 在“云日志服务”界面创建日志流。
- 选择已创建的日志组名称,进入该日志组页面。
- 单击“创建日志流”,在弹出框内,输入日志流名称。
- 单击“确定”,创建完成。
- ELB对接云日志服务时,为了支持实时显示日志记录,需要在相应日志流下,手动搜索。
- 在新创建日志流名称所在行,单击“搜索日志”。
- 在搜索输入框按照提示输入搜索内容。
- 点击“搜索”图标,完成搜索。
- 在“弹性负载均衡”界面配置访问日志。
- 开启日志记录,选择您在云日志服务中创建的日志组和日志流。
- 单击“确定”,配置完成。
查看访问日志
当您配置了访问日志,可以查看访问日志的详细信息。
查看方式以下两种:
- 通过“弹性负载均衡”控制台,进入访问日志界面,即可查看访问日志。
- (推荐)通过“云日志服务”控制台,进入日志主题界面,选择相应日志主题名称,单击“实时日志”,即可查看访问日志。
日志显示格式如下,日志字段说明如表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
参数 |
描述 |
---|---|
msec |
以秒为单位的时间,日志写入时的分辨率为毫秒。 |
access_log_topic_id |
访问日志流ID。 |
time_iso8601 |
日志写入时的时间,采用ISO 8601标准格式本地时间。 |
log_ver |
ELB服务日志版本号。 |
remote_addr: remote_port |
客户端IP地址:客户端端口。 |
status |
ELB响应的状态码。 |
request_method scheme://host router_request_uri server_protocol |
请求方法 请求方式://主机名:请求URI 请求协议。 |
request_length |
从客户端收到的请求长度(包括请求head和请求body)。 |
bytes_sent |
发送到客户端的字节数 。 |
body_bytes_sent |
发送到客户端的字节数(不包括响应头)。 |
request_time |
请求处理时间,即ELB收到第一个客户端请求报文到ELB发送完响应报文的时间间隔(单位:秒)。 |
upstream_status |
从上游服务器获得的响应状态码,当ELB代理进行请求重试时会包含多个响应的状态码,当请求未被正确转发到后端服务器时此字段为 -。 |
upstream_connect_time |
与上游服务器建立连接所花费的时间,时间以秒为单位,分辨率为毫秒。当ELB代理进行请求重试时会包含多个连接的时间,当请求未被正确转发到后端服务器时此字段为 -。 |
upstream_header_time |
从上游服务器接收响应头所花费的时间,时间以秒为单位,分辨率为毫秒。当ELB代理进行请求重试时会包含多个响应时间,当请求未被正确转发到后端服务器时此字段为 -。 |
upstream_response_time |
从上游服务器接收响应所花费的时间,时间以秒为单位,分辨率为毫秒。当ELB代理进行请求重试时会包含多个响应时间,当请求未被正确转发到后端服务器时此字段为 -。 |
upstream_addr |
后端服务器在ELB服务内部IP地址和端口(客户可忽略)。 |
http_user_agent |
ELB收到请求头中的http_user_agent内容,表示客户端的系统型号、浏览器信息等。 |
http_referer |
ELB收到请求头中的http_referer内容,表示该请求所在的页面链接。 |
http_x_forwarded_for |
ELB收到请求头中的http_x_forwarded_for内容,表示请求经过的代理服务器IP地址。 |
lb_name |
负载均衡器的名称(格式为“loadbalancer_” + “负载均衡器ID”)。 |
listener_name |
监听器的名称(格式为“listener_” + “监听器ID”)。 |
listener_id |
监听器在ELB服务内部的ID(客户可忽略)。 |
pool_name |
后端服务器组名称(格式为“pool_” + “后端服务器组ID”)。 |
member_name |
后端服务器的名称(格式为“member_” + “服务器ID”,尚未支持)。 |
tenant_id |
租户ID。 |
eip_address:eip_port |
弹性IP地址和监听器监听的端口号。 |
upstream_addr_priv |
后端主机的IP地址和端口号。 |
certificate_id |
[HTTPS监听器]SSL连接建立时使用的证书ID(尚未支持)。 |
ssl_protocol |
[HTTPS监听器]SSL连接建立使用的协议,非HTTPS监听器,此字段为 -。 |
ssl_cipher |
[HTTPS监听器]SSL连接建立使用的加密套件,非HTTPS监听器,此字段为 -。 |
sni_domain_name |
[HTTPS监听器]SSL握手时客户端提供的SNI域名,非HTTPS监听器,此字段为 -。 |
tcpinfo_rtt |
ELB与客户端之间的tcp rtt时间,单位:微秒。 |