解放生产力-阿里云7层负载均衡智能分析与监控

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 对于7层负载均衡访问日志,阿里云SLB专门为用户开放了实时访问日志的能力,通过控制台开通后,实时的访问日志会自动推送到用户自己的SLS中,延迟只有几秒钟,并且SLB推送完全免费且不需要用户自己提供机器接受日志。推送到SLS中的日志可以借助于SLS强大的分析、可视化、监控能力,发挥访问日志的价值。

前言

Load balancing refers to efficiently distributing incoming network traffic across a group of backend servers, also known as a _server farm_ or _server pool_.


负载均衡作为后端服务的统一入口,所有的流量都会通过负载均衡分发到不同的服务器。1990年第一台思科Goes Public的上线,经过几十年的发展, 负载均衡几乎已成为每个IT系统必备的基础设施。


负载均衡具有非常多的功能优势,例如快速恢复、可扩展、多冗余、灵活性、高效率、全局负载均衡等特点,因此目前几乎很少有系统直接裸服务器暴露到公网,都是通过一组负载均衡设备作为统一入口。


image.png

7层负载均衡

image.png

负载均衡从设备特点上分为硬件负载均衡、软件负载均衡、DNS负载均衡等,从分发协议上一般分为4层负载均衡和7层负载均衡。目前绝大多数互联网公司都采用7层负载均衡,主要因为7层负载均衡工作在应用层,可以支持更多更加灵活的一些特性。例如:

  • 会话保持:让相同的session ID路由到同一台后端机器,保证每个用户的会话只在一台机器上处理。
  • 基于内容的转发:能够根据HTTP协议内容进行转发,例如Host、URL甚至是PostBody等。
  • 重写请求:能够对用户的请求进行动态修改,非常适用于新老系统的兼容性改造。
  • 加密:在负载均衡上配置SSL,提供统一的证书管理,每个服务器无需单独维护证书。
  • 健康检查增强:可基于业务规则进行健康检查,而不仅仅是判断端口连通性,使健康检查更加精确。
  • 日志监控:全量7层访问日志,能够获取每个请求的结果、耗时、请求大小等信息,能够基于访问日志监控到每个服务的质量。

负载均衡日志分析痛点

原始的访问日志记录了网站的每个访问请求,每个请求包括用户地址、Host、URL、状态码、耗时、请求大小等多个维度的信息,基于访问日志可以统计出不同维度下的访问qps、成功率、延迟等黄金指标,以此实现可以针对各种维度的网站质量监控。但构建一套完整的访问日志分析系统还是非常困难,这其中包括了很多过程和工作:采集、存储、分析、可视化、告警等。在实施过程中最为复杂的点在于:

  • 采集问题:如何保证日志采集的可靠性、性能消耗、延时问题;
  • 分析:在保证分析灵活性的同时能够保持快速的分析、查询速度以及较低的实施成本;
  • 自动化:尤其在业务规模比较大的情况下,如何智能的监控和分析各个服务的状态是一个迫切需要的功能。

image.png

阿里云负载均衡7层日志中心

阿里云负载均衡作为纯服务化的负载均衡产品,几乎作为使用阿里云提供服务的企业必备产品,用户只需要控制台或调用API即可完成创建并能为阿里云所有服务器提供4层/7层的负载均衡能力。


对于7层负载均衡访问日志,阿里云SLB专门为用户开放了实时访问日志的能力,通过控制台开通后,实时的访问日志会自动推送到用户自己的SLS中,延迟只有几秒钟,并且SLB推送完全免费且不需要用户自己提供机器接受日志。推送到SLS中的日志可以借助于SLS强大的分析、可视化、监控能力,发挥访问日志的价值。

目前阿里云负载均衡SLB和SLS联合推出了SLB访问日志中心的解决方案,用户只需要几秒钟就可以构建出一套完整的访问日志解决方案,包括日志的实时采集、分析、预聚和、可视化、机器学习异常检测等功能全套配备。

方案架构

image.png

