

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# `AWSSupport-TroubleshootELBHealthChecks`
<a name="automation-aws-troubleshootelbhealthchecks"></a>

 **描述** 

该**AWSSupport-TroubleshootELBHealthChecks**运行手册通过分析 AWS 弹性负载平衡（Elastic Load Balancing）的相关指标、验证网络连接以及在目标实例上执行诊断命令，帮助解决弹性负载平衡 CloudWatch （Elastic Load BalancingCloudWatch）运行状况检查问题。

本运行手册解决了以下用例：
+ 负载均衡器或目标组的目标实例中存在运行状况不佳的实例。
+ 虽然没有运行状况不佳的实例，但 CloudWatch 指标表示的数据点 `UnHealthyHostCounts`

**重要**  
重要注意事项：  
自动化的重点是对实例类型目标进行故障排除。
允许进行故障排除的最大实例数为 50。
目标实例必须由 Systems Manager 管理，才能在实例级别执行诊断命令。
该`S3BucketName`参数是可选的，但某些诊断结果会直接上传到指定的 Amazon S3 存储桶，并且不会显示在自动化输出中。
IPv6 不支持网络连接故障排除。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootELBHealthChecks) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

/

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `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`

策略示例：

```
{
    "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": "*"
        }
    ]
}
```

 **说明** 

按照这些步骤对自动化进行配置：

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootELBHealthChecks/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootELBHealthChecks/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 **Execute automation**（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **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`
     +  默认值：`""`

1. 选择**执行**。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **getBucketPublic状态**：

     检查目标 Amazon S3 存储桶是否有可能授予对其对象的读取或写入公共访问权限。
   + **getLoadBalancer详细信息：**

     标识负载均衡器类型并返回统一负载均衡器详细信息对象。
   + **checkLoadBalancer类型**：

     检查负载均衡器是否存在。
   + **获取目标：**

     根据不同类型的负载均衡器，查询描述了 APIs 如何返回健康和不健康目标详细信息的地图。
   + **checkCloudWatch指标**：

     检查 CloudWatch 指标`HealthyHostCounts``UnHealthyHostCounts`并生成 CloudWatch 链接。
   + **checkUnhealthyReasons**:

     检查是否存在不健康的原因并筛选目标。
   + **检查连接**：

     检查负载均衡器与其实例之间的连接。
   + **运行命令**：

     在实例上运行故障排除命令并上传输出（如果提供了存储桶名称）。
   + **生成报告**：

     根据前面步骤的输出生成最终报告，并将报告上传到 Amazon S3 存储桶（如果已指定）。

1. 完成后，请查看 “**输出**” 部分，了解执行的详细结果。

 **诊断命令** 

运行手册对实例执行以下诊断命令：
+ **Linux Shell：**top、free、ss、curl、iptables、tcpdump
+ **Windows PowerShell：**Get-CimInstance、Get-、Get-NetFirewallProfile、Invoke-NetFirewallRule、netstat WebRequest、netsh、pktmon

**参考**

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootELBHealthChecks/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support 自动化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)