在使用CLB的七层负载均衡(HTTP/HTTPS监听)期间,如果您遇到业务故障或异常,怀疑是后端服务器问题,您可通过CLB访问日志功能快速定位异常后端服务器。CLB结合阿里云日志服务提供的访问日志功能,可帮助用户提升故障定位与处理的效率。
使用限制
仅CLB的七层负载均衡(HTTP/HTTPS监听)支持访问日志功能。
前提条件
已创建CLB实例。具体操作,请参见创建和管理CLB实例。
已创建虚拟服务器组,具体操作,请参见创建和管理虚拟服务器组。在服务器组中已添加后端服务器,并在后端服务器中部署了应用服务。
您已经开通了日志服务。具体操作,请参见开通日志服务。
步骤一:配置访问日志
- 登录传统型负载均衡CLB控制台。
在左侧导航栏,选择。
在顶部菜单栏处,选择实例的所属地域。
如果您是首次使用该功能,需要进行账号授权。单击立即授权,然后在弹出的对话框,单击同意授权授权CLB访问日志服务。
说明该操作只有在首次配置时需要执行。
如果您使用的是RAM用户,需要阿里云主账号进行授权。具体操作,请参见授权RAM用户(子账号)使用CLB访问日志。
在访问日志(7层)页面,找到目标CLB实例,在操作列单击设置。
在日志设置页面,设置项目Project和日志库Logstore,然后单击确定。
配置
说明
项目Project
项目(Project)日志服务中的资源管理单元,用于资源隔离和控制。
选择现有 Project:在下拉列表中选择一个现有的Project。
新建 Project:在文本框中输入新建Project的名称。
说明确保Project的名称全局唯一,且Project的地域和CLB实例的地域相同。
日志库Logstore
日志库(Logstore)是日志服务中日志数据的采集、存储和查询单元。
选择现有 Logstore:在下拉列表中选择一个现有的Logstore。
新建 Logstore:在文本框中输入新建Logstore的名称。
步骤二:查看访问日志
在左侧导航栏,选择。
在顶部菜单栏处,选择实例的所属地域。
单击目标实例操作列的查看日志,跳转到日志服务页面。
日志服务配置完成后,如有客户端访问过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_en,查看分析报表。
在仪表盘中,查看top upstream响应时间页签下CLB的响应时间,可以将参数平均upstream响应时间(s)设置降序排列,查看是否有后端服务器的响应时间超过1秒。
如果有响应时间超过1秒的后端服务器,可登录该后端服务器进行问题定位处理。
多路径转发场景:定位失败转发路径
如果 CLB 实例配置了多路径转发规则(例如按 URL 路径将请求分发到不同的后端服务器组),当部分后端路径出现故障时,可通过 SLS 日志查询定位失败的转发路径。
访问日志仅支持七层监听(HTTP/HTTPS 监听),不支持四层监听(TCP/UDP 监听)。
操作步骤
确认已完成访问日志配置(参见「步骤一:配置访问日志」)。登录传统型负载均衡CLB控制台,在左侧导航栏选择,找到目标 CLB 实例,在操作列单击查看日志,进入 SLS 日志查询页面。在查询输入框中输入以下语句,筛选转发失败的请求:
status:502 or status:504查看筛选结果中的
upstream_addr字段。该字段记录了每次请求实际转发到的后端服务器 IP 地址,在多路径转发架构中可用于追踪请求的实际路由路径,定位具体的失败后端服务器。结合
upstream_status字段查看后端服务器实际返回的状态码,进一步分析失败原因。status字段记录的是 CLB 返回给客户端的 HTTP 状态码(如 502 或 504),upstream_status字段记录的是后端服务器实际返回的状态码,两者可能不同。通过
upstream_response_time字段辅助判断后端失败模式:响应时间较长(接近超时阈值)通常表示请求超时;响应时间极短(接近 0 秒)通常表示后端直接拒绝了连接。
关键日志字段说明
字段 | 说明 |
| 请求实际转发到的后端服务器 IP 地址。多路径场景下用于追踪请求的实际路由路径 |
| CLB 返回给客户端的 HTTP 状态码。502(Bad Gateway)或 504(Gateway Timeout)表示后端服务器不可达 |
| 后端服务器实际返回的 HTTP 状态码,用于分析后端的具体响应情况 |
| 后端服务器响应时间(秒)。响应时间较长表示超时,接近 0 秒表示连接被拒绝 |
排查示例
以下查询语句可聚合各后端服务器的失败请求数,帮助快速定位问题频发的后端服务器:
status:502 or status:504 | select upstream_addr, upstream_status, upstream_response_time, count(*) as error_count group by upstream_addr, upstream_status, upstream_response_time order by error_count desc在查询结果中,upstream_addr 出现频率最高的 IP 即为最常发生问题的后端服务器。结合 upstream_response_time 判断是超时(响应时间较长)还是拒绝连接(响应时间接近 0 秒),再登录对应后端服务器进行排查处理。
使用访问日志排查流量突增
如果 CLB 实例出现流量突增,可通过访问日志分析流量来源与趋势,判断是否为异常请求。操作前,请确保已完成步骤一的访问日志配置,并在 SLS 日志库中开启索引功能——未开启索引时,执行 SQL 查询会提示"未开启日志库索引"错误。
登录传统型负载均衡CLB控制台,在左侧导航栏选择。
在访问日志页面,找到目标 CLB 实例,在操作列单击查看日志,跳转到日志服务 SLS 仪表盘。
在 SLS 仪表盘中,通过时间范围选择器(默认显示最近 15 分钟)调整时间范围,切换至统计图表标签页,查看 PV 趋势和流量走势,与历史基线对比判断是否存在异常。
在 SQL 查询输入框中输入以下查询语句,分析 Top 源 IP 及请求 URI:
* | SELECT client_ip, request_uri, count(*) as cnt GROUP BY client_ip, request_uri ORDER BY cnt DESC LIMIT 20单击查询/分析,根据查询结果中源 IP 和请求 URI 的分布情况,判断流量突增来源。
常见的流量激增原因及建议措施
可能原因 | 判断依据 | 建议排查入口 |
CC 攻击 | 短时间内大量相同源 IP 发起高频请求,请求 URI 集中 | Web 应用防火墙(WAF)攻击日志 |
业务促销或运营活动 | 流量来源分散,请求 URI 集中在活动页面 | 联系业务或运营团队确认活动时间窗口 |
爬虫或机器人 | User-Agent 异常,请求频率均匀 | 查看 |
新功能发布或版本更新 | 流量增长时间节点与发布记录吻合 | 对比发布日志或变更记录 |
正常业务增长 | 流量来源及 URI 分布正常,趋势平稳上升 | 无需额外处理,可持续监控 |