2015-11-11 52 views
0

我为它创建负载均衡器和健康检查,之后我想验证负载均衡器的健康检查已正确设置。在boto中获取负载均衡器健康检查

我似乎无法找到一种方法来从负载平衡器对象中检索负载平衡器的健康检查(表示健康检查定义)

此外,我可能想要为不同的负载平衡器使用现有的运行状况检查。

有什么想法?

回答

2

ELB健康检查记录在CloudWatch中,因此您需要从CloudWatch获取此数据,而不是ELB。

以下是CloudWatch and Boto的指南。

您可以使用get_metric_statistics API调用来获取此数据。你可以看到如何使用它here

编辑:

从下面您的意见:你已经创建了一个端点上的EC2节点和你使用ELB运行状况检查,考验你的终点和你想检索这些健康检查的状态。

您无法从“ELB对象”获取此信息。根据您要检索的特定数据,你有两个选择:

  1. 如果你只是想健康的主机数,您可以通过查询您的ELB正在与各AZ的HealthyHostCount指标做到这一点。 Read more about this metric.
  2. 如果你想要每个特定实例的状态,你需要提交一个ec2:DescribeInstanceHealth API调用。谢天谢地,这是建立到boto

在附注中,您应该尝试在问题中提供更多的细节,以便更快地获得正确答案。希望这是你需要:)的信息

+0

嗨,这不正是我的意思是: 我似乎无法找到一种方法来从负载均衡器对象中检索负载均衡器的健康检查**(表示健康检查定义)**。 –

+0

“健康检查定义”不明确,至少就我所知,它不是AWS使用的术语。你可以更具体和详细地了解你想要检索的确切信息吗? :) – mickzer

+0

我使用5秒间隔为“/ deployments/status”创建健康检查。我想回到端点:“/ deployments/status”interval:5 –

0

我觉得你是以后可以这样

#!/usr/bin/env python 

import boto.ec2 
import boto.vpc 
import boto.ec2.elb 

REGION="us-east-1" 

# Connect 
conn = boto.ec2.elb.connect_to_region(REGION) 

# Get all ELB data for a single ELB to simplify code here 
ELBset= conn.get_all_load_balancers(load_balancer_names=[put ELB name here]) 
for ELB in ELBset: 
    print ELB.health_check.target 
    print ELB.health_check.healthy_threshold 
    print 
    print dir(ELB.health_check) 
+0

欢迎来到Stack Overflow!虽然这段代码可能有助于解决问题,但它并没有解释_why_和/或_how_它是如何回答这个问题的。提供这种附加背景将显着提高其长期教育价值。请[编辑]您的答案以添加解释,包括适用的限制和假设。 –