View a markdown version of this page

AWSSupport-SetupIPMonitoringFromVPC - AWS Systems Manager Runbook-Referenz für Automation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWSSupport-SetupIPMonitoringFromVPC

Beschreibung

AWSSupport-SetupIPMonitoringFromVPCerstellt eine temporäre Amazon Elastic Compute Cloud (Amazon EC2) -Instance, auf der Amazon Linux 2023 im angegebenen Subnetz ausgeführt wird. Das Runbook führt kontinuierlich Ping-, MTR-, Traceroute- und Tracetcp-Tests für die ausgewählten Ziel-IPs (IPv4 oder IPv6) durch. Es speichert die Ergebnisse in CloudWatch Amazon-Protokollgruppen und wendet Metrikfilter an, um Latenz- und Paketverlust-Statistiken schnell in einem CloudWatch Dashboard zu visualisieren.

Weitere Kosten

Für dieses Runbook fallen zusätzliche AWS Kosten an. Es stellt eine Amazon EC2 EC2-Instance, CloudWatch Protokollgruppen und ein CloudWatch Dashboard in Ihrem Konto bereit unter Verwendung von AWS CloudFormation. Die Test-Instance wird kontinuierlich ausgeführt, bis Sie den CloudFormation Stack löschen. Wenn Sie RetainDashboardAndLogsOnDeletion auf True (Standard) setzen, bleiben das CloudWatch Dashboard und die Protokollgruppen auch nach dem Löschen des Stacks erhalten. Für diese Ressourcen fallen weiterhin Gebühren an, bis Sie sie manuell entfernen. Preisdetails finden Sie unter Amazon EC2 EC2-Preise und CloudWatchAmazon-Preise.

Zusätzliche Informationen

Sie können die Testergebnisse in Amazon CloudWatch Logs zur Fehlerbehebung im Netzwerk und zur Analyse von Mustern und Trends verwenden. Darüber hinaus können Sie CloudWatch Alarme mit Amazon Simple Notification Service-Benachrichtigungen konfigurieren, wenn Paketverlust oder Latenz einen Schwellenwert erreichen. Sie können diese Ergebnisse auch verwenden, wenn Sie einen Fall mit eröffnen AWS Support, um ein Problem schnell zu isolieren und die Zeit bis zur Lösung bei der Untersuchung eines Netzwerkproblems zu verkürzen.

Führen Sie diese Automatisierung aus (Konsole)

Art des Dokuments

Automatisierung

Eigentümer

Amazon

Plattformen

Linux,macOS, Windows

Parameter

  • AutomationAssumeRole

    Typ: Zeichenfolge

    Beschreibung: (Optional) Der Amazon-Ressourcenname (ARN) der AWS Identity and Access Management (IAM) -Rolle, mit der Systems Manager Automation die Aktionen in Ihrem Namen ausführen kann. Wenn keine Rolle angegeben ist, verwendet Systems Manager Automation die Berechtigungen des Benutzers, der dieses Runbook startet.

  • CloudWatchLogGroupNamePrefix

    Typ: Zeichenfolge

    Standard: /AWSSupport-SetupIPMonitoringFromVPC

    Beschreibung: (Optional) Das Präfix wird für jede CloudWatch Protokollgruppe verwendet, die für die Testergebnisse erstellt wurde.

  • CloudWatchLogGroupRetentionInDays

    Typ: Zeichenfolge

    Gültige Werte: 1 | 3 | 5 | 7 | 14 | 30 | 60 | 90 | 120 | 150 | 180 | 365 | 400 | 545 | 731 | 1827 | 3653

    Standard: 7

    Beschreibung: (Optional) Die Anzahl der Tage, für die Sie die Netzwerküberwachungsergebnisse behalten möchten.

  • InstanceType

    Typ: Zeichenfolge

    Gültige Werte: t2.micro | t2.small | t2.medium | t2.large | t3.micro | t3.small | t3.medium | t3.large | t4g.micro | t4g.small | t4g.medium | t4g.large

    Standard: t3.micro

    Beschreibung: (Optional) Der Amazon EC2 EC2-Instance-Typ für die Monitoring-Instance. Empfohlene Größe: t3.micro.

  • SubnetId

    Typ: Zeichenfolge

    Beschreibung: (Erforderlich) Die Subnetz-ID für die Überwachungs-Instance. Beachten Sie, dass Sie, wenn Sie ein privates Subnetz angeben, sicherstellen müssen, dass ein Internetzugang vorhanden ist, damit die Monitor-Instance den Test einrichten kann (z. B. den CloudWatch Agenten installieren, mit AWS Systems Manager und interagieren). CloudWatch

  • TargetIPs

    Typ: Zeichenfolge

    Beschreibung: (Erforderlich) Comma-separated Liste der zu überwachenden IPv4- oder IPv6-Adressen. Leerzeichen sind nicht zulässig. Die maximale Größe beträgt 255 Zeichen. Beachten Sie, dass die Automatisierung fehlschlägt und die Testkonfiguration rückgängig gemacht wird, wenn Sie eine ungültige IP angeben.

  • TestInstanceSecurityGroupId

    Typ: Zeichenfolge

    Beschreibung: (Optional) Die Sicherheitsgruppen-ID für die Testinstanz. Wenn nicht angegeben, erstellt die Automatisierung während der Instanzerstellung eine. Stellen Sie sicher, dass die Sicherheitsgruppe ausgehenden Zugriff auf die Überwachungs-IPs zulässt.

  • TestInstanceProfileName

    Typ: Zeichenfolge

    Beschreibung: (Optional) Der Name eines vorhandenen AWS Identity and Access Management Instanzprofils für die Testinstanz. Wenn nicht angegeben, erstellt die Automatisierung während der Instanzerstellung eines. Die Rolle muss über die folgenden Berechtigungen verfügen:logs:CreateLogStream, logs:DescribeLogGroupslogs:DescribeLogStreams, und logs:PutLogEvents und die AWS verwaltete RichtlinieAmazonSSMManagedInstanceCore.

  • TestInterval

    Typ: Zeichenfolge

    Beschreibung: (Optional) Die Anzahl der Minuten zwischen den Testintervallen. Der Standardwert ist 1 Minute und das Maximum ist 10 Minuten.

  • RetainDashboardAndLogsOnDeletion

    Typ: Zeichenfolge

    Beschreibung: (Optional) Geben Sie False an, dass das CloudWatch Dashboard und die Protokollgruppen beim Löschen des CloudFormation Stacks gelöscht werden sollen. Der Standardwert ist True. Standardmäßig behält das Runbook das Dashboard und die Protokolle bei. Sie müssen sie manuell löschen, wenn sie nicht mehr benötigt werden.

Erforderliche IAM-Berechtigungen

Der AutomationAssumeRole Parameter erfordert die folgenden Aktionen, um das Runbook erfolgreich zu verwenden.

Warnung

Es wird empfohlen, den TestInstanceProfileName Parameter zu übergeben oder Sicherheitsvorkehrungen zu treffen, um den Missbrauch veränderbarer IAM-Berechtigungen zu verhindern.

Es wird empfohlen, dass dem Benutzer, der die Automatisierung ausführt, die AmazonSSMAutomationRoleIAM-verwaltete Richtlinie beigefügt ist. Außerdem muss der Benutzer die folgende Richtlinie an sein Benutzerkonto, seine Gruppe oder seine Rolle angefügt haben:

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

Wenn der TestInstanceProfileName Parameter angegeben wird, sind die folgenden IAM-Berechtigungen nicht erforderlich, um das Runbook auszuführen:

  • iam: CreateRole

  • ich bin: CreateInstanceProfile

  • ich bin: DetachRolePolicy

  • ich bin: AttachRolePolicy

  • ich bin: AddRoleToInstanceProfile

  • ich bin: RemoveRoleFromInstanceProfile

  • ich bin: DeleteRole

  • ich bin: DeleteRolePolicy

  • ich bin: DeleteInstanceProfile

Dokumentschritte

  1. aws:executeAwsApi- Beschreiben Sie das bereitgestellte Subnetz, um die VPC-ID und den IPv6-CIDR-Blockzuordnungsstatus abzurufen.

  2. aws:executeScript— überprüft, ob es sich bei den angegebenen Ziel-IPs um syntaktisch korrekte and/or IPv4-IPv6-Adressen handelt, ermittelt die Architektur des ausgewählten Instance-Typs und stellt sicher, dass das Subnetz über eine IPv6-Pool-Zuordnung verfügt, falls es sich bei einer Ziel-IP um IPv6 handelt.

  3. aws:createStack- Erstellen Sie einen CloudFormation Stack, der die Amazon EC2 EC2-Testinstanz, das IAM-Instance-Profil (falls nicht bereitgestellt), die Sicherheitsgruppe (falls nicht bereitgestellt), die CloudWatch Protokollgruppen und CloudWatch das Dashboard bereitstellt.

    (Cleanup) Wenn der Schritt fehlschlägt:

    aws:executeScript— Beschreiben Sie die CloudFormation Stack-Ereignisse, um die Fehlerursache zu ermitteln.

    aws:deleteStack- löscht den CloudFormation Stapel und alle zugehörigen Ressourcen.

  4. aws:waitForAwsResourceProperty- warte, bis der CloudFormation Stapel fertig erstellt ist.

    (Cleanup) Wenn der Schritt fehlschlägt:

    aws:executeScript- Beschreiben Sie die CloudFormation Stack-Ereignisse, um die Fehlerursache zu ermitteln.

    aws:deleteStack- löscht den CloudFormation Stapel und alle zugehörigen Ressourcen.

  5. aws:executeScript— Beschreiben Sie die CloudFormation Stack-Ressourcen, um die Testinstanz-ID, die Sicherheitsgruppen-ID, die IAM-Rolle, das Instanzprofil und den Dashboard-Namen zu erhalten.

    (Cleanup) Wenn der Schritt fehlschlägt:

    aws:executeScript— Beschreiben Sie die CloudFormation Stack-Ereignisse, um die Fehlerursache zu ermitteln.

    aws:deleteStack- löscht den CloudFormation Stapel und alle zugehörigen Ressourcen.

  6. aws:waitForAwsResourceProperty- Warten Sie, bis die Testinstanz zu einer verwalteten Instanz wird.

    (Cleanup) Wenn der Schritt fehlschlägt:

    aws:deleteStack- löscht den CloudFormation Stack und alle zugehörigen Ressourcen.

  7. aws:runCommand- installiert den CloudWatch Agentenmtr, und traceroute auf der Testinstanz.

    (Cleanup) Wenn der Schritt fehlschlägt:

    aws:deleteStack- löscht den CloudFormation Stack und alle zugehörigen Ressourcen.

  8. aws:runCommand- Definieren Sie die Netzwerktestskripte (MTR, Ping, Tracepath und Traceroute) für jede der bereitgestellten IPs.

    (Cleanup) Wenn der Schritt fehlschlägt:

    aws:deleteStack- löscht den CloudFormation Stack und alle zugehörigen Ressourcen.

  9. aws:runCommand- Startet die Netzwerktests und plant nachfolgende Ausführungen mithilfe von Systemd-Timern, die alle Minuten laufen. TestInterval

    (Cleanup) Wenn der Schritt fehlschlägt:

    aws:deleteStack- löscht den CloudFormation Stapel und alle zugehörigen Ressourcen.

  10. aws:runCommand- konfigurieren Sie den CloudWatch Agenten so, dass er die Testergebnisse /home/ec2-user/logs/ in die CloudWatch Logs überträgt.

    (Cleanup) Wenn der Schritt fehlschlägt:

    aws:deleteStack- löscht den CloudFormation Stack und alle zugehörigen Ressourcen.

  11. aws:runCommand- konfigurieren Sie die Protokollrotation für die Testergebnisse in/home/ec2-user/logs/.

  12. aws:executeScript- legt die Aufbewahrungsrichtlinie für alle vom CloudFormation Stapel erstellten CloudWatch Protokollgruppen fest.

  13. aws:executeScript- Erstellen Sie Metrikfilter für CloudWatch Protokollgruppen für Ping-Latenz und Ping-Paketverlust.

    (Cleanup) Wenn der Schritt fehlschlägt:

    aws:deleteStack- löscht den CloudFormation Stapel und alle zugehörigen Ressourcen.

  14. aws:executeScript- aktualisiert das CloudWatch Dashboard um Widgets für Statistiken zur Ping-Latenz und zum Verlust von Ping-Paketen.

    (Cleanup) Wenn der Schritt fehlschlägt:

    aws:executeAwsApi- lösche das CloudWatch Dashboard, falls es existiert.

    aws:deleteStack- lösche den CloudFormation Stack und alle zugehörigen Ressourcen.

  15. aws:branch- den SleepTime Parameter auswerten. Wenn auf gesetzt0, wird die Automatisierung beendet, ohne dass der Stapel gelöscht wird.

  16. aws:sleep- Warten Sie die angegebene SleepTime Dauer, bevor Sie den CloudFormation Stapel löschen.

  17. aws:deleteStack- löscht den CloudFormation Stapel. Basierend auf dem RetainDashboardAndLogsOnDeletion Parameter werden das CloudWatch Dashboard und die Protokollgruppen entweder beibehalten oder gelöscht.

    (Bereinigung) Wenn das Löschen des Stacks fehlschlägt:

    aws:executeScript- Beschreiben Sie die CloudFormation Stack-Ereignisse, um die Ursache für das Fehlschlagen beim Löschen zu ermitteln.

Ausgaben

update CloudWatchDashboard.StackUrl — die URL des CloudFormation Stacks.

update CloudWatchDashboard.DashboardUrl — die URL des CloudWatch Dashboards.

update CloudWatchDashboard.DashboardName — der Name des CloudWatch Dashboards.

update CloudWatchDashboard.LogGroups — die Liste der erstellten CloudWatch Protokollgruppen.

describe StackResources.HelperInstanceId — die Testinstanz-ID.

describe StackResources.StackName — der CloudFormation Stack-Name.