为了达到高性能、低成本、快速、智能等要求,SLB日志中心方案包括以下几个部分:

  1. 原始访问日志存储:当SLB产生访问请求后,会实时将请求的访问日志推送到用户自身的Logstore中,整个过程的延迟一般在3-5秒即可完成,SLS的Logstore具备高可靠、实时索引、自动扩容等功能,保证日志的可靠性和可扩展性。
  2. 预聚和:由于原始访问日志量巨大,基于原始日志计算指标性能开销较大,因此SLS专门推出了基于访问日志的指标预聚和能力,能够将上百万甚至上亿的访问日志实时聚合成指标类型的时序数据,数据量会降低1-2个数量级,后续的分析与监控可直接基于时序数据进行,大大提高效率。
  3. 智能巡检:对于预聚和后的Metrics(指标数据),SLS提供了机器学习的自动巡检功能,帮助用户自动去检测各个SLB的各个维度的指标异常,将异常信息实时展现在时序的图表中,结合实时告警能力进行自动的告警配置。此外后续还会支持异常打标,基于用户反馈的信息进行更加精确的检测。

通过以上3层数据链路,实现了从原始访问日志到预聚和的指标最后再到机器学习的异常事件整个数据的流转,对于用户来说,告警和监控只需要基于指标和智能巡检的结果进行,而涉及到具体服务的问题分析可以再回到原始的访问日志并基于SLS提供的各种SQL统计方式进行自定义的排查和分析。

实时预聚和

image.png

SLB的访问日志数量和用户访问成正比,在原始访问日志上实时计算指标的开销较大,一般不适合长时间的指标分析,并且原始日志存储的成本较高,一般不会将日志存储较长时间,但我们还是希望指标数据能够尽可能长的存储,这样可以在分析的时候查看更长时间的数据。为此SLS专门为SLB访问日志定制了一套全托管指标实时预聚合的功能,能够实时将SLB的访问日志聚合成指标并存储在SLS的时序库中,这样所有的监控数据查询工作都可以基于聚合后的时序数据进行,大大提升监控数据的查询效率。

丰富可视化

SLB访问日志分析的一个重要工作是可视化系统的搭建,我们需要针对不同场景创建不同的报表以便满足各个方面的需求,例如:

  1. 整体大盘:包括网站当前的访问UV/PV、整体延迟、成功率等,这个是老板们和SRE需要看的数据,需要保证数据时效性和刷新的速度
  2. 监控大盘:能够把监控需要关注的各种数据(延迟(平均、P99/P9999等)、流量、成功率、错误码、TOP类统计)等显示在一张报表上,并且能够支持各种维度的过滤,方便定位到问题的实例。
  3. 访问大盘:显示和用户相关的访问信息,例如PV/UV、访问的地域分布、设备分布等,一般情况技术Leader会关注,另外部分的运营同学可能也会需要这部分数据。
  4. 异常大盘:显示异常巡检的指标信息,能够把异常的指标显示在报表上,方便查看。
  5. 后端流量分析:快速分析后端的流量、QPS、延迟、错误率等分布信息,能够快速查找到“调皮”的机器。

image.png

智能巡检

在时序监控场景中,用户往往先确定监控对象,并通过其历史数据,结合业务经验,得到不同组的阈值参数,通过各种手段(同比、环比、连续触发几次等)进行监控,往往一个监控对象要设计4~5条监控规则,并配置不同的参数。还有更大的问题,各个参数阈值无法快速的复用到不同的类似观测对象中,当观测对象的规模达到数千,甚至上万后,传统的配置效率底下,无法满足在大规则时序指标数据下的监控需求。流式算法具有天然的优势可以解决上面的问题,用户只需要发起一个机器学习服务,模型自动拉取数据,实时训练,实时反馈(通俗地说:“来一个点,学习一个点,检测一个点”),在极大的降低成本的同时,实现对每一条线的单独建模,单独分析,单独模型参数保存,实现时序异常检测的“千线千面”。

image.png

总结

SLB demo.mp4 (53.06MB)

阿里云负载均衡7层日志中心提供了SLB7层访问日志分析、秒级监控指标分析、实时告警等功能,并提供基于AIOps的自动异常巡检功能。基于这些功能我们可以快速构建出一套企业级的监控系统,能够以非常小的工作量实现公司所有访问入口的统一监控。

大家在使用SLB访问日志或SLS过程中,如有任何问题, 可提工单, 或在用户群中反馈(见下放钉钉二维码), 也欢迎关注我们的微信公众号, 会推送实用的使用技巧和最佳实践哦~


image.png

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
4月前
|
域名解析 移动开发 负载均衡
阿里云DNS常见问题之DNS负载均衡调加权模式失败如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
4月前
|
域名解析 负载均衡 监控
阿里云DNS常见问题之使用DNS实现负载均衡失败如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
1月前
|
应用服务中间件 nginx
阿里云——SLB踩坑记录
阿里云——SLB踩坑记录
71 1
阿里云——SLB踩坑记录
|
23天前
|
负载均衡 算法 调度
负载均衡原理分析与源码解读
负载均衡原理分析与源码解读
|
26天前
|
消息中间件 负载均衡 Kafka
Kafka 实现负载均衡与故障转移:深入分析 Kafka 的架构特点与实践
【8月更文挑战第24天】Apache Kafka是一款专为实时数据处理和流传输设计的高性能消息系统。其核心设计注重高吞吐量、低延迟与可扩展性,并具备出色的容错能力。Kafka采用分布式日志概念,通过数据分区及副本机制确保数据可靠性和持久性。系统包含Producer(消息生产者)、Consumer(消息消费者)和Broker(消息服务器)三大组件。Kafka利用独特的分区机制实现负载均衡,每个Topic可以被划分为多个分区,每个分区可以被复制到多个Broker上,确保数据的高可用性和可靠性。
39 2
|
30天前
|
负载均衡 Cloud Native 容灾
阿里云负载均衡SLB价格_ALB、NLB和CLB区别_负载均衡详细介绍
阿里云负载均衡SLB提供ALB、NLB和CLB三种类型,分别适用于7层和4层的不同场景。ALB与NLB仅支持按量付费,而CLB则额外提供包年包月选项。ALB强调7层应用处理与高级路由,NLB聚焦4层的大流量处理与SSL卸载。两者均支持自动弹性伸缩,确保高可用性和性能。CLB作为传统负载均衡,适用于特定需求。每种类型依据实例规格与使用量收费,其中公网实例还需支付网络费用。通过这些服务,用户可以实现流量分发、故障转移及提升应用系统的稳定性和扩展性。
|
1月前
|
负载均衡 Cloud Native 容灾
阿里云负载均衡SLB价格_ALB、NLB和CLB区别_负载均衡功能和使用场景说明
阿里云负载均衡SLB分为应用型ALB、网络型NLB及传统型CLB。ALB与NLB仅支持按量付费,而CLB则提供包年包月和按量付费选项。ALB专长于7层HTTP/HTTPS/QUIC协议处理,支持丰富的内容路由功能;NLB聚焦于4层TCP/UDP/TCPSSL协议,擅长处理大规模并发连接。两者均基于NFV技术,支持自动弹性伸缩,并与云原生环境如ACK/SAE/K8S深度集成。此外,SLB提供多协议支持、多级容灾、安全防护等功能,确保服务的高可用性和安全性。具体收费方面,ALB的基础版实例费为0.049元/小时起,NLB实例费限时免费,两者还需支付性能容量单位LCU费及公网网络费(仅公网实例)
|
2月前
|
负载均衡 监控 Kubernetes
Service Mesh 是一种用于处理服务间通信的基础设施层,它通常与微服务架构一起使用,以提供诸如服务发现、负载均衡、熔断、监控、追踪和安全性等功能。
Service Mesh 是一种用于处理服务间通信的基础设施层,它通常与微服务架构一起使用,以提供诸如服务发现、负载均衡、熔断、监控、追踪和安全性等功能。
|
2月前
|
域名解析 负载均衡 网络协议
|
3月前
|
Kubernetes Cloud Native 开发者
阿里云网络发布 alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!
**阿里云发布开源版ALB控制器v1.2.0,对齐商业版ALB Ingress Controller v2.10.0。新版本增强了功能特性,提升了用户体验,并提供了最佳实践。功能更新包括自定义标签、QUIC协议支持、转发规则和安全策略等。此外,还引入了ReadinessGate实现滚动升级时的平滑上线和Prestop钩子确保平滑下线。用户可从GitHub获取开源代码,通过Docker Hub拉取镜像,开始使用alibaba-load-balancer-controller v1.2.0。**
212 3
阿里云网络发布 alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!