
# 通过ELB的访问日志查询客户端请求源IP
#### 应用场景
使用弹性负载均衡ELB进行业务转发时，获取客户端请求的真实源IP对于数据分析和业务安全防护至关重要。
ELB支持将七层监听器转发的业务接入云日志服务进行分析，通过ELB的访问日志记录即可快速查询访问客户端请求的源IP。
#### 约束与限制
仅采用HTTP/HTTPS/QUIC/TLS监听器的负载均衡实例支持配置访问日志。
#### 准备工作
- 已创建独享型ELB实例，且ELB已绑定EIP。具体操作，请参见[购买独享型负载均衡器](https://support.huaweicloud.com/usermanual-elb/elb_lb_000006.html)和[绑定IPv4公网IP](https://support.huaweicloud.com/usermanual-elb/elb_ug_fz_0015.html)。
- 已创建协议类型为HTTPS协议的后端服务器组，服务器组中添加ECS01实例。ECS实例与ELB位于同一VPC内，并且在ECS01中部署了应用服务，部署测试业务详情请参见[搭建后端服务](https://support.huaweicloud.com/qs-elb/zh-cn_topic_0052569751.html#section4)。
- 您已经开通了云日志服务，并且已经创建了日志组和日志流。具体操作，请参见[弹性负载均衡 ELB接入LTS](https://support.huaweicloud.com/usermanual-lts/lts_07_0005.html)。
- 为日志流设置云端结构化解析模板，系统模板选择ELB。具体操作，请参见[设置日志云端结构化解析](https://support.huaweicloud.com/usermanual-lts/lts_0823.html)。
 
 #### 步骤一：上传服务器证书到ELB控制台
在ELB添加HTTPS监听器前，您需要将您的证书上传到将ELB控制台。
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在左侧导航栏单击"证书管理"。
3. 单击"创建证书"，配置参数请参见[表1]。
    表1服务器证书参数说明 
   | 参数          | 说明                                                                                                                    |
   |:---|:---|
   | 证书类型        | 创建证书的类型，本文选择服务器证书。                                                                                                    |
   | 证书来源        | 服务器证书同时支持SSL证书管理服务提供的数字证书和您的自有证书。 本文选择"SSL证书管理"以同步您在华为云云证书与管理服务已经购买的SSL证书。 |
   | 证书          | 选择您需要上传到ELB控制台的证书。                                                                                                    |
   | 企业项目        | 企业项目是一种云资源管理方式，企业项目管理服务提供统一的云资源按项目管理，以及项目内的资源管理、成员管理。                                                                 |
   | SNI扩展域名（可选） | 将自动同步SSL证书已绑定的所有域名。 当您的证书用于配置SNI证书时，将支持根据客户端HTTPS请求的域名来选择对应的SNI证书完成认证。     |
   | 描述          | 添加对该证书的描述信息，非必填项。                                                                                                     |
      
   
4. 单击"确定"，完成创建。
 
#### 步骤二：添加HTTPS监听器并配置单向认证
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在目标弹性负载均衡实例的操作列，单击"添加监听器"。
3. 在添加监听器页面，协议类型选择"HTTPS"，"SSL解析方式"选择"单向认证"， 在服务器证书的配置项中选择[步骤一]中上传到ELB控制台的服务器证书。
   独享型ELB的HTTPS协议监听器默认开启"获取客户端IP"功能，支持通过X-Forwarded-For字段传递客户端的真实IP。
   图1添加HTTPS监听器并配置单向认证   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002133559530.png "点击放大") 
4. 单击"下一步：配置后端分配策略"，后端服务器组参数选择"使用已有"。 选择已经创建完成的服务器组，完成后单击"下一步：确认配置"。
   
5. 确认配置参数后，单击"提交"，完成HTTPS监听器的创建。
 
#### 步骤三：配置ELB访问日志
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在"负载均衡器"界面，单击需要配置访问日志的负载均衡器名称。
3. 在该负载均衡器界面的"访问日志"页签，单击"配置访问日志"。
4. 开启日志记录，选择您在云日志服务中创建的日志组和日志流。
   图2配置ELB访问日志   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002318295116.png "点击放大")
   图3配置ELB访问日志   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002352333905.png "点击放大") 
5. 单击"确定"，配置完成。
 
#### 步骤四：通过弹性公网IP访问ELB
通过在您的浏览器中输入ELB实例绑定的EIP访问ELB实例，页面显示如下[图4]所示，说明访问请求被ELB实例转发至ECS01，应用部署成功。
图4ECS01的nginx部署成功页面   
![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002352340669.png "点击放大")
#### 步骤五：通过访问日志查询客户端IP
1. 在弹性负载均衡实例的"访问日志"页签，单击"查看详细日志"，访问云日志服务的日志管理列表页。
   图5查看访问日志的日志组   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002363915369.png "点击放大") 
2. 在日志组的列表页，单击日志流名称，进入日志流详情页查看日志。
   图6查看日志流   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002363923629.png "点击放大") 
3. 在日志流详情页面，直接查看日志列表的相关字段，即可查看客户端请求的源IP。
   1. 客户端直接访问ELB实例时：日志字段"remote_addr"即为客户端源IP。
   
   2. 客户端通过代理服务器访问ELB实例时：日志字段"http_x_forwarded_for"中的第一个IP地址即为客户端源IP。
   
   
   在日志数据中查找包含特定关键词的日志记录，或者根据时间范围来检索日志数据，搜索详情请参考[搜索日志](https://support.huaweicloud.com/usermanual-lts/lts_05_0005.html)。
   表2访问日志字段说明 
   | 参数                       | 描述                                          | 取值说明                          |
   |:---|:---|:---|
   | remote_addr: remote_port | 客户端IP地址：客户端端口。                              | 记录客户端IP地址和客户端端口号。             |
   | http_x_forwarded_for     | ELB收到请求头中的http_x_forwarded_for，表示请求经过代理服务器。 | 记录请求经过链路的IP地址，第一个IP地址为客户端源IP。 |
      
   图7查看客户端源IP地址   
   ![](https://support.huaweicloud.com/bestpractice-elb/zh-cn_image_0000002330020502.png "点击放大") 
 
#### 相关文档
- [ELB接入访问日志](https://support.huaweicloud.com/usermanual-elb/elb_ug_rz_0000.html)
- [在七层独享型ELB转发下获取客户端真实IP](https://support.huaweicloud.com/bestpractice-elb/elb_bp_0600.html)
- [在四层独享型ELB转发下获取客户端真实IP](https://support.huaweicloud.com/bestpractice-elb/elb_bp_1014.html)
 
