访问日志
在使用CLB的七层负载均衡(HTTP/HTTPS监听)期间,如果您需要通过负载均衡日志进行业务开发测试、故障处理、客户端用户行为数据分析等,您可使用CLB访问日志功能分析负载均衡日志。CLB结合阿里云日志服务提供的访问日志功能,可帮助您大幅提升日志数据分析、故障定位处理的效率。
功能简介
什么是CLB访问日志
CLB的访问日志功能收集了所有发送到CLB的请求的详细信息,包括请求时间、客户端IP地址、延迟、请求路径和服务器响应等。CLB作为公网访问入口,承载着海量的访问请求,您可以通过访问日志分析客户端用户行为、了解客户端用户的地域分布、进行问题排查等。
在开启CLB访问日志后,您可以将访问日志存储在日志服务(SLS)的日志库(Logstore)中,采集分析访问日志。您可以随时删除访问日志的配置。
CLB访问日志功能CLB无需额外付费,您仅需要支付日志服务的费用。日志服务计费可参考日志服务计费概述。
只有七层CLB支持访问日志功能。
确保HTTP header的值不包含
||
,否则有可能会造成导出的日志分割错位。
CLB访问日志优势
CLB访问日志有以下优势:
简单
将开发、运维人员从日志处理的繁琐耗时中解放出来,将更多的精力集中到业务开发和技术探索上。
海量
CLB的访问日志数据规模通常很大,处理访问日志需要考虑性能和成本问题。日志服务相较于自建开源方案有明显成本优势和性能优势。
实时
DevOps、监控、报警等场景要求日志数据的实时性。传统手段无法满足这一需求,例如将数据ETL到Hive等工具分析耗时很长,其中大量的工作花费在数据集成阶段。CLB访问日志结合阿里云日志服务强大的大数据计算能力,秒级分析处理实时产生的日志。
灵活
可按CLB实例级别开通或关闭访问日志功能,日志服务由CLB后台自动创建与对接,无需手动维护日志服务。
使用限制
仅CLB的七层负载均衡(HTTP/HTTPS监听)支持访问日志功能。
前提条件
已创建CLB实例。具体操作,请参见创建和管理CLB实例。
已创建虚拟服务器组,具体操作,请参见创建和管理CLB虚拟服务器组。在服务器组中已添加后端服务器,并在后端服务器中部署了应用服务。
您已经开通了日志服务。具体操作,请参见开通日志服务。
设置访问日志
- 登录传统型负载均衡CLB控制台。
在左侧导航栏,选择
。在顶部菜单栏,选择CLB实例所属地域。
如果您是首次使用该功能,需要进行账号授权。单击立即授权,在弹出的云资源访问授权页面单击同意授权。
说明该操作只有在首次配置时需要执行。
如果您使用的是RAM用户,需要阿里云账号进行授权。具体操作,请参见授权RAM用户(子账号)使用CLB访问日志。
在访问日志(7层)页面,找到目标CLB实例,在操作列单击设置。
在日志设置面板,设置项目Project和日志库Logstore,然后单击确定。
项目Project:项目(Project)日志服务中的资源管理单元,用于资源隔离和控制。
日志库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访问日志功能快速定位异常后端服务器。CLB结合阿里云日志服务提供的访问日志功能,可帮助您大幅提升故障定位与处理的效率。详情可参考CLB使用访问日志快速定位异常后端服务器。