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:
-
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.
-
Cluster-Analyse: Ruft die Amazon MSK-Cluster-Konfiguration und Metadaten ab, um den aktuellen Status des Clusters zu verstehen.
-
Zustandscheck des Brokers: Analysiert die Leistungskennzahlen des Brokers von Amazon, CloudWatch um Leistungsprobleme wie hohe CPU-, Arbeitsspeicher-, Festplattenauslastung oder erschöpftes Guthaben zu identifizieren.
-
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.
-
Netzwerkpfadanalyse: Verwendet Amazon VPC Reachability Analyzer, um Netzwerkverbindungsprobleme zwischen dem Client und Amazon MSK-Brokern zu diagnostizieren, wenn die Konnektivitätstests fehlschlagen.
-
Statische Netzwerkanalyse: Führt eine Fallback-Analyse von Routentabellen, Netzwerk-ACLs und Sicherheitsgruppenregeln durch, wenn Lambda-Tests nicht verfügbar sind.
-
Überprüfung der IAM-Authentifizierung: Analysiert für IAM-authenticated Verbindungen (Ports
9098oder9198) die IAM-Richtlinien, um die erforderlichen Berechtigungen, insbesondere die Berechtigungen, zu überprüfen.kafka-cluster:Connect -
Ressourcenbereinigung: Entfernt automatisch den CloudFormation Stack und die zugehörigen Ressourcen, die zum Testen erstellt wurden.
-
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.
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.
-
ClusterARNTyp: 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})?$ -
BootstrapEndpointsTyp: Zeichenfolge
Beschreibung: (Erforderlich) Die Amazon MSK-Cluster-Bootstrap-Endpunkte. Akzeptiert einen einzelnen Endpunkt im
hostname:portFormat oder mehrere durch Kommas getrennte Endpunkte (z. B.).broker1.example.com:9092,broker2.example.com:9092,broker3.example.com:9092Zulässiges Muster:
^[a-zA-Z0-9.-]+:[0-9]{1,5}(,[a-zA-Z0-9.-]+:[0-9]{1,5})*$ -
ClientVPCTyp: 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}$ -
ClientSubnetTyp: 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}$ -
ClientSecurityGroupsTyp: 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})*$ -
LambdaAssumeRoleTyp:
AWS::IAM::Role::ArnBeschreibung: (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+=,.@/-]+$ -
ClientIAMRoleTyp:
AWS::IAM::Role::ArnBeschreibung: (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+=,.@/-]+$ -
RetainResourcesTyp: Boolescher Wert
Beschreibung: (Optional) Ob Network Insights Analysis-Ressourcen nach Abschluss beibehalten werden sollen. Stellen Sie diese
trueOption ein, um Analyseressourcen zur weiteren Überprüfung aufzubewahren oderfalseum sie automatisch zu löschen.Standard:
falseZulä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
LambdaAssumeRolebereitgestellt 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
ClientIAMRolebereitgestellt 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
-
Navigieren Sie zu der Seite in der Konsole AWSSupport-TroubleshootMSKClusterConnection
. AWS Systems Manager -
Wählen Sie Automatisierung ausführen.
-
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-clustersBefehls. -
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-brokersTrennen 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
ClientVPCsich 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
trueOption, wenn Sie die Netzwerkerkenntspfade und Analysen von Amazon VPC Reachability Analyzer für weitere Untersuchungen behalten möchten. Auffalse(Standard) setzen, um diese Ressourcen nach Abschluss der Automatisierung automatisch zu bereinigen.
-
-
Wählen Sie Ausführen.
-
Ü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.
-
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,9094fürTLSSASL_IAM, oder90969198fürSASL_SCRAMIAM-Over).9098TLSDie 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:ConnectAktion 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
ClientIAMRoleARN korrekt ist und dass die Automatisierungsrolle berechtigt ist, die Richtlinien der Rolle abzurufen.
Ressourcen
Systems Manager Automation