本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-TroubleshootELBHealthChecks
描述
该AWSSupport-TroubleshootELBHealthChecks运行手册通过分析 AWS 弹性负载平衡(Elastic Load Balancing)的相关指标、验证网络连接以及在目标实例上执行诊断命令,帮助解决弹性负载平衡 CloudWatch (Elastic Load BalancingCloudWatch)运行状况检查问题。
本运行手册解决了以下用例:
负载均衡器或目标组的目标实例中存在运行状况不佳的实例。
虽然没有运行状况不佳的实例,但 CloudWatch 指标表示的数据点
UnHealthyHostCounts
重要
重要注意事项:
自动化的重点是对实例类型目标进行故障排除。
允许进行故障排除的最大实例数为 50。
目标实例必须由 Systems Manager 管理,才能在实例级别执行诊断命令。
该
S3BucketName参数是可选的,但某些诊断结果会直接上传到指定的 Amazon S3 存储桶,并且不会显示在自动化输出中。IPv6 不支持网络连接故障排除。
文档类型
自动化
所有者
Amazon
平台
/
所需的 IAM 权限
AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。
elasticloadbalancing:DescribeLoadBalancerselasticloadbalancing:DescribeTargetGroupselasticloadbalancing:DescribeTargetHealthelasticloadbalancing:DescribeInstanceHealthec2:DescribeInstancesec2:DescribeNetworkInterfacesec2:DescribeSecurityGroupsec2:DescribeSubnetscloudwatch:GetMetricStatisticsssm:SendCommandssm:GetCommandInvocationssm:DescribeInstanceInformations3:GetBucketLocations3:GetBucketAcls3:PutObject
策略示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:DescribeInstanceHealth", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "cloudwatch:GetMetricStatistics", "ssm:SendCommand", "ssm:GetCommandInvocation", "ssm:DescribeInstanceInformation", "s3:GetBucketLocation", "s3:GetBucketAcl", "s3:PutObject" ], "Resource": "*" } ] }
说明
按照这些步骤对自动化进行配置:
-
AWSSupport-TroubleshootELBHealthChecks在 Systems Manager 的 “文档” 下导航至。 -
选择 Execute automation(执行自动化)。
-
对于输入参数,请输入以下内容:
-
AutomationAssumeRole (可选):
-
描述:(可选)允许 SSM Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (ARN)。如果未指定角色,SSM Automation 将使用启动此运行手册的用户的权限。
-
类型:
AWS::IAM::Role::Arn
-
-
LoadBalancerOrTargetGroupName (必填):
描述:(必填)Classic Load Balancer 的名称,或者与应用程序负载均衡器或网络负载均衡器关联的目标组的名称。
类型:
String-
允许的模式:
^[a-zA-Z0-9-]+$
-
ExecutionMode (必填):
描述:(必填)控制自动化执行模式。
Complete在 Amazon EC2 实例上运行所有步骤,包括 runCommands。SkipRunCommands执行除在实例上运行命令之外的所有步骤。类型:
String-
允许的值:
[Complete, SkipRunCommands]
-
S3BucketName (可选):
描述:(可选)您账户中要上传疑难解答日志的 Amazon S3 存储桶的名称。
类型:
String-
默认值:
""
-
-
选择执行。
-
自动化启动。
-
文档将执行以下步骤:
-
getBucketPublic状态:
检查目标 Amazon S3 存储桶是否有可能授予对其对象的读取或写入公共访问权限。
-
getLoadBalancer详细信息:
标识负载均衡器类型并返回统一负载均衡器详细信息对象。
-
checkLoadBalancer类型:
检查负载均衡器是否存在。
-
获取目标:
根据不同类型的负载均衡器,查询描述了 APIs 如何返回健康和不健康目标详细信息的地图。
-
checkCloudWatch指标:
检查 CloudWatch 指标
HealthyHostCountsUnHealthyHostCounts并生成 CloudWatch 链接。 -
checkUnhealthyReasons:
检查是否存在不健康的原因并筛选目标。
-
检查连接:
检查负载均衡器与其实例之间的连接。
-
运行命令:
在实例上运行故障排除命令并上传输出(如果提供了存储桶名称)。
-
生成报告:
根据前面步骤的输出生成最终报告,并将报告上传到 Amazon S3 存储桶(如果已指定)。
-
-
完成后,请查看 “输出” 部分,了解执行的详细结果。
诊断命令
运行手册对实例执行以下诊断命令:
Linux Shell:top、free、ss、curl、iptables、tcpdump
Windows PowerShell:Get-CimInstance、Get-、Get-NetFirewallProfile、Invoke-NetFirewallRule、netstat WebRequest、netsh、pktmon
参考
Systems Manager Automation