AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWSSupport-SetupIPMonitoringFromVPC

描述

AWSSupport-SetupIPMonitoringFromVPC 在指定的子网中创建 Amazon EC2 实例,并通过持续运行 ping、MTR、traceroute 和 tracetcp 测试来监控选定的目标 IP(IPv4 或 IPv6)。结果存储在 Amazon CloudWatch Logs 日志中,通过应用指标筛选条件在 CloudWatch 控制面板中快速显示延迟和数据包丢失统计数据。

附加信息

CloudWatch Logs 数据可用于网络故障排除和模式/趋势分析。此外,您还可以配置 CloudWatch 警报,以在数据包丢失和/或延迟达到阈值时发送 Amazon SNS 通知。提出技术支持案例时也可以使用这些数据,以便在调查网络问题时帮助快速查明问题,缩短解决问题的时间。

注意

要清除 AWSSupport-SetupIPMonitoringFromVPC 创建的资源,您可以运行 Automation 文档 AWSSupport-TerminateIPMonitoringFromVPC。有关更多信息,请参阅 AWSSupport-TerminateIPMonitoringFromVPC

文档类型

Automation

所有者

Amazon

参数

  • SubnetId

    类型:字符串

    说明:(必需)监控实例的子网 ID。注意,如果指定了私有子网,则必须确保具有 Internet 访问权限,以允许监控实例设置测试(也就是说,安装 CloudWatch Logs 代理,与 Systems Manager 和 CloudWatch 交互)。

  • TargetIPs

    类型:字符串

    说明:(必需)要监控的以逗号分隔的 IPv4 和/或 IPv6 列表。不允许使用空格。最大大小为 255 个字符。注意,如果提供的 IP 无效,则 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

    默认值:t2.micro

    说明:(可选)EC2Rescue 实例的 Amazon EC2 实例类型。建议大小:t2.micro。

  • AutomationAssumeRole

    类型:字符串

    说明:(可选)此执行的 AWS Identity and Access Management (IAM) 角色。如果未指定任何角色,则 Systems Manager Automation 使用运行此文档的用户的权限。

示例

启动 Automation

aws ssm start-automation-execution --document-name AWSSupport-SetupIPMonitoringFromVPC --parameters 'SubnetId=SUBNETID,TargetIPs="IPV41,IPV42,IPV61"'

检索执行输出

aws ssm get-automation-execution --automation-execution-id EXECUTIONID --output text --query 'AutomationExecution.Output'

所需的 IAM 权限

建议为运行 Automation 的用户附加 AmazonSSMAutomationRole IAM 托管策略。此外,用户还必须将以下策略附加到其用户账户、组或角色:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteInstanceProfile", "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Resource": [ "arn:aws:iam::AWS_account_ID:role/AWSSupport/SetupIPMonitoringFromVPC_*", "arn:aws:iam::AWS_account_ID:instance-profile/AWSSupport/SetupIPMonitoringFromVPC_*" ], "Effect": "Allow" }, { "Action": [ "iam:DetachRolePolicy", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::aws:policy/service-role/AmazonSSMManagedInstanceCore" ], "Effect": "Allow" }, { "Action": [ "cloudwatch:DeleteDashboards" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:DescribeSubnets" ], "Resource": [ "*" ], "Effect": "Allow" } ] }

文档步骤

  1. aws:executeAwsApi - 描述提供的子网。

  2. aws:branch - 评估 TargetIPs 输入。

    (IPv6) 如果 TargetIPs 包含 IPv6:

    aws:assertAwsResourceProperty - 检查提供的子网是否关联了 IPv6 池

  3. aws:executeAwsApi - 从 Parameter Store 获取最新的 Amazon Linux 2 AMI。

  4. aws:executeAwsApi - 在子网的 VPC 中为测试创建一个安全组。

    (清理)如果安全组创建失败:

    aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  5. aws:executeAwsApi - 允许测试安全组中的所有出站流量。

    (清理)如果安全组出口规则创建失败:

    aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  6. aws:executeAwsApi - 为测试 Amazon EC2 实例创建一个 IAM 角色

    (清理)如果角色创建失败:

    1. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色(如果存在)。

    2. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  7. aws:executeAwsApi - 附加 AmazonSSMManagedInstanceCore 托管策略

    (清理)如果附加策略失败:

    1. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离(如果已附加)。

    2. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    3. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  8. aws:executeAwsApi - 附加内联策略以允许设置 CloudWatch 日志组保留期和创建 CloudWatch 控制面板

    (清理)如果附加内联策略失败:

    1. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略(如果已创建)。

    2. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    4. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  9. aws:executeAwsApi - 创建 IAM 实例配置文件。

    (清理)如果实例配置文件创建失败:

    1. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件(如果存在)。

    2. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    3. aws:executeAwsApi - 从 Automation 创建的角色中删除 AmazonSSMManagedInstanceCore 托管策略。

    4. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    5. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  10. aws:executeAwsApi - 将 IAM 实例配置文件与 IAM 角色相关联。

    (清理)如果实例配置文件和角色关联失败:

    1. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件(如果已关联)。

    2. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    3. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    4. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    5. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    6. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  11. aws:sleep - 等待实例配置文件变为可用。

  12. aws:runInstances - 在指定的子网中创建测试实例,并附加先前创建的实例配置文件。

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  13. aws:branch - 评估 TargetIPs 输入。

    (IPv6) 如果 TargetIPs 包含 IPv6:

    aws:executeAwsApi - 为测试实例分配 IPv6。

  14. aws:waitForAwsResourceProperty - 等待测试实例变为托管实例。

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  15. aws:runCommand - 安装测试必备组件:

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  16. aws:runCommand - 验证提供的 IP 是不是语法正确的 IPv4 和/或 IPv6 地址:

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  17. aws:runCommand - 为提供的每个 IP 定义 MTR 测试。

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  18. aws:runCommand - 为提供的每个 IP 定义第一个 ping 测试。

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  19. aws:runCommand - 为提供的每个 IP 定义第二个 ping 测试。

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  20. aws:runCommand - 为提供的每个 IP 定义 tracepath 测试。

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  21. aws:runCommand - 为提供的每个 IP 定义第一个 traceroute 测试。

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  22. aws:runCommand - 配置 CloudWatch 日志。

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  23. aws:runCommand - 安排 cronjobs 每分钟运行一次测试。

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  24. aws:sleep - 等待测试生成一些数据。

  25. aws:runCommand - 设置所需的 CloudWatch 日志组保留期。

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  26. aws:runCommand - 设置 CloudWatch 日志组指标筛选条件。

    (清理)如果步骤失败:

    1. aws:changeInstanceState - 终止测试实例。

    2. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    3. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    4. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    5. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    6. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    7. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

  27. aws:runCommand - 创建 CloudWatch 控制面板。

    (清理)如果步骤失败:

    1. aws:executeAwsApi - 删除 CloudWatch 控制面板(如果存在)。

    2. aws:changeInstanceState - 终止测试实例。

    3. aws:executeAwsApi - 从角色中删除 IAM 实例配置文件。

    4. aws:executeAwsApi - 删除 Automation 创建的 IAM 实例配置文件。

    5. aws:executeAwsApi - 从 Automation 创建的角色中删除 CloudWatch 内联策略。

    6. aws:executeAwsApi - 将 AmazonSSMManagedInstanceCore 托管策略与 Automation 创建的角色分离。

    7. aws:executeAwsApi - 删除 Automation 创建的 IAM 角色。

    8. aws:executeAwsApi - 删除 Automation 创建的安全组(如果存在)。

输出

createCloudWatchDashboards.Output - CloudWatch 控制面板的 URL。

createManagedInstance.InstanceIds - 测试实例 ID。