View a markdown version of this page

AWSSupport-SetupIPMonitoringFromVPC - AWS Systems Manager Riferimento al runbook dell’automazione

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWSSupport-SetupIPMonitoringFromVPC

Descrizione

AWSSupport-SetupIPMonitoringFromVPCcrea un'istanza temporanea di Amazon Elastic Compute Cloud (Amazon EC2) che esegue Amazon Linux 2023 nella sottorete specificata. Il runbook esegue continuamente test ping, MTR, traceroute e tracetcp sugli IP di destinazione selezionati (IPv4 o IPv6). Memorizza i risultati in gruppi di CloudWatch log di Amazon e applica filtri metrici per visualizzare rapidamente le statistiche di latenza e perdita di pacchetti in una dashboard. CloudWatch

Costi aggiuntivi

Questo runbook comporta costi aggiuntivi. AWS Effettua il provisioning di un'istanza Amazon EC2, di gruppi di CloudWatch log e di un CloudWatch dashboard nel tuo account utilizzando. AWS CloudFormation L'istanza di test viene eseguita continuamente finché non elimini lo CloudFormation stack. Se è impostato su RetainDashboardAndLogsOnDeletion True (impostazione predefinita), il CloudWatch dashboard e i gruppi di log rimangono invariati dopo l'eliminazione dello stack. Queste risorse continuano a comportare costi fino a quando non vengono rimosse manualmente. Per informazioni dettagliate sui prezzi, consulta i prezzi di Amazon EC2 e i prezzi di Amazon CloudWatch.

Informazioni aggiuntive

Puoi utilizzare i risultati dei test in Amazon CloudWatch Logs per la risoluzione dei problemi di rete e l'analisi di modelli e tendenze. Inoltre, puoi configurare gli CloudWatch allarmi con le notifiche di Amazon Simple Notification Service quando la perdita o la latenza dei pacchetti raggiungono una soglia. Puoi utilizzare questi risultati anche quando apri un caso con Supporto AWS, per isolare rapidamente un problema e ridurre i tempi di risoluzione quando indaghi su un problema di rete.

Esegui questa automazione (console)

Tipo di documento

Automazione

Proprietario

Amazon

Piattaforme

LinuxmacOS, Windows

Parametri

  • AutomationAssumeRole

    Tipo: String

    Descrizione: (Facoltativo) L'Amazon Resource Name (ARN) del ruolo AWS Identity and Access Management (IAM) che consente a Systems Manager Automation di eseguire le azioni per tuo conto. Se non viene specificato alcun ruolo, Systems Manager Automation utilizza le autorizzazioni dell'utente che avvia questo runbook.

  • CloudWatchLogGroupNamePrefix

    Tipo: String

    Impostazione predefinita: /AWSSupport-SetupIPMonitoringFromVPC

    Descrizione: (Facoltativo) Prefisso utilizzato per ogni gruppo di CloudWatch log creato per i risultati del test.

  • CloudWatchLogGroupRetentionInDays

    Tipo: String

    Valori validi: 1 | 3 | 5 | 7 | 14 | 30 | 60 | 90 | 120 | 150 | 180 | 365 | 400 | 545 | 731 | 1827 | 3653

    Impostazione predefinita: 7

    Descrizione: (facoltativo) numero di giorni che definisce l'intervallo di tempo durante il quale si desidera conservare i risultati del monitoraggio della rete.

  • InstanceType

    Tipo: String

    Valori validi: t2.micro | t2.small | t2.medium | t2.large | t3.micro | t3.small | t3.small | t3.medium | t3.large | t4g.micro | t4g.small | t4g.medium | t4g.large

    Predefinito: t3.micro

    Descrizione: (Facoltativo) Il tipo di istanza Amazon EC2 per l'istanza di monitoraggio. Dimensione consigliata: t3.micro.

  • SubnetId

    Tipo: String

    Descrizione: (obbligatorio) ID sottorete dell'istanza di monitoraggio. Tieni presente che se specifichi una sottorete privata, devi assicurarti che ci sia accesso a Internet per consentire all'istanza del monitor di configurare il test (ad esempio, installare l' CloudWatch agente, interagire con AWS Systems Manager and). CloudWatch

  • TargetIPs

    Tipo: String

    Descrizione: Comma-separated elenco (obbligatorio) di indirizzi IPv4 o IPv6 da monitorare. Gli spazi non sono consentiti. La dimensione massima è pari a 255 caratteri. Tieni presente che se fornisci un IP non valido, l'automazione fallirà e ripristinerà la configurazione del test.

  • TestInstanceSecurityGroupId

    Tipo: String

    Descrizione: (Facoltativo) L'ID del gruppo di sicurezza per l'istanza di test. Se non specificato, l'automazione ne crea uno durante la creazione dell'istanza. Assicurati che il gruppo di sicurezza consenta l'accesso in uscita agli IP di monitoraggio.

  • TestInstanceProfileName

    Tipo: String

    Descrizione: (Facoltativo) Il nome di un profilo di AWS Identity and Access Management istanza esistente per l'istanza di test. Se non specificato, l'automazione ne crea uno durante la creazione dell'istanza. Il ruolo deve disporre delle seguenti autorizzazioni:logs:CreateLogStream, logs:DescribeLogGroupslogs:DescribeLogStreams, e logs:PutLogEvents e la AWS Managed PolicyAmazonSSMManagedInstanceCore.

  • TestInterval

    Tipo: String

    Descrizione: (Facoltativo) Il numero di minuti tra gli intervalli di test. Il valore predefinito è 1 minuto e il massimo è 10 minuti.

  • RetainDashboardAndLogsOnDeletion

    Tipo: String

    Descrizione: (Facoltativo) Specifica False di eliminare il CloudWatch dashboard e i gruppi di log quando si elimina lo CloudFormation stack. Il valore predefinito è True. Per impostazione predefinita, il runbook conserva la dashboard e i log. È necessario eliminarli manualmente quando non sono più necessari.

Autorizzazioni IAM richieste

Il AutomationAssumeRole parametro richiede le seguenti azioni per utilizzare correttamente il runbook.

avvertimento

Si consiglia di passare il TestInstanceProfileName parametro o garantire l'attivazione di protezioni di sicurezza per prevenire l'uso improprio delle autorizzazioni IAM mutabili.

È consigliabile che all'utente che esegue l'automazione sia allegata la policy gestita da IAM. AmazonSSMAutomationRole L'utente deve inoltre disporre della seguente policy associata al proprio account utente, gruppo o ruolo:

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 viene fornito il TestInstanceProfileName parametro, le seguenti autorizzazioni IAM non sono richieste per eseguire il runbook:

  • sono: CreateRole

  • sono: CreateInstanceProfile

  • sono: DetachRolePolicy

  • sono: AttachRolePolicy

  • sono: AddRoleToInstanceProfile

  • sono: RemoveRoleFromInstanceProfile

  • sono: DeleteRole

  • sono: DeleteRolePolicy

  • sono: DeleteInstanceProfile

Fasi del documento

  1. aws:executeAwsApi- descrivi la sottorete fornita per ottenere l'ID VPC e lo stato di associazione dei blocchi CIDR IPv6.

  2. aws:executeScript- convalida che gli IP di destinazione forniti siano indirizzi IPv6 IPv4 sintatticamente corretti, ottieni l'architettura del tipo di istanza selezionato e verifica che la sottorete abbia un'associazione di pool and/or IPv6 se un IP di destinazione è IPv6.

  3. aws:createStack- crea uno CloudFormation stack che fornisca l'istanza Amazon EC2 di prova, il profilo dell'istanza IAM (se non fornito), il gruppo di sicurezza (se non fornito), i gruppi di log e il dashboard. CloudWatch CloudWatch

    (Pulizia) Se la fase ha esito negativo:

    aws:executeScript- descrivi gli eventi CloudFormation dello stack per identificare il motivo dell'errore.

    aws:deleteStack- eliminare lo CloudFormation stack e tutte le risorse associate.

  4. aws:waitForAwsResourceProperty- attendi che lo CloudFormation stack completi la creazione.

    (Pulizia) Se la fase ha esito negativo:

    aws:executeScript- descrivi gli eventi CloudFormation dello stack per identificare il motivo dell'errore.

    aws:deleteStack- eliminare lo CloudFormation stack e tutte le risorse associate.

  5. aws:executeScript- descrivi le risorse CloudFormation dello stack per ottenere l'ID dell'istanza di test, l'ID del gruppo di sicurezza, il ruolo IAM, il profilo dell'istanza e il nome del dashboard.

    (Pulizia) Se la fase ha esito negativo:

    aws:executeScript- descrivi gli eventi CloudFormation dello stack per identificare il motivo dell'errore.

    aws:deleteStack- eliminare lo CloudFormation stack e tutte le risorse associate.

  6. aws:waitForAwsResourceProperty- attendi che l'istanza di test diventi un'istanza gestita.

    (Pulizia) Se la fase ha esito negativo:

    aws:deleteStack- elimina lo CloudFormation stack e tutte le risorse associate.

  7. aws:runCommand- installa l' CloudWatch agente e traceroute sull'istanza di test. mtr

    (Pulizia) Se la fase ha esito negativo:

    aws:deleteStack- elimina lo CloudFormation stack e tutte le risorse associate.

  8. aws:runCommand- definire gli script di test di rete (MTR, ping, tracepath e traceroute) per ciascuno degli IP forniti.

    (Pulizia) Se la fase ha esito negativo:

    aws:deleteStack- eliminare lo stack e tutte le risorse associate CloudFormation .

  9. aws:runCommand- avvia i test di rete e pianifica le successive esecuzioni utilizzando timer systemd che vengono eseguiti ogni minuto. TestInterval

    (Pulizia) Se la fase ha esito negativo:

    aws:deleteStack- elimina lo CloudFormation stack e tutte le risorse associate.

  10. aws:runCommand- configura l' CloudWatch agente per inviare i risultati dei test /home/ec2-user/logs/ ai CloudWatch log.

    (Pulizia) Se la fase ha esito negativo:

    aws:deleteStack- elimina lo CloudFormation stack e tutte le risorse associate.

  11. aws:runCommand- configura la rotazione dei log per i risultati del test in/home/ec2-user/logs/.

  12. aws:executeScript- imposta la politica di conservazione per tutti i gruppi di CloudWatch log creati dallo CloudFormation stack.

  13. aws:executeScript- crea filtri metrici dei gruppi di CloudWatch log per la latenza del ping e la perdita di pacchetti di ping.

    (Pulizia) Se la fase ha esito negativo:

    aws:deleteStack- elimina lo CloudFormation stack e tutte le risorse associate.

  14. aws:executeScript- aggiorna la CloudWatch dashboard per includere i widget per la latenza del ping e le statistiche sulla perdita di pacchetti di ping.

    (Pulizia) Se la fase ha esito negativo:

    aws:executeAwsApi- elimina la CloudWatch dashboard, se esiste.

    aws:deleteStack- elimina lo CloudFormation stack e tutte le risorse associate.

  15. aws:branch- valuta il SleepTime parametro. Se impostato su0, l'automazione termina senza eliminare lo stack.

  16. aws:sleep- attendi la SleepTime durata specificata prima di eliminare lo CloudFormation stack.

  17. aws:deleteStack- elimina la CloudFormation pila. In base al RetainDashboardAndLogsOnDeletion parametro, il CloudWatch dashboard e i gruppi di log vengono conservati o eliminati.

    (Pulizia) Se l'eliminazione dello stack non riesce:

    aws:executeScript- descrivi gli eventi CloudFormation dello stack per identificare il motivo dell'errore di eliminazione.

Output

updateCloudWatchDashboard.StackUrl : l'URL dello CloudFormation stack.

updateCloudWatchDashboard.DashboardUrl : l'URL della CloudWatch dashboard.

updateCloudWatchDashboard.DashboardName : il nome della CloudWatch dashboard.

updateCloudWatchDashboard.LogGroups : l'elenco dei gruppi di CloudWatch log creati.

describeStackResources.HelperInstanceId : l'ID dell'istanza di test.

describeStackResources.StackName : il nome CloudFormation dello stack.