繁体   English   中英

如何在CloudWatch中使用ELB的HealthyHostCount进行监控?

[英]How do I use ELB's HealthyHostCount for monitoring in CloudWatch?

我们有三个EC2实例 - 在eu-west-1区域的每个可用区(AZ)中有一个。 它们使用ELB进行负载平衡。 我们想要使用CloudWatch监控在负载均衡器上注册的实例数量。 问题是:我真的不了解HealthyHostCount指标。

对于部署,我们希望能够在不通知的情况下取消注册单个实例(将其从LB中取出)。 因此警报将是:通知负载均衡器后面是否只有1个健康实例持续5分钟。

据我所知, HealthyHostCount (HHC)是在给定的ELB中注册的健康实例的数量,在所有AZ上平均。 如果一切正常,HHC应该是1(无论在什么时间段内),因为每个AZ中有1个实例。

几天前,有人在没有重新注册实例的情况下部署,因此只有一个实例是平衡的。 当我们注意到这一点时,我们创建了一个警报,当5分钟后平均HHC低于0.6时,通知我们。 (如果在ELB中只注册了1个实例,则HHC在任何时间段内应平均为0.33。)但是,警报从未更改为“ALARM”状态。

当我在CloudWatch中检查HHC时,HHC是没有意义的数字(5分钟间隔的总和为现在我记得的全部)。

这对我来说都是一团糟。 每当我认为我理解该指标时,CloudWatch图表对我来说都是胡言乱语。

有人可以解释如何只注册一个实例时如何使用HHC来发出警报? 平均HHC是走的路还是我应该使用其他指标?

每次执行运行状况检查时, HealthyHostCount指标都会记录一个数据值,其中包含每个可用区的可用主机数。 您的ELB运行状况检查具有Interval参数,该参数定义每分钟执行的运行状况检查数。

如果您正在观看每个AZ指标,健康检查Interval为10秒,并且该AZ中有2个健康主机,您将看到每分钟6个数据点( 60/10 ),其值为2.平均值,最大值和min将是2,但总和将是6*2=12

如果您有3个AZ,每个主机有2个主机,同样Interval = 10,但是您正在查看Per-LB指标,您将看到每分钟3*6=18数据点,每个数据点的值为2。 average,max和min将为2,但总和将为18*2=36

我建议你设置一个可以分为60秒(5,6,10,15,20,30或60秒)的间隔值。

在您的情况下,如果间隔为30秒,并且每个AZ有3个AZ和1个服务器:每分钟每个AZ应该有2个数据点,因此设置每个LB的警报, Period为1分钟,对于Sum of HealthyHostCount当值是LowerOrEqual触发大于2( 2 data values * 1 Healthy AZ * 1 healthy server = 2 ,不健康AZS的其它4个数据值应该为0,从而它们将不影响总和)。

更新:

事实证明 ,执行的运行状况检查的数量还取决于形成ELB的内部实例的数量(通常每个AZ一个),因此如果您遇到流量峰值或足够的负载以使单个elb-internal-instance饱和,ELB内部服务器的数量将增加,您将意外地拥有更多数据点。 仅当您有大量流量时,这可能会影响sum值。 我没有看到这个问题,在3个AZ中分配了6k RPM的峰值负载。 如果这是你的情况,那么使用average是一个更安全的赌注,但我建议你使用LowerThan 0.65作为你的门槛。

链接还让我想知道Cross-Zone Load Balancing功能如何影响数据点的数量......

这是CloudWatch Web控制台不会公开云监视可以执行的所有操作的区域。 正如文档所解释的, HealthyHostCount是每个可用区域度量标准。 控制台允许您按可用区域(但跨所有负载均衡器)或负载均衡器(但跨所有区域)拥有HealthHostCount,但不能双向切片。

如果您只有一个负载均衡器,最简单的方法是在每个区域度量标准上设置一个警报。 如果您有多个可用区域,那么您应该能够使用api在可用区域和负载均衡器之间创建警报切片(同样,每个负载均衡器有一个警报),但是就我而言,您无法从Web UI执行此操作知道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM