本文档基于日志服务的可视化和实时查询分析能力,为您介绍负载均衡(SLB)7层访问日志查询分析的典型案例。

前提条件

已采集到SLB 7层负载均衡日志,详情请参见开通访问日志功能

背景信息

对于大部分云上架构而言,负载均衡是基础设施组件,对SLB持续的监控、探测、诊断和报告是一个强需求。阿里云SLB是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力。通过消除单点故障,为应用提供大规模、高可靠的并发Web访问支撑。

SLB访问日志功能当前支持基于HTTP/HTTPS的7层负载均衡,访问日志内容丰富,完整字段说明请参见日志字段详情。SLB典型指标如下所示:
  • PV:客户端发起HTTP、HTTPS请求的次数。
  • UV:对于相同客户端只计算一次,合计总体请求次数。
  • 请求成功率:状态码为2XX的请求次数占总PV的比例。
  • 请求报文流量:客户端请求报文长度总和。
  • 返回客户端流量:SLB返回给客户端的HTTP Body字节数总和。
  • 请求的热点分布:统计客户端地理位置,按照地理位置统计每个地域的PV情况。

常用分析

  1. 登录日志服务控制台
  2. Project列表区域,单击目标Project。
  3. 日志存储 > 日志库中,单击目标Logstore左侧的>
  4. 可视化仪表盘中,单击目标仪表盘。
    目标仪表盘包括slb-user-log-slb_layer7_operation_center_en和slb-user-log-slb_layer7_access_center_en
    • 业务概览
      • 统计一定时间范围内用户请求的来源分布情况。客户端PV热力图
      • 通过过滤器筛选某指定SLB实例的PV、UV随时间的变化趋势。过滤器操作请参见添加过滤器客户端PV/UV趋势
    • 分析流量与延迟情况
      • 统计一定时间范围内请求报文的流量和返回客户端的流量。流量统计
      • 统计一定时间范围内请求的响应时间变化趋势和upstream响应时间变化趋势。响应时间
      • 统计一定时间范围内高延迟的请求。高延迟统计
    • 分析用户请求情况
      • 统计一定时间范围内的请求方法、请求协议分布情况。PV分布统计
      • 统计一定时间范围内各种请求方法的PV趋势。请求方法PV趋势
      • 统计一定时间范围内服务运行情况。

        如果出现大量的500状态码则表示后端RealServer的应用程序发生内部错误。

        状态码
      • 统计一定时间范围内各种状态码的PV变化趋势。状态码PV趋势
    • 分析请求源
      • 统计客户端所属的网络运营商分布情况。运营商分布
      • 统计客户端所在的地理位置(国家、省份、城市)。top客户端
      • 查看用户代理信息。
        通过用户代理(http_user_agent)可得知哪些用户在访问网站或服务。例如搜索引擎会使用爬虫机器人扫描或下载网站资源,一般情况下低频爬虫访问可以帮助搜索引擎及时更新网站内容,有助于网站的推广和SEO。但如果高PV的请求都来自于爬虫,则可能影响服务性能及浪费机器资源。用户代理
    • 运营概览
      运营人员可基于SLB访问日志分析流量情况,进而辅助业务决策。
      • 查看PV的热点分布,了解重点客户的分布及低PV地域分布,从而制定最优的推广方案。客户端分布
      • 通过分析Host和URI信息获知访客最关注的内容,为网站内容建设提供有力的参考。Top host

请求调度分析

客户端流量会先被SLB处理,分发到其中一台RealServer中进行实际的业务逻辑处理。SLB可自动检测到不健康的机器并重新分配流量到其它正常服务的RealServer上,等异常机器恢复后再重新分配流量。负载均衡
为SLB实例添加一个监听,例如服务器(192.168.0.0)同时兼有跳板机职能,其性能是其它三台服务器的4倍,为该服务器设置监听权重为100,其余服务器监听权重为20。执行如下查询分析语句分析请求流量分布情况。
* | select COALESCE(client_ip, vip_addr, upstream_addr) as source, COALESCE(upstream_addr, vip_addr, client_ip) as dest, sum(request_length) as inflow group by grouping sets( (client_ip, vip_addr), (vip_addr, upstream_addr))
桑基图展示每台RealServer的负载情况,多个客户端向SLB发起请求,请求报文流量基本遵循20:20:20:100比例转发到后端RealServer中。桑基图