View a markdown version of this page

AWSSupport-SetupIPMonitoringFromVPC - AWS Systems Manager 自动化运行手册参考

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

AWSSupport-SetupIPMonitoringFromVPC

描述

AWSSupport-SetupIPMonitoringFromVPC在指定子网中创建亚马逊弹性计算云 (Amazon EC2) 实例,并通过持续运行 ping、MTR、traceroute 和 tracetcp 测试来监控选定的 IPs 目标IPv4 ( IPv6或)。结果存储在 Amazon CloudWatch Logs 日志中,并应用指标筛选器在 CloudWatch 控制面板中快速可视化延迟和丢包统计数据。

附加信息

CloudWatch 日志数据可用于网络故障排除和pattern/trends. Additionally, you can configure CloudWatch alarms with Amazon SNS notifications when packet loss and/or延迟达到阈值的分析。这些数据也可以在开案时使用 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

    描述:(可选) EC2救援实例的 EC2 实例类型。推荐尺寸:t3.micro。

  • SubnetId

    类型:字符串

    描述:(必需)监控实例的子网 ID。请注意,如果您指定私有子网,则必须确保可以访问 Internet 才能允许监控实例设置测试(也就是说,安装 CloudWatch 日志代理,与 Systems Manager 交互和 CloudWatch)。

  • 目标 IPs

    类型:字符串

    描述:(必填)用逗号分隔的 IPv4s 和/或 IPv6s 要监视的列表。不允许使用空格。最大大小为 255 个字符。注意,如果提供的 IP 无效,则 Automation 将失败并回滚测试设置。

  • TestInstanceSecurityGroupId

    类型:字符串

    描述:(可选)测试实例的安全组 ID。如果未指定,则自动化会在创建实例期间创建一个实例。确保安全组允许对监控进行出站访问 IPs。

  • TestInstanceProfileName

    类型:字符串

    描述:(可选)测试实例的现有 IAM 实例配置文件的名称。如果未指定,则自动化会在创建实例期间创建一个实例。该角色必须具有以下权限:logs:CreateLogStreamlogs:DescribeLogGroupslogs:DescribeLogStreamslogs:PutLogEvents和 AWS 托管策略AmazonSSMManagedInstanceCore

  • TestInterval

    类型:字符串

    描述:(可选)测试间隔之间的分钟数。默认值为1分钟,最大值为10分钟。

  • RetainDashboardAndLogsOnDeletion

    类型:字符串

    描述:(可选)指定False在删除 AWS AWS CloudFormation 堆栈时删除 Amazon CloudWatch 控制面板和日志。默认值为 True。默认情况下,控制面板和日志会被保留,当不再需要它们时,需要手动将其删除。

所需的 IAM 权限

AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。

警告

建议传递TestInstanceProfileName参数或确保设置安全护栏,以防止滥用可变的 IAM 权限。

建议运行自动化的用户附加 A mazon Role SSMAutomation I AM 托管策略。此外,用户还必须将以下策略附加到其用户账户、组或角色:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:GetRolePolicy", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile", "iam:PutRolePolicy", "iam:TagRole" ], "Resource": [ "arn:aws:iam::111122223333:role/SetupIPMonitoringFromVPC*", "arn:aws:iam::111122223333:instance-profile/SetupIPMonitoringFromVPC*" ], "Effect": "Allow" }, { "Action": [ "cloudformation:CreateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudwatch:PutDashboard", "cloudwatch:DeleteDashboards", "ec2:AuthorizeSecurityGroupEgress", "ec2:CreateSecurityGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeInstanceTypes", "ec2:DescribeVpcs", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:DescribeInstanceStatus", "ec2:CreateTags", "ec2:AssignIpv6Addresses", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeLaunchTemplates", "ec2:RevokeSecurityGroupEgress", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "logs:TagResource", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:GetParameters", "ssm:SendCommand", "ssm:ListCommands", "ssm:ListCommandInvocations" ], "Resource": [ "*" ], "Effect": "Allow" } ] }

如果提供了TestInstanceProfileName参数,则不需要以下 IAM 权限即可执行运行手册:

  • 我是:CreateRole

  • 我是:CreateInstanceProfile

  • 我是:DetachRolePolicy

  • 我是:AttachRolePolicy

  • 我是:AddRoleToInstanceProfile

  • 我是:RemoveRoleFromInstanceProfile

  • 我是:DeleteRole

  • 我是:DeleteRolePolicy

  • 我是:DeleteInstanceProfile

文档步骤

  1. aws:executeAwsApi-描述提供的子网以获取 VPC ID 和 IPv6 CIDR 区块关联状态。

  2. aws:executeScript-验证提供的目标在语法上是否正确 IPv4 和/或 IPv6 地址,获取所选实例类型的架构,并验证子网是否 IPs 存在 IPv6 池关联(如果有目标 IP)。 IPv6

  3. aws:createStack-创建一个 AWS CloudFormation 堆栈,用于预置测试 Amazon EC2 实例、IAM 实例配置文件(如果未提供)、安全组(如果未提供)、 CloudWatch 日志组和 CloudWatch 控制面板。

    (清理)如果步骤失败:

    aws:executeScript-描述 CloudFormation 堆栈事件以确定失败原因。

    aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。

  4. aws:waitForAwsResourceProperty-等待 CloudFormation 堆栈完成创建。

    (清理)如果步骤失败:

    aws:executeScript-描述 CloudFormation 堆栈事件以确定失败原因。

    aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。

  5. aws:executeScript-描述用于获取测试实例 ID、安全组 ID、IAM 角色、实例配置文件和控制面板名称的 CloudFormation 堆栈资源。

    (清理)如果步骤失败:

    aws:executeScript-描述 CloudFormation 堆栈事件以确定失败原因。

    aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。

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

    (清理)如果步骤失败:

    aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。

  7. aws:runCommand-在测试实例上安装 CloudWatch 代理。

    (清理)如果步骤失败:

    aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。

  8. aws:runCommand-为所提供的每个脚本定义网络测试脚本(MTR、ping、tracepath 和 traceroute)。 IPs

    (清理)如果步骤失败:

    aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。

  9. aws:runCommand-使用每 TestInterval 分钟运行一次 cronjobs 启动网络测试并安排后续执行。

    (清理)如果步骤失败:

    aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。

  10. aws:runCommand-将 CloudWatch 代理配置为将测试结果从推送/home/ec2-user/logs/到 CloudWatch 日志。

    (清理)如果步骤失败:

    aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。

  11. aws:runCommand-为中的测试结果配置日志轮换/home/ec2-user/logs/

  12. aws:executeScript-为 CloudFormation 堆栈创建的所有 CloudWatch 日志组设置保留策略。

  13. aws:executeScript-为 ping 延迟和 ping 数据包丢失创建 CloudWatch 日志组指标过滤器。

    (清理)如果步骤失败:

    aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。

  14. aws:executeScript-更新 CloudWatch 仪表板以包含用于显示 ping 延迟和 ping 数据包丢失统计信息的控件。

    (清理)如果步骤失败:

    aws:executeAwsApi-删除 CloudWatch 仪表板(如果存在)。

    aws:deleteStack-删除 CloudFormation 堆栈和所有相关资源。

  15. aws:branch-评估 SleepTime 参数。如果设置为0,则自动化将在不删除堆栈的情况下结束。

  16. aws:sleep-等待指定的 SleepTime 持续时间后再删除 CloudFormation 堆栈。

  17. aws:deleteStack-删除 CloudFormation 堆栈。根据 RetainDashboardAndLogsOnDeletion 参数, CloudWatch 控制面板和日志组要么保留,要么删除。

    (清理)如果堆栈删除失败:

    aws:executeScript-描述 CloudFormation 堆栈事件以确定删除失败的原因。

输出

updateCloudWatch仪表板。 StackUrl - CloudFormation 堆栈的网址。

updateCloudWatch仪表板。 DashboardUrl - CloudWatch 仪表板的网址。

updateCloudWatch仪表板。 DashboardName - CloudWatch 仪表板的名称。

updateCloudWatch仪表板。 LogGroups -创建的 CloudWatch 日志组列表。

describeStackResources。 HelperInstanceId -测试实例 ID。

describeStackResources。 StackName - CloudFormation 堆栈名称。