View a markdown version of this page

AWSSupport-SetupIPMonitoringFromVPC - AWS Systems Manager Referência do runbooks de automação

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWSSupport-SetupIPMonitoringFromVPC

Descrição

AWSSupport-SetupIPMonitoringFromVPCcria uma instância temporária do Amazon Elastic Compute Cloud (Amazon EC2) executando o Amazon Linux 2023 na sub-rede especificada. O runbook executa continuamente testes de ping, MTR, traceroute e tracetcp nos IPs de destino selecionados (IPv4 ou IPv6). Ele armazena os resultados nos grupos de CloudWatch registros da Amazon e aplica filtros métricos para visualizar rapidamente as estatísticas de latência e perda de pacotes em um painel. CloudWatch

Custos adicionais

Esse runbook gera custos adicionais AWS . Ele provisiona uma instância do Amazon EC2, grupos de CloudWatch log e um CloudWatch painel em sua conta usando AWS CloudFormation. A instância de teste é executada continuamente até você excluir a CloudFormation pilha. Se você RetainDashboardAndLogsOnDeletion definir como True (padrão), o CloudWatch painel e os grupos de registros permanecerão após a exclusão da pilha. Esses recursos continuam sendo cobrados até que você os remova manualmente. Para obter detalhes sobre preços, consulte Preços do Amazon EC2 e CloudWatch Preços https://aws.amazon.com/cloudwatch/pricing/ da Amazon.

Informações adicionais

Você pode usar os resultados do teste no Amazon CloudWatch Logs para solucionar problemas de rede e analisar padrões e tendências. Além disso, você pode configurar CloudWatch alarmes com as notificações do Amazon Simple Notification Service quando a perda ou a latência de pacotes atingirem um limite. Você também pode usar esses resultados ao abrir um caso com AWS Support, para ajudar a isolar um problema rapidamente e reduzir o tempo de resolução ao investigar um problema de rede.

Executar esta automação (console)

Tipo de documento

Automação

Proprietário

Amazon

Plataformas

Linux, macOS, Windows

Parâmetros

  • AutomationAssumeRole

    Tipo: String

    Descrição: (opcional) o nome do recurso da Amazon (ARN) do perfil do AWS Identity and Access Management (IAM) que permite que o Systems Manager Automation realize ações em seu nome. Se nenhum perfil for especificado, o Systems Manager Automation usa as permissões do usuário que inicia este runbook.

  • CloudWatchLogGroupNamePrefix

    Tipo: string

    Padrão: /AWSSupport-SetupIPMonitoringFromVPC

    Descrição: (Opcional) Prefixo usado para cada grupo de CloudWatch registros criado para os resultados do teste.

  • CloudWatchLogGroupRetentionInDays

    Tipo: string

    Valores válidos: 1 | 3 | 5 | 7 | 14 | 30 | 60 | 90 | 120 | 150 | 180 | 365 | 400 | 545 | 731 | 1827 | 3653

    Padrão: 7

    Descrição: (Opcional) O número de dias que você deseja manter os resultados de monitoramento de rede.

  • InstanceType

    Tipo: string

    Valores válidos: t2.micro | t2.small | t2.medium | t2.large | t3.micro | t3.small | t3.medium | t3.large | t4g.micro | t4g.small | t4g.medium | t4g.large

    Padrão: t3.micro

    Descrição: (Opcional) O tipo de instância do Amazon EC2 para a instância de monitoramento. Tamanho recomendado: t3.micro.

  • SubnetId

    Tipo: string

    Descrição: (Obrigatório) O ID de sub-rede para a instância do monitor. Lembre-se de que, se você especificar uma sub-rede privada, deverá garantir que haja acesso à Internet para permitir que a instância do monitor configure o teste (por exemplo, instale o CloudWatch agente, interaja com AWS Systems Manager e. CloudWatch).

  • TargetIPs

    Tipo: string

    Descrição: Comma-separated lista (obrigatória) de endereços IPv4 ou IPv6 a serem monitorados. Espaços não são permitidos. O tamanho máximo é de 255 caracteres. Lembre-se de que, se você fornecer um IP inválido, a automação falhará e reverterá a configuração do teste.

  • TestInstanceSecurityGroupId

    Tipo: string

    Descrição: (Opcional) O ID do grupo de segurança da instância de teste. Se não for especificada, a automação cria uma durante a criação da instância. Verifique se o grupo de segurança permite acesso externo aos IPs de monitoramento.

  • TestInstanceProfileName

    Tipo: string

    Descrição: (Opcional) O nome de um perfil de AWS Identity and Access Management instância existente para a instância de teste. Se não for especificada, a automação cria uma durante a criação da instância. A função deve ter as seguintes permissões: logs:CreateLogStreamlogs:DescribeLogGroups,logs:DescribeLogStreams, logs:PutLogEvents e a Política AWS gerenciadaAmazonSSMManagedInstanceCore.

  • TestInterval

    Tipo: string

    Descrição: (Opcional) O número de minutos entre os intervalos de teste. O valor padrão é 1 minuto e o máximo é 10 minutos.

  • RetainDashboardAndLogsOnDeletion

    Tipo: string

    Descrição: (Opcional) Especifique False a exclusão do CloudWatch painel e dos grupos de registros ao excluir a CloudFormation pilha. O valor padrão é True. Por padrão, o runbook retém o painel e os registros. Você deve excluí-los manualmente quando não forem mais necessários.

Permissões obrigatórias do IAM

O parâmetro AutomationAssumeRole requer as seguintes ações para usar o runbook com êxito.

Atenção

É recomendável passar TestInstanceProfileName parâmetros ou garantir a implementação de proteções de segurança para evitar o uso indevido de permissões mutáveis do IAM.

É recomendável que o usuário que executa a automação tenha a política gerenciada do AmazonSSMAutomationRole IAM anexada. Além disso, o usuário deve ter a política a seguir anexada à sua conta de usuário, grupo ou função:

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" } ] }

Se o TestInstanceProfileName parâmetro for fornecido, as seguintes permissões do IAM não serão necessárias para executar o runbook:

  • Eu sou: CreateRole

  • Eu sou: CreateInstanceProfile

  • Eu sou: DetachRolePolicy

  • Eu sou: AttachRolePolicy

  • Eu sou: AddRoleToInstanceProfile

  • Eu sou: RemoveRoleFromInstanceProfile

  • Eu sou: DeleteRole

  • Eu sou: DeleteRolePolicy

  • Eu sou: DeleteInstanceProfile

Etapas do documento

  1. aws:executeAwsApi- descreva a sub-rede fornecida para obter o ID da VPC e o estado da associação do bloco CIDR IPv6.

  2. aws:executeScript- valide se os IPs de destino fornecidos são endereços and/or IPv6 IPv4 sintaticamente corretos, obtenha a arquitetura do tipo de instância selecionado e verifique se a sub-rede tem uma associação de pool IPv6 se algum IP de destino for IPv6.

  3. aws:createStack- crie uma CloudFormation pilha que provisione a instância de teste do Amazon EC2, o perfil da instância IAM (se não for fornecido), o grupo de segurança (se não for fornecido), os grupos de CloudWatch log e CloudWatch o painel.

    (Limpeza) Se a etapa falhar:

    aws:executeScript- descreva os eventos da CloudFormation pilha para identificar o motivo da falha.

    aws:deleteStack- exclua a CloudFormation pilha e todos os recursos associados.

  4. aws:waitForAwsResourceProperty- aguarde até que a CloudFormation pilha conclua a criação.

    (Limpeza) Se a etapa falhar:

    aws:executeScript- descreva os eventos da CloudFormation pilha para identificar o motivo da falha.

    aws:deleteStack- exclua a CloudFormation pilha e todos os recursos associados.

  5. aws:executeScript- descreva os recursos da CloudFormation pilha para obter o ID da instância de teste, o ID do grupo de segurança, a função do IAM, o perfil da instância e o nome do painel.

    (Limpeza) Se a etapa falhar:

    aws:executeScript- descreva os eventos da CloudFormation pilha para identificar o motivo da falha.

    aws:deleteStack- exclua a CloudFormation pilha e todos os recursos associados.

  6. aws:waitForAwsResourceProperty :aguarde até que a instância de teste se torne uma instância gerenciada.

    (Limpeza) Se a etapa falhar:

    aws:deleteStack- exclua a CloudFormation pilha e todos os recursos associados.

  7. aws:runCommand- instale o CloudWatch agente mtr e traceroute na instância de teste.

    (Limpeza) Se a etapa falhar:

    aws:deleteStack- exclua a CloudFormation pilha e todos os recursos associados.

  8. aws:runCommand- defina os scripts de teste de rede (MTR, ping, tracepath e traceroute) para cada um dos IPs fornecidos.

    (Limpeza) Se a etapa falhar:

    aws:deleteStack- exclua a CloudFormation pilha e todos os recursos associados.

  9. aws:runCommand- inicie os testes de rede e agende as execuções subsequentes usando temporizadores systemd que são executados a cada minuto. TestInterval

    (Limpeza) Se a etapa falhar:

    aws:deleteStack- exclua a CloudFormation pilha e todos os recursos associados.

  10. aws:runCommand- configure o CloudWatch agente para enviar os resultados do teste /home/ec2-user/logs/ para CloudWatch os registros.

    (Limpeza) Se a etapa falhar:

    aws:deleteStack- exclua a CloudFormation pilha e todos os recursos associados.

  11. aws:runCommand- configure a rotação do log para os resultados do teste em/home/ec2-user/logs/.

  12. aws:executeScript- defina a política de retenção para todos os grupos de CloudWatch registros criados pela CloudFormation pilha.

  13. aws:executeScript- crie filtros métricos de grupos de CloudWatch log para latência de ping e perda de pacotes de ping.

    (Limpeza) Se a etapa falhar:

    aws:deleteStack- exclua a CloudFormation pilha e todos os recursos associados.

  14. aws:executeScript- atualize o CloudWatch painel para incluir widgets para estatísticas de latência e perda de pacotes de ping.

    (Limpeza) Se a etapa falhar:

    aws:executeAwsApi- exclua o CloudWatch painel, se ele existir.

    aws:deleteStack- exclua a CloudFormation pilha e todos os recursos associados.

  15. aws:branch- avalie o SleepTime parâmetro. Se definido como0, a automação termina sem excluir a pilha.

  16. aws:sleep- aguarde a SleepTime duração especificada antes de excluir a CloudFormation pilha.

  17. aws:deleteStack- exclua a CloudFormation pilha. Com base no RetainDashboardAndLogsOnDeletion parâmetro, o CloudWatch painel e os grupos de registros são retidos ou excluídos.

    (Limpeza) Se a exclusão da pilha falhar:

    aws:executeScript- descreva os eventos da CloudFormation pilha para identificar o motivo da falha na exclusão.

Saídas

update CloudWatchDashboard.StackUrl - o URL da CloudFormation pilha.

update CloudWatchDashboard.DashboardUrl - o URL do CloudWatch painel.

update CloudWatchDashboard.DashboardName - o nome do CloudWatch painel.

atualização CloudWatchDashboard.LogGroups - a lista de grupos de CloudWatch registros criados.

describe StackResources.HelperInstanceId - o ID da instância de teste.

describe StackResources.StackName - o nome da CloudFormation pilha.