
# 访问日志
#### 操作场景
在您使用共享型ELB期间，支持对采用HTTP/HTTPS监听器的负载均衡实例的访问日志进行记录，包括请求时间、客户端IP地址、请求路径和服务器响应等。
弹性负载均衡ELB支持将七层监听器转发的业务接入云日志服务进行分析，云日志将记录包括请求时间、客户端IP地址、请求路径和服务器响应等信息。如果您遇到后端服务器导致的业务故障或异常，您可以查看访问弹性负载均衡的详细日志记录，分析负载均衡的响应状态码，快速定位出异常的后端服务器。
![](https://support.huaweicloud.com/usermanual-elb/public_sys-resources/warning_3.0-zh-cn.png)
由于弹性负载均衡会将访问日志等运维数据内容展示到云日志服务控制台，请您在使用过程中，注意您的隐私及敏感信息数据保护。不建议将隐私或敏感数据通过访问日志涉及的的字段传输，必要时请加密保护。
#### 费用说明
ELB接入云日志后，云日志服务根据日志读写流量、日志存储量、日志转测的流量等计费，云日志服务的详细计费信息请参考[云日志服务的计费项](https://support.huaweicloud.com/price-lts/lts_001_05.html)。
#### 约束与限制
- 仅采用HTTP/HTTPS监听器的共享型负载均衡实例支持配置访问日志。
- 客户订阅的访问日志中不包含返回码为400的请求，因为该类请求不符合HTTP规范，无法被正常处理。
 
#### 前提条件
- 您已经创建了七层（应用型）负载均衡器。具体操作，请参见[购买共享型负载均衡器](https://support.huaweicloud.com/usermanual-elb/zh-cn_topic_0015479967.html)。
- 您已经开通了云日志服务。具体操作，请参见[开始使用云日志服务](https://support.huaweicloud.com/qs-lts/lts_08301.html)。
- 您已经创建了后端服务器组并且已添加后端服务器，在后端服务器中已部署了业务。具体操作，请参见[创建后端服务器组](https://support.huaweicloud.com/usermanual-elb/elb_ug_hdg_0004.html)。

- 您已经在ELB中创建了HTTP或HTTPS监听器。具体操作，请参见[添加HTTP监听器](https://support.huaweicloud.com/usermanual-elb/elb_ug_sjt_0004.html)或[添加HTTPS监听器](https://support.huaweicloud.com/usermanual-elb/zh_cn_elb_03_0006.html)。
 
#### 配置访问日志
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在"负载均衡器"界面，单击需要配置访问日志的负载均衡器名称。
3. 在该负载均衡器界面的"访问日志"页签，单击"配置访问日志"。
   图1配置访问日志入口   
   ![](https://support.huaweicloud.com/usermanual-elb/zh-cn_image_0000002455052697.png "点击放大") 
4. 开启日志记录，选择您在云日志服务中创建的日志组和日志流。 如果您尚未在云日志服务创建日志组和日志流，可以在ELB服务控制台进行创建。
   单击查看创建日志组和日志流详情
   1. 单击"创建日志组和日志流"。
   
   2. 在"创建日志组\&日志组"侧拉窗中，设置日志组名称、日志流名称和日志存储时间。
      图2在ELB服务控制台创建日志组和日志流   
      ![](https://support.huaweicloud.com/usermanual-elb/zh-cn_image_0000002455069669.png "点击放大") 
   
   3. 单击"确定"，完成日志组和日志流的创建。
    
   图3启动日志记录   
   ![](https://support.huaweicloud.com/usermanual-elb/zh-cn_image_0000001908397312.png "点击放大") 
5. 单击"确定"，配置完成。
 
#### 查看访问日志
您可以通过以下两种方式查看访问日志的详细信息：
- "弹性负载均衡"控制台，进入访问日志界面，即可查看访问日志。
- （推荐）"云日志服务"控制台，在日志组列表，单击查看目标日志组。进入日志组详情页，在相应日志流名称所在行，单击看目标日志流的日志详情。
日志显示格式如下所示，不支持修改日志格式。
```
$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
```
日志示例如下：
```
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 -
```
日志字段说明如[表1]。
 表1字段说明 
| 参数                                                       | 描述                                                                              | 取值说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 示例取值                                                                                                            |
|:---|:---|:---|:---|
| msec                                                     | 以秒为单位的时间，日志写入时的分辨率为毫秒。                                                          | 浮点型数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 1644819836.370                                                                                                  |
| access_log_topic_id                                      | 访问日志流ID。                                                                        | uuid                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | eb11c5a9-93a7-4c48-80fc-03f61f638595                                                                            |
| time_iso8601                                             | 日志写入时的时间，采用ISO 8601标准格式本地时间。                                                    | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | \[2022-02-14T14:23:56+08:00\]                                                                                   |
| log_ver                                                  | ELB服务日志版本号。                                                                     | 固定值：elb_01                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | elb_01                                                                                                          |
| remote_addr: remote_port                                 | 客户端IP地址：客户端端口。                                                                  | 记录客户端IP地址和客户端端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 192.168.1.1:888                                                                                                 |
| status                                                   | ELB响应的状态码。                                                                      | 记录请求状态码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 200                                                                                                             |
| request_method scheme://host request_uri server_protocol | 请求方法。请求方式：//主机名：请求URI 请求协议。                                                     | - request_method：请求方法。  - scheme: http或https。  - host: 主机名，可能为域名或者IP。  - request_uri： 浏览器发起的不做任何修改的原生URI。不包括协议及主机名。    | "POST https://www.test.com/example/ HTTP/1.1"                                                                   |
| request_length                                           | 从客户端收到的请求长度（包括请求header和请求body）。                                                 | 整型数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 1411                                                                                                            |
| bytes_sent                                               | 发送到客户端的字节数 。                                                                    | 整型数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 251                                                                                                             |
| body_bytes_sent                                          | 发送到客户端的字节数（不包括响应头）。                                                             | 整型数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 3                                                                                                               |
| request_time                                             | 请求处理时间，即ELB收到第一个客户端请求报文到ELB发送完响应报文的时间间隔（单位：秒）。                                  | 浮点型数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 0.011                                                                                                           |
| upstream_status                                          | 从上游服务器获得的响应状态码，当ELB代理进行请求重试时会包含多个响应的状态码，当请求未被正确转发到后端服务器时此字段为 -。                 | 后端返回给ELB的状态码                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | "200"                                                                                                           |
| upstream_connect_time                                    | 与上游服务器建立连接所花费的时间，时间以秒为单位，分辨率为毫秒。当ELB代理进行请求重试时会包含多个连接的时间，当请求未被正确转发到后端服务器时此字段为 -。 | 浮点型数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | "0.000"                                                                                                         |
| upstream_header_time                                     | 从上游服务器接收响应头所花费的时间，时间以秒为单位，分辨率为毫秒。当ELB代理进行请求重试时会包含多个响应时间，当请求未被正确转发到后端服务器时此字段为 -。 | 浮点型数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | "0.011"                                                                                                         |
| upstream_response_time                                   | 从上游服务器接收响应所花费的时间，时间以秒为单位，分辨率为毫秒。当ELB代理进行请求重试时会包含多个响应时间，当请求未被正确转发到后端服务器时此字段为 -。  | 浮点型数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | "0.011"                                                                                                         |
| upstream_addr                                            | 后端主机的IP地址和端口号。可能有多个值，每个值都是ip:port或者-，用逗号空格隔开。                                   | IP地址+端口号                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | "100.64.0.129:8080" （共享型负载均衡场景该IP地址为ELB内部通信使用）           |
| http_user_agent                                          | ELB收到请求头中的http_user_agent内容，表示客户端的系统型号、浏览器信息等。                                  | 记录浏览器的相关信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | "okhttp/3.13.1"                                                                                                 |
| http_referer                                             | ELB收到请求头中的http_referer内容，表示该请求所在的页面链接。                                          | 页面链接请求                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | "-"                                                                                                             |
| http_x_forwarded_for                                     | ELB收到请求头中的http_x_forwarded_for内容，表示请求经过的代理服务器IP地址。                              | IP地址                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | "-"                                                                                                             |
| lb_name                                                  | 负载均衡器的名称（格式为"loadbalancer_" + "负载均衡器ID"）。                                       | 字符串                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | loadbalancer_295a7eee-9999-46ed-9fad-32a62ff0a687                                                               |
| listener_name                                            | 监听器的名称（格式为"listener_" + "监听器ID"）。                                               | 字符串                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | listener_20679192-8888-4e62-a814-a2f870f62148                                                                   |
| listener_id                                              | 监听器在ELB服务内部的ID（客户可忽略）。                                                          | 字符串                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 3333fd44fe3b42cbaa1dc2c641994d90                                                                                |
| pool_name                                                | 后端服务器组名称（格式为"pool_" + "后端服务器组ID"）。                                              | 字符串                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | pool_89547549-6666-446e-9dbc-e3a551034c46                                                                       |
| member_name                                              | 后端服务器的名称（格式为"member_" + "服务器ID"，尚未支持）。可能有多个值，每个值都是member_id或者-，用逗号空格隔开。         | 字符串                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | "-" (实际日志可能有多个值，每个值都是member_id或者-，用逗号空格隔开)              |
| tenant_id                                                | 租户ID。                                                                           | 字符串                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | f2bc165ad9b4483a9b17762da851bbbb                                                                                |
| eip_address:eip_port                                     | 弹性IP地址和监听器监听的端口号。                                                               | 弹性IP地址和监听器监听的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 121.64.212.1:443                                                                                                |
| upstream_addr_priv                                       | 后端主机的IP地址和端口号。可能有多个值，每个值都是ip:port或者-，用逗号空格隔开。                                   | IP地址+端口号                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | "10.1.1.2:8080" (实际日志可能有多个值，每个值都是member_id或者-，用逗号空格隔开) |
| certificate_id                                           | \[HTTPS监听器\]SSL连接建立时使用的证书ID（尚未支持）。                                              | 字符串                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | -                                                                                                               |
| ssl_protocol                                             | \[HTTPS监听器\]SSL连接建立使用的协议，非HTTPS监听器，此字段为 -。                                      | 字符串                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | TLSv1.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时间，单位：微秒。                                                      | 整型数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 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。
分析结果：
后端服务器正常响应请求。
#### 相关文档
- 最佳实践：[通过ELB的访问日志查询客户端请求源IP](https://support.huaweicloud.com/bestpractice-elb/elb_bp_1013.html)。
- 如果您希望将日志转储进行二次分析，您可以配置日志转储，详情请参考[日志转储](https://support.huaweicloud.com/usermanual-lts/lts_04_0011.html)。
- 如果您希望对ELB的日志数据进行统一管理，请参考如下文档：
  - 在云日志控制台接入LTS：[弹性负载均衡 ELB接入LTS](https://support.huaweicloud.com/usermanual-lts/lts_07_0005.html)。
  
  - AOM支持创建日志指标规则，将ELB上报到LTS的日志数据提取为指标来统一管理，便于后续在指标浏览、仪表盘界面实时监控。通过接入AOM，您可以对日志进行统计，支持以下统计类型：count、countKeyword、sum、avg、max、min、P50、P75、P90、P95和P99，详情请参见[配置日志指标接入AOM](https://support.huaweicloud.com/usermanual-aom2/mon_01_0061.html#section2)。
   
- API操作：[创建云日志](https://support.huaweicloud.com/api-elb/CreateLogtank.html)、[查询云日志详情](https://support.huaweicloud.com/api-elb/ShowLogtank.html)。
 
