本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-SetupIPMonitoringFromVPC
描述
AWSSupport-SetupIPMonitoringFromVPC在指定子网中创建运行亚马逊 Linux 2023 的临时亚马逊弹性计算云 (Amazon EC2) 实例。运行手册持续对选定的目标 IP(IPv4 或 IPv6)运行 ping、MTR、traceroute 和 tracetcp 测试。它将结果存储在 Amazon CloudWatch 日志组中,并应用指标筛选器在 CloudWatch控制面板中快速可视化延迟和丢包统计数据。
额外费用
这本操作手册会产生额外 AWS 费用。它使用在您的账户中配置 Amazon EC2 实例、 CloudWatch 日志组和 CloudWatch 控制面板 AWS CloudFormation。测试实例会持续运行,直到您删除 CloudFormation 堆栈。如果设置RetainDashboardAndLogsOnDeletion为True(默认),则删除堆栈后, CloudWatch 仪表板和日志组将保留。在您手动移除这些资源之前,这些资源会继续产生费用。有关定价详情,请参阅 Amazon EC2 定价
附加信息
您可以使用 Amazon CloudWatch Logs 中的测试结果进行网络故障排除以及模式和趋势分析。此外,当数据包丢失或延迟达到阈值时,您可以使用 Amazon 简单通知服务通知配置 CloudWatch 警报。您还可以在向开启案例时使用这些结果 AWS 支持,以帮助快速隔离问题,并在调查网络问题时缩短解决时间。
文档类型
自动化
所有者
Amazon
平台
Linux、macOS、Windows
参数
-
AutomationAssumeRole
类型:字符串
描述:(可选)允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称(ARN)。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。
-
CloudWatchLogGroupNamePrefix
类型:字符串
默认:
/AWSSupport-SetupIPMonitoringFromVPC描述:(可选)用于为测试结果创建的每个 CloudWatch 日志组的前缀。
-
CloudWatchLogGroupRetentionInDays
类型:字符串
有效值:1 | 3 | 5 | 7 | 14 | 30 | 60 | 90 | 120 | 150 | 180 | 365 | 400 | 545 | 731 | 1827 | 3653
默认:7
描述:(可选)要保留网络监控结果的天数。
-
InstanceType
类型:字符串
有效值:t2.micro | t2.small | t2.medium | t2.large | t3.micro | t3.small | t3.medium | t3.large | t4g.micro | t4g.small | t4g.medium | t4g.large
默认:t3.micro
描述:(可选)监控实例的 Amazon EC2 实例类型。推荐尺寸:t3.micro。
-
SubnetId
类型:字符串
描述:(必需)监控实例的子网 ID。请注意,如果您指定私有子网,则必须确保可以访问 Internet,以允许监控器实例设置测试(例如,安装 CloudWatch 代理、与 AWS Systems Manager 和交互 CloudWatch)。
-
TargetIPs
类型:字符串
描述:(必填)要监控的 IPv4 或 IPv6 地址 Comma-separated 列表。不允许使用空格。最大大小为 255 个字符。请注意,如果您提供的 IP 无效,则自动化将失败并回滚测试设置。
-
TestInstanceSecurityGroupId
类型:字符串
描述:(可选)测试实例的安全组 ID。如果未指定,则自动化会在创建实例期间创建一个实例。确保安全组允许对监控 IP 进行出站访问。
-
TestInstanceProfileName
类型:字符串
描述:(可选)测试实例的现有 AWS Identity and Access Management 实例配置文件的名称。如果未指定,则自动化会在创建实例期间创建一个实例。该角色必须具有以下权限:
logs:CreateLogStreamlogs:DescribeLogGroups、logs:DescribeLogStreams、logs:PutLogEvents和 AWS 托管策略AmazonSSMManagedInstanceCore。 -
TestInterval
类型:字符串
描述:(可选)测试间隔之间的分钟数。默认值为
1分钟,最大值为10分钟。 -
RetainDashboardAndLogsOnDeletion
类型:字符串
描述:(可选)指定
False在删除 CloudFormation 堆栈时删除 CloudWatch仪表板和日志组。默认值为True。默认情况下,运行手册会保留仪表板和日志。当不再需要它们时,必须手动将其删除。
所需的 IAM 权限
AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。
警告
建议传递TestInstanceProfileName参数或确保设置安全护栏,以防止滥用可变的 IAM 权限。
建议运行自动化的用户附加 AmazonSSMAutomationRoleIAM 托管策略。此外,用户还必须将以下策略附加到其用户账户、组或角色:
如果提供了TestInstanceProfileName参数,则不需要以下 IAM 权限即可执行运行手册:
-
我是:CreateRole
-
我是:CreateInstanceProfile
-
我是:DetachRolePolicy
-
我是:AttachRolePolicy
-
我是:AddRoleToInstanceProfile
-
我是:RemoveRoleFromInstanceProfile
-
我是:DeleteRole
-
我是:DeleteRolePolicy
-
我是:DeleteInstanceProfile
文档步骤
-
aws:executeAwsApi-描述提供的子网以获取 VPC ID 和 IPv6 CIDR 区块关联状态。 -
aws:executeScript-验证提供的目标 IP 在语法上是否正确的 IPv4 and/or IPv6 地址,获取所选实例类型的架构,如果有任何目标 IP 是 IPv6,则验证子网是否具有 IPv6 池关联。 -
aws:createStack-创建一个 CloudFormation 堆栈,用于预置测试 Amazon EC2 实例、IAM 实例配置文件(如果未提供)、安全组(如果未提供)、 CloudWatch 日志组和 CloudWatch 控制面板。(清理)如果步骤失败:
aws:executeScript-描述 CloudFormation 堆栈事件以确定失败原因。aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。 -
aws:waitForAwsResourceProperty-等待 CloudFormation 堆栈完成创建。(清理)如果步骤失败:
aws:executeScript-描述 CloudFormation 堆栈事件以确定失败原因。aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。 -
aws:executeScript-描述用于获取测试实例 ID、安全组 ID、IAM 角色、实例配置文件和控制面板名称的 CloudFormation 堆栈资源。(清理)如果步骤失败:
aws:executeScript-描述 CloudFormation 堆栈事件以确定失败原因。aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。 -
aws:waitForAwsResourceProperty- 等待测试实例变为托管实例。(清理)如果步骤失败:
aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。 -
aws:runCommand-在测试实例traceroute上安装 CloudWatch 代理mtr、和。(清理)如果步骤失败:
aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。 -
aws:runCommand-为提供的每个 IP 定义网络测试脚本(MTR、ping、tracepath 和 traceroute)。(清理)如果步骤失败:
aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。 -
aws:runCommand-使用每 TestInterval 分钟运行一次 systemd 计时器启动网络测试并安排后续执行。(清理)如果步骤失败:
aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。 -
aws:runCommand-将 CloudWatch 代理配置为将测试结果从推送/home/ec2-user/logs/到 CloudWatch 日志。(清理)如果步骤失败:
aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。 -
aws:runCommand-为中的测试结果配置日志轮换/home/ec2-user/logs/。 -
aws:executeScript-为 CloudFormation 堆栈创建的所有 CloudWatch 日志组设置保留策略。 -
aws:executeScript-为 ping 延迟和 ping 数据包丢失创建 CloudWatch 日志组指标过滤器。(清理)如果步骤失败:
aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。 -
aws:executeScript-更新 CloudWatch 仪表板以包含用于显示 ping 延迟和 ping 数据包丢失统计信息的控件。(清理)如果步骤失败:
aws:executeAwsApi-删除 CloudWatch 仪表板(如果存在)。aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。 -
aws:branch-评估 SleepTime 参数。如果设置为0,则自动化将在不删除堆栈的情况下结束。 -
aws:sleep-等待指定的 SleepTime 持续时间后再删除 CloudFormation 堆栈。 -
aws:deleteStack-删除 CloudFormation 堆栈。根据 RetainDashboardAndLogsOnDeletion 参数, CloudWatch 控制面板和日志组要么保留,要么删除。(清理)如果堆栈删除失败:
aws:executeScript-描述 CloudFormation 堆栈事件以确定删除失败的原因。
输出
更新 CloudWatchDashboard.StackUrl - CloudFormation 堆栈的网址。
更新 CloudWatchDashboard.DashboardUrl - CloudWatch 仪表板的网址。
更新 CloudWatchDashboard.DashboardName - CloudWatch 仪表板的名称。
更新 CloudWatchDashboard.LogGroups -创建的 CloudWatch 日志组列表。
描述 StackResources.HelperInstanceId -测试实例 ID。
描述 StackResources.StackName - CloudFormation 堆栈名称。