访问日志
在使用CLB的七层负载均衡时,如果您需要进行业务开发测试、故障处理或用户行为数据分析,您可使用CLB访问日志功能。CLB访问日志功能结合阿里云日志服务,可帮助您大幅提升日志数据分析、故障定位处理的效率。
功能简介
什么是CLB访问日志
CLB访问日志功能收集所有发送到CLB的请求详细信息,包括请求时间、客户端IP地址、延迟、请求路径和服务器响应等。作为公网访问入口,CLB承载海量访问请求。您可以通过访问日志分析用户行为、了解地域分布、进行问题排查等。
在开启CLB访问日志后,您可以将访问日志存储在日志服务(SLS)的日志库(Logstore)中,采集分析访问日志。您可以随时删除访问日志的配置。
CLB访问日志功能无需额外付费,您仅需支付日志服务的费用。日志服务计费可参考日志服务计费概述。
只有七层CLB支持访问日志功能。
确保HTTP header的值不包含
||
,否则可能导致日志分割错位。
CLB访问日志优势
CLB访问日志有以下优势:
简单
解放开发、运维人员的时间,专注业务开发和技术探索。
海量
处理海量日志数据,日志服务在性能和成本上优于自建方案。
实时
满足DevOps、监控、报警等场景的实时性需求,结合阿里云日志服务,秒级分析处理日志。
灵活
按CLB实例级别开通或关闭日志功能,后台自动创建与对接,无需手动维护。
使用限制
仅CLB的七层负载均衡(HTTP/HTTPS监听)支持访问日志功能。
前提条件
已创建CLB实例。具体操作,请参见创建和管理CLB实例。
已创建虚拟服务器组,具体操作,请参见创建和管理CLB虚拟服务器组。在服务器组中已添加后端服务器,并在后端服务器中部署了应用服务。
您已经开通了日志服务。具体操作,请参见开通日志服务。
设置访问日志
- 登录传统型负载均衡CLB控制台。
在左侧导航栏,选择
。在顶部菜单栏,选择CLB实例所属地域。
如果您是首次使用该功能,需要进行账号授权。单击立即授权,在弹出的云资源访问授权页面单击同意授权。
说明该操作只有在首次配置时需要执行。
如果您使用的是RAM用户,需要阿里云账号进行授权。具体操作,请参见授权RAM用户(子账号)使用CLB访问日志。
在访问日志(7层)页面,找到目标CLB实例,在操作列单击设置。
在日志设置面板,设置项目Project和日志库Logstore,然后单击确定。
项目Project:项目(Project)是日志服务的资源管理单元,用于资源隔离和控制。建议使用不同的Project管理不同的应用、产品或项目中的数据。
日志库Logstore:日志库(Logstore)是日志服务中日志数据的采集、存储和查询单元。建议同个应用中不同类型的日志创建独立的Logstore。
选择现有Logstore:该功能会默认开启选中的Logstore的分析仪表盘,如果该Logstore已配置索引,配置会被覆盖。
说明确保Project的名称全局唯一,且Project的地域和负载均衡实例的地域相同。
配置负载均衡访问日志后,您可以在日志服务中查询、检索以下字段的日志信息。
字段
说明
body_bytes_sent
发送给客户端的http body的字节数。
client_ip
请求客户端IP地址。
client_port
请求客户端端口。
host
优先从请求参数中获取host,如果获取不到则从host header取值,如果还是获取不到则以处理请求的后端服务器IP地址作为host。
http_host
请求报文host header的内容。
http_referer
负载均衡收到的请求报文中HTTP的referer header的内容。
http_user_agent
负载均衡收到的请求报文中http_user_agent header的内容。
http_x_forwarded_for
负载均衡收到的请求报文中x-forwarded-for header的内容。
http_x_real_ip
客户端真实的IP地址。
read_request_time
负载均衡读取请求的时间,单位:毫秒。
request_length
请求报文的长度,包括startline、http header和http body。
request_method
请求报文的方法。
request_time
负载均衡收到第一个请求报文的时间到SLB返回应答之间的间隔时间,单位:秒。
request_uri
负载均衡收到的请求报文的URI。
scheme
请求的scheme,包括http、https。
server_protocol
负载均衡收到的HTTP协议的版本,例如HTTP/1.0或HTTP/1.1。
slb_vport
负载均衡的监听端口。
slbid
负载均衡实例ID。
ssl_cipher
建立SSL连接使用的密码,例如ECDHE-RSA-AES128-GCM-SHA256等。
ssl_protocol
建立SSL连接使用的协议,例如TLSv1.2。
status
负载均衡应答报文的状态。
tcpinfo_rtt
客户端TCP连接时间,单位:微秒。
time
日志记录时间。
upstream_addr
后端服务器的IP地址和端口。
upstream_response_time
从与后端建立连接开始到接受完数据然后关闭连接为止的时间,单位:秒。
upstream_status
负载均衡收到的后端服务器的响应状态码。
vip_addr
虚拟IP地址。
write_response_time
负载均衡写的响应时间,单位:毫秒。
查询访问日志
访问日志配置完成后,您可以通过日志服务控制台查询日志。
- 登录传统型负载均衡CLB控制台。
在左侧导航栏,选择
。在顶部菜单栏,选择CLB实例所属地域。
在访问日志(7层)页面,在目标实例操作列单击查看日志,跳转到日志服务页面。
日志服务配置完成后,如有客户端访问过CLB实例可查看到对应的日志信息。
输入SQL语句查询特定的访问日志。
例如,输入如下SQL语句查询Top20的客户端,用于分析请求访问来源,辅助商业决策。
* | select http_user_agent, count(*) as pv group by http_user_agent order by pv desc limit 20
分析访问日志
您可以通过日志服务的仪表盘分析访问日志,仪表盘提供更丰富的数据信息。
在上述日志服务页面,在左侧导航栏选择
,然后单击仪表盘列表。
单击CLB对应访问日志的名称slb_layer7_access_center_cn,查看分析报表。
关闭访问日志
您可以通过关闭访问日志,不再收集CLB的访问日志。
CLB实例关闭日志记录后,对应的日志Project和Logstore不会被删除,该实例的历史日志信息也不会立即删除,您仍可以在SLS中管理历史日志。
- 登录传统型负载均衡CLB控制台。
在左侧导航栏,选择
。在顶部菜单栏,选择CLB实例所属地域。
在访问日志(7层)页面,找到目标实例,然后在目标实例操作列单击关闭日志记录。
在弹出的对话框中,单击确定,关闭该实例的访问日志。
相关文档
日志服务产品详细介绍可参考什么是日志服务。
使用CLB的七层负载均衡(HTTP/HTTPS监听)期间,如遇业务故障或异常,怀疑是后端服务器问题,可通过CLB使用访问日志快速定位异常后端服务器。