负载均衡-日志字段、常见指标

负载均衡-日志字段、常见指标

1.负载均衡是做什么的?

在一开始呢,我们一般都会用一台服务器提供服务,但是随着业务量增大,这个时候就需要进行扩容以防止服务器过载出现问题。比如朱一龙的镇魂开播那段时间,正当红的居老师每次发微博,由于热度过高,导致新浪微博总是崩掉。
一般会把多台服务器组成一个集群对外提供服务,但是从用户的角度是感知不到的,他们的访问的入口均为www.weibo.com(举个例子)。但是当用户输入这个网址后,负载均衡就出马了,它会将用户的请求分发到集群中不同的服务器上。现在可以看出来,负载均衡就是用来分配负载的,从而达到资源的最佳分配方式,避免服务器过载。

2.负载均衡的分类有哪些?

  • 看到有大神说:互联网就是一系列的网络协议,这个协议就叫OSI协议(一系列协议),按照功能不同,分工不同,人为的分层七层。太幽默了!但是确实是认为进行划分的,有四层、五层还有七层。负载均衡-日志字段、常见指标_第1张图片

参考这篇博客,觉得讲的很有意思:https://blog.csdn.net/taotongning/article/details/81352985#commentsedit

  • 负载均衡也有几个类别:
    负载均衡-日志字段、常见指标_第2张图片
    – 其中四层和七层是最常用的。
    说简单点,四层均衡负载和七层均衡负载就是依据四层的信息或者七层的信息来决定怎么进行负载分配。
    四层均衡负载:根据传输层的IP地址和端口号来决定哪些流量要进行负载均衡,对需要处理的流量进行网络地址转换,然后发送至后端的服务器,并且记录下这些流量是被哪一台服务器处理的。以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的 SYN 请求时,即通过上述方式选择一个最佳的服务器, 并对报文中的目标IP地址进行修改(改为后端服务器 IP),直接转发给该服务器。
    七层均衡负载:在四层均衡负载的基础上,又多出了很多应用层的信息,如URL、host、语言、HTTP协议、Cookie信息等。可以根据这些信息来进行负载分配,更加智能化,选择性多。例如访问一个网站的用户流量,可以通过七层的方式,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术;将对文字类的请求可以转发到特定的文字服务器并可以使用压缩技术,合理进行分配。但是七层比四层多一个处理环节(客户端的请求先到达负载均衡,负载均衡会与后端服务器简历TCP链接,不是直接转发报文到后端服务器),所以性能上没有四层号好


3.负载均衡的日志有什么用?

这里主要体验了腾讯云和阿里云的负载均衡云产品,日志类型则是负载均衡的访问日志。
负载均衡的访问日志主要包括发送到负载均衡的请求的详细信息(请求的时间、返回状态码,IP地址等)。

  • 对于业务同学来说,负载均衡就像是一个入口,汇集了全球各地不同用户的访问请求,通过对其日志的分析可掌握用户详细,如地域分布、客户端类型分布、核心用户等。
  • 对于运维同学来说,如根据时间判断访问延迟较大的地域是否出现异常,通过日志找出真实的IP地址,通过日志判断异常是负载均衡出现了问题还是后台服务器出现了问题,等等。

4.负载均衡的日志字段(阿里)

注:阿里云展示了该部分字段,用户可自定义对负载均衡的日志进行SQL分析,自定义分析指标
腾讯云则直接基于后台日志(用户看不到)为用户设置好了常见的指标分析。
负载均衡-日志字段、常见指标_第3张图片

5.常见日志分析指标
负载均衡-日志字段、常见指标_第4张图片负载均衡-日志字段、常见指标_第5张图片

6.示例

除了以上一些常规的监控分析,如看状态码分布,看健康度,看响应时间等,还有一些特殊情况,如找出真实请求的来源。


– 背景:一个客户端的请求从最初的IP到SLB,若不经过代理,client_ip字段就是原始客户端IP。若请求经过proxy多次转发,client_ip就不能真实反应请求来源。

– 字段含义:
http_x_real_ip:取自HTTP自定义头X-Real-IP字段
http_x_forwarded_for:取自HTTP扩展头X-Forwarded-For字段。
负载均衡-日志字段、常见指标_第6张图片

负载均衡-日志字段、常见指标_第7张图片
假设客户端在client_0发出请求,到达服务端之前依次经过了三个代理proxy_1、proxy_2、proxy_3,其中proxy_3直连负载均衡器。
proxy_3会在http_x_forwarded_for上追加proxy_2的ip,表示是在替proxy_2转发请求。
http_x_forwarded_for上便形成一个用逗号连接的字符串"client_0_ip,proxy_1_ip,proxy_2_ip",字符串中的第一个即是原客户端ip。

分析:
负载均衡-日志字段、常见指标_第8张图片
利用SQL进行处理:

select 
(case when http_x_real_ip = '-' then 
 	(case when http_x_forwarded_for = '-' 
     		then client_ip 
     	  when split_part(http_x_forwarded_for,',',1) = '-'
            then client_ip 
          else split_part(http_x_forwarded_for,',',1) end) 
     else http_x_real_ip end ) as real_client_ip

你可能感兴趣的:(云产品,负载均衡)