View a markdown version of this page

AWSSupport-TroubleshootMSKClusterConnection - 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-TroubleshootMSKClusterConnection

Description

Das AWSSupport-TroubleshootMSKClusterConnection Runbook diagnostiziert und hilft bei der Behebung von Amazon Managed Streaming für Apache Kafka-Cluster-Konnektivitätsprobleme. Es führt eine Analyse des Broker-Zustands, eine Validierung der Netzwerkkonfiguration, Live-Konnektivitätstests und AWS Identity and Access Management eine Authentifizierungsprüfung durch.

Funktionsweise

Das Runbook führt die folgenden Operationen aus:

  1. Berechtigungsüberprüfung: Überprüft, ob die Ausführungsrolle über alle erforderlichen Berechtigungen verfügt, bevor der Vorgang fortgesetzt wird. Dadurch wird verhindert, dass Ressourcen aufgrund unzureichender Berechtigungen nur teilweise erstellt werden.

  2. Cluster-Analyse: Ruft die Amazon MSK-Cluster-Konfiguration und Metadaten ab, um den aktuellen Status des Clusters zu verstehen.

  3. Zustandscheck des Brokers: Analysiert die Leistungskennzahlen des Brokers von Amazon, CloudWatch um Leistungsprobleme wie hohe CPU-, Arbeitsspeicher-, Festplattenauslastung oder erschöpftes Guthaben zu identifizieren.

  4. Live-Konnektivitätstest: Stellt einen AWS CloudFormation Stack mit einer VPC-attached AWS Lambda Amazon-Funktion bereit, um die DNS-Auflösung und die TCP-Konnektivität zum Amazon MSK-Cluster von der Netzwerkumgebung des Kunden aus zu testen.

  5. Netzwerkpfadanalyse: Verwendet Amazon VPC Reachability Analyzer, um Netzwerkverbindungsprobleme zwischen dem Client und Amazon MSK-Brokern zu diagnostizieren, wenn die Konnektivitätstests fehlschlagen.

  6. Statische Netzwerkanalyse: Führt eine Fallback-Analyse von Routentabellen, Netzwerk-ACLs und Sicherheitsgruppenregeln durch, wenn Lambda-Tests nicht verfügbar sind.

  7. Überprüfung der IAM-Authentifizierung: Analysiert für IAM-authenticated Verbindungen (Ports 9098 oder9198) die IAM-Richtlinien, um die erforderlichen Berechtigungen, insbesondere die Berechtigungen, zu überprüfen. kafka-cluster:Connect

  8. Ressourcenbereinigung: Entfernt automatisch den CloudFormation Stack und die zugehörigen Ressourcen, die zum Testen erstellt wurden.

  9. Umfassende Berichterstattung: Stellt die Ergebnisse zusammen und enthält umsetzbare Empfehlungen zur Lösung festgestellter Probleme.

Es fallen Gebühren für Amazon VPC Reachability Analyzer an

Dieses Runbook verwendet Amazon VPC Reachability Analyzer zur Diagnose von Netzwerkverbindungsproblemen. Für jede Analyse wird eine Gebühr erhoben. Aktuelle Preisinformationen finden Sie unter Amazon VPC-Preise. Um nur statische Analysen zu verwenden, stellen Sie sicher, dass der Lambda-Konnektivitätstest erfolgreich ist. Wenn der Konnektivitätstest fehlschlägt, führt die Automatisierung den Reachability Analyzer-Schritt automatisch aus.

Parameter des Dokuments

  • AutomationAssumeRole

    Typ: Zeichenfolge

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

  • ClusterARN

    Typ: Zeichenfolge

    Beschreibung: (Erforderlich) Der Amazon-Ressourcenname des Amazon MSK-Clusters zur Fehlerbehebung.

    Zulässiges Muster: ^arn:(aws|aws-cn|aws-us-gov):kafka:[a-z0-9\-]+:\d{12,13}:cluster\/[a-zA-Z0-9\-]{1,64}\/[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}(-[0-9a-z]{1,2})?$

  • BootstrapEndpoints

    Typ: Zeichenfolge

    Beschreibung: (Erforderlich) Die Amazon MSK-Cluster-Bootstrap-Endpunkte. Akzeptiert einen einzelnen Endpunkt im hostname:port Format oder mehrere durch Kommas getrennte Endpunkte (z. B.). broker1.example.com:9092,broker2.example.com:9092,broker3.example.com:9092

    Zulässiges Muster: ^[a-zA-Z0-9.-]+:[0-9]{1,5}(,[a-zA-Z0-9.-]+:[0-9]{1,5})*$

  • ClientVPC

    Typ: Zeichenfolge

    Beschreibung: (Erforderlich) Die Amazon VPC-ID, unter der sich der Client befindet, der versucht, eine Verbindung herzustellen.

    Zulässiges Muster: ^vpc-[a-z0-9]{8,17}$

  • ClientSubnet

    Typ: Zeichenfolge

    Beschreibung: (Erforderlich) Die Subnetz-ID, in der sich der Client befindet, der versucht, eine Verbindung herzustellen.

    Zulässiges Muster: ^subnet-[a-z0-9]{8,17}$

  • ClientSecurityGroups

    Typ: Zeichenfolge

    Beschreibung: (Erforderlich) Die Sicherheitsgruppen-ID (s) des Clients, der versucht, eine Verbindung herzustellen. Akzeptiert eine einzelne Sicherheitsgruppe oder mehrere durch Kommas getrennte Sicherheitsgruppen (z. B.sg-abcd1234,sg-0abcdef1234567890).

    Zulässiges Muster: ^sg-[a-z0-9]{8,17}(,sg-[a-z0-9]{8,17})*$

  • LambdaAssumeRole

    Typ: AWS::IAM::Role::Arn

    Beschreibung: (Optional) IAM-Rollen-ARN für die Ausführung von Lambda-Funktionen mit Amazon VPC-Zugriffsberechtigungen. Wenn nicht angegeben, erstellt die Automatisierung eine neue Rolle mit den erforderlichen Berechtigungen.

    Standard: Leere Zeichenfolge

    Zulässiges Muster: ^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b|aws-iso-e|aws-iso-f|aws-eusc):iam::\d{12}:role/[\w+=,.@/-]+$

  • ClientIAMRole

    Typ: AWS::IAM::Role::Arn

    Beschreibung: (Optional) IAM-Rollen-ARN, der vom Client für die Amazon MSK-Authentifizierung verwendet wird. Nur bei IAM-authenticated Verbindungsproblemen erforderlich (Ports 9098 oder 9198).

    Standard: Leere Zeichenfolge

    Zulässiges Muster: ^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b|aws-iso-e|aws-iso-f|aws-eusc):iam::\d{12}:role/[\w+=,.@/-]+$

  • RetainResources

    Typ: Boolescher Wert

    Beschreibung: (Optional) Ob Network Insights Analysis-Ressourcen nach Abschluss beibehalten werden sollen. Stellen Sie diese true Option ein, um Analyseressourcen zur weiteren Überprüfung aufzubewahren oder false um sie automatisch zu löschen.

    Standard: false

    Zulässige Werte: true, false

Erforderliche IAM-Berechtigungen

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

Für die Automatisierung sind die folgenden Berechtigungen erforderlich:

  • Amazon MSK-Berechtigungen:

    • kafka:DescribeClusterV2

    • kafka:GetBootstrapBrokers

  • CloudWatch Berechtigungen:

    • cloudwatch:GetMetricData

  • CloudFormation Berechtigungen:

    • cloudformation:CreateStack

    • cloudformation:DescribeStacks

    • cloudformation:DescribeStackResources

    • cloudformation:DeleteStack

  • Lambda-Berechtigungen:

    • lambda:CreateFunction

    • lambda:InvokeFunction

    • lambda:GetFunction

    • lambda:DeleteFunction

    • lambda:UpdateFunctionConfiguration

    • lambda:TagResource

  • Amazon EC2- und Amazon VPC-Berechtigungen:

    • ec2:DescribeNetworkInterfaces

    • ec2:DescribeSecurityGroups

    • ec2:DescribeSubnets

    • ec2:DescribeVpcs

    • ec2:DescribeRouteTables

    • ec2:DescribeNetworkAcls

    • ec2:CreateNetworkInsightsPath

    • ec2:StartNetworkInsightsAnalysis

    • ec2:DescribeNetworkInsightsPaths

    • ec2:DescribeNetworkInsightsAnalyses

    • ec2:DeleteNetworkInsightsPath

    • ec2:DeleteNetworkInsightsAnalysis

    • ec2:DeleteNetworkInterface

  • IAM-Berechtigungen (nur erforderlich, wenn sie nicht LambdaAssumeRole bereitgestellt werden):

    • iam:CreateRole

    • iam:PutRolePolicy

    • iam:AttachRolePolicy

    • iam:GetRole

    • iam:TagRole

    • iam:PassRole

    • iam:DeleteRole

    • iam:DeleteRolePolicy

    • iam:DetachRolePolicy

  • IAM-Berechtigungen (für die Analyse der IAM-Authentifizierung, sofern sie ClientIAMRole bereitgestellt werden):

    • iam:GetRole

    • iam:GetRolePolicy

    • iam:ListRolePolicies

    • iam:ListAttachedRolePolicies

    • iam:GetPolicy

    • iam:GetPolicyVersion

  • CloudWatch Protokolliert Berechtigungen:

    • logs:CreateLogGroup

    • logs:CreateLogStream

    • logs:PutLogEvents

    • logs:DeleteLogGroup

Um dieses Runbook auszuführen, benötigt der AutomationAssumeRole oder Ihr IAM-Benutzer die folgenden Aktionen. Das folgende Beispiel zeigt eine IAM-Richtlinie mit geringsten Rechten, die Berechtigungen auf bestimmte Ressourcenmuster beschränkt, die von der Automatisierung verwendet werden:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafka:DescribeClusterV2", "kafka:GetBootstrapBrokers" ], "Resource": "arn:aws:kafka:REGION:ACCOUNTID:cluster/*/*" }, { "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeNetworkAcls", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:CreateNetworkInsightsPath", "ec2:StartNetworkInsightsAnalysis", "ec2:DescribeNetworkInsightsPaths", "ec2:DescribeNetworkInsightsAnalyses", "ec2:DeleteNetworkInsightsPath", "ec2:DeleteNetworkInsightsAnalysis", "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackResources" ], "Resource": "arn:aws:cloudformation:REGION:ACCOUNTID:stack/msk-connectivity-test-stack-*/*" }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunction", "lambda:UpdateFunctionConfiguration", "lambda:TagResource" ], "Resource": "arn:aws:lambda:REGION:ACCOUNTID:function:msk-connectivity-test-*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:GetRolePolicy", "iam:ListRolePolicies", "iam:ListAttachedRolePolicies", "iam:GetPolicy", "iam:GetPolicyVersion" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:DeleteRole", "iam:PutRolePolicy", "iam:DeleteRolePolicy", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "iam:TagRole" ], "Resource": "arn:aws:iam::ACCOUNTID:role/msk-connectivity-test-*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::ACCOUNTID:role/msk-connectivity-test-*", "Condition": { "StringEquals": { "iam:PassedToService": "lambda.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DeleteLogGroup" ], "Resource": "arn:aws:logs:REGION:ACCOUNTID:log-group:/aws/lambda/msk-connectivity-test-*" } ] }

Anleitungen

  1. Navigieren Sie zu der Seite in der Konsole AWSSupport-TroubleshootMSKClusterConnection. AWS Systems Manager

  2. Wählen Sie Automatisierung ausführen.

  3. Geben Sie für die Eingabeparameter Folgendes ein:

    • AutomationAssumeRole(Fakultativ):

      Der ARN der IAM-Rolle, die es AWS Systems Manager Automation ermöglicht, die Aktionen in Ihrem Namen auszuführen. Wenn keine Rolle angegeben ist, verwendet Systems Manager Automation die Berechtigungen des Benutzers, der dieses Runbook startet.

    • ClusterARN(Erforderlich):

      Geben Sie den ARN des Amazon MSK-Clusters ein, bei dem Verbindungsprobleme auftreten. Sie finden ihn in der Amazon MSK-Konsole oder mithilfe des aws kafka list-clusters Befehls.

    • BootstrapEndpoints(Erforderlich):

      Geben Sie die Bootstrap-Broker-Endpunkte für Ihren Amazon MSK-Cluster ein. Sie finden diese in der Amazon MSK-Konsole unter Cluster-Details oder mithilfe des Befehls. aws kafka get-bootstrap-brokers Trennen Sie mehrere Broker durch Kommas (z. B.b-1.mycluster.abc123.kafka.us-east-1.amazonaws.com:9092,b-2.mycluster.abc123.kafka.us-east-1.amazonaws.com:9092).

    • ClientVPC(Erforderlich):

      Geben Sie die Amazon VPC-ID ein, unter der sich Ihre Client-Anwendung oder Ressource befindet, die versucht, eine Verbindung zum Amazon MSK-Cluster herzustellen.

    • ClientSubnet(Erforderlich):

      Geben Sie die Subnetz-ID ein, in der ClientVPC sich Ihre Client-Ressource befindet. Dies wird für die Bereitstellung der Lambda-Funktion für den Konnektivitätstest verwendet.

    • ClientSecurityGroups(Erforderlich):

      Geben Sie die Sicherheitsgruppen-ID (en) ein, die Ihrer Client-Ressource zugeordnet sind. Trennen Sie mehrere Sicherheitsgruppen durch Kommas (z. B.sg-abc123,sg-def456).

    • LambdaAssumeRole(Fakultativ):

      Wenn Sie eine vorkonfigurierte IAM-Rolle mit Lambda-Ausführung und Amazon VPC-Zugriffsberechtigungen haben, geben Sie deren ARN hier an. Wenn Sie dieses Feld leer lassen, erstellt die Automatisierung eine temporäre Rolle für den Konnektivitätstest.

    • ClientIAMRole(Fakultativ):

      Geben Sie für IAM-authenticated Verbindungen (über die Ports 9098 oder 9198) den ARN der IAM-Rolle an, die Ihr Kunde zur Authentifizierung bei Amazon MSK verwendet. Dadurch kann die Automatisierung die IAM-Berechtigungen für den erforderlichen Amazon MSK-Zugriff analysieren.

    • RetainResources(Fakultativ):

      Wählen Sie diese true Option, wenn Sie die Netzwerkerkenntspfade und Analysen von Amazon VPC Reachability Analyzer für weitere Untersuchungen behalten möchten. Auf false (Standard) setzen, um diese Ressourcen nach Abschluss der Automatisierung automatisch zu bereinigen.

  4. Wählen Sie Ausführen.

  5. Überwachen Sie die Ausführung der Automatisierung. Das Runbook ist in der Regel in 5—15 Minuten abgeschlossen, abhängig von der Komplexität der erforderlichen Netzwerkanalyse.

  6. Detaillierte Ergebnisse finden Sie im Abschnitt „Ergebnisse“:

    • BrokerHealthIssues: Liste der identifizierten Leistungsprobleme des Brokers (hohe CPU-, Arbeitsspeicher-, Festplattenauslastung, Kreditauslastung).

    • NetworkConnectivityIssues: Network-related Probleme wie Fehlkonfigurationen von Sicherheitsgruppen, NACL-Einschränkungen, Routing-Probleme oder Ergebnisse von Amazon VPC Reachability Analyzer.

    • IAMAuthenticationIssues: IAM-Berechtigungsprobleme für IAM-authenticated Verbindungen, einschließlich fehlender oder unzureichender Berechtigungen.

    • AuthenticationDocumentation: Links zu relevanter AWS Dokumentation zur Lösung von Authentifizierungsproblemen.

    • TroubleshootingSummary: Umfassende Zusammenfassung mit umsetzbaren Empfehlungen zur Lösung aller identifizierten Probleme.

Häufig auftretende Probleme und Lösungen

  • Fehlkonfiguration der Sicherheitsgruppe: Stellen Sie sicher, dass die Sicherheitsgruppe des Clients ausgehenden Datenverkehr zur Sicherheitsgruppe des Amazon MSK-Clusters auf dem entsprechenden Port zulässt (9092fürPLAINTEXT, 9094 für TLSSASL_IAM, oder 9096 9198 für SASL_SCRAM IAM-Over). 9098 TLS Die Sicherheitsgruppe des Amazon MSK-Clusters muss eingehenden Datenverkehr von der Sicherheitsgruppe des Kunden zulassen.

  • Netzwerk-ACL-Einschränkungen: Stellen Sie sicher, dass die Netzwerk-ACL des Subnetzes sowohl eingehenden als auch ausgehenden Datenverkehr für die erforderlichen Ports zulässt. Denken Sie daran, dass NACLs zustandslos sind und Regeln für beide Richtungen erfordern.

  • Routing-Probleme: Stellen Sie sicher, dass das Client-Subnetz über eine Route verfügt, um die privaten IP-Adressen des Amazon MSK-Clusters zu erreichen, in der Regel über eine Routing-Tabelle mit lokalem Amazon VPC-CIDR.

  • IAM-Authentifizierungsfehler: Stellen Sie bei IAM-authenticated Verbindungen sicher, dass die Client-IAM-Rolle die kafka-cluster:Connect Aktion in ihrer Richtlinie mit dem richtigen Cluster-ARN als Ressource enthält.

  • Leistungsprobleme bei Brokern: Wenn Broker eine hohe Ressourcenauslastung aufweisen, sollten Sie erwägen, die Broker-Instanztypen zu skalieren, weitere Broker hinzuzufügen oder Konfigurationen zu optimieren producer/consumer .

  • Fehler bei der DNS-Auflösung: Stellen Sie sicher, dass für die Amazon VPC des Clients die DNS-Auflösung aktiviert ist (aktivieren DnsHostnames und aktivieren in den Amazon VPC-Einstellungen auf true DnsSupport gesetzt).

Fehlerbehebung bei der Automatisierung

  • Wenn die Automatisierung bei der CloudFormation Stack-Erstellung fehlschlägt, überprüfen Sie, ob die Ausführungsrolle über die erforderlichen IAM-Berechtigungen zum Erstellen von Lambda-Funktionen, IAM-Rollen und Netzwerkschnittstellen verfügt.

  • Wenn die Lambda-Funktion für den Konnektivitätstest nicht aufgerufen werden kann, stellen Sie sicher, dass sie ClientSubnet über verfügbare IP-Adressen verfügt und die erforderlichen ausgehenden Verbindungen ClientSecurityGroups zulässt.

  • Wenn die Amazon VPC Reachability Analyzer-Analyse fehlschlägt, stellen Sie sicher, dass Sie die Servicequoten für Network Insights-Pfade oder Analysen in Ihrer Region nicht überschritten haben.

  • Wenn die IAM-Richtlinienanalyse fehlschlägt, stellen Sie sicher, dass der ClientIAMRole ARN korrekt ist und dass die Automatisierungsrolle berechtigt ist, die Richtlinien der Rolle abzurufen.

Ressourcen

Systems Manager Automation

Weitere Ressourcen