View a markdown version of this page

AWSSupport-TroubleshootMSKClusterConnection - AWS Systems Manager Référence du dossier d’exploitation Automation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWSSupport-TroubleshootMSKClusterConnection

Description

Le AWSSupport-TroubleshootMSKClusterConnection runbook diagnostique et aide à résoudre les problèmes de connectivité du cluster Amazon Managed Streaming pour Apache Kafka. Il effectue une analyse de l'état des courtiers, une validation de la configuration réseau, des tests de connectivité en direct et une vérification de Gestion des identités et des accès AWS l'authentification.

Comment ça marche

Le runbook effectue les opérations suivantes :

  1. Vérification des autorisations : vérifie que le rôle d'exécution dispose de toutes les autorisations requises avant de poursuivre, empêchant ainsi la création partielle de ressources en raison d'autorisations insuffisantes.

  2. Analyse du cluster : extrait la configuration et les métadonnées du cluster Amazon MSK pour comprendre l'état actuel du cluster.

  3. Bilan de santé des courtiers : analyse les indicateurs de santé des courtiers fournis par Amazon CloudWatch afin d'identifier les problèmes de performance tels qu'un processeur, une mémoire, une utilisation du disque ou un solde créditeur épuisé.

  4. Tests de connectivité en direct : déploie une AWS CloudFormation pile avec une VPC-attached AWS Lambda fonction Amazon pour tester la résolution DNS et la connectivité TCP au cluster Amazon MSK depuis l'environnement réseau du client.

  5. Analyse du chemin réseau : utilise Amazon VPC Reachability Analyzer pour diagnostiquer les problèmes de connectivité réseau entre le client et les courtiers Amazon MSK lorsque les tests de connectivité échouent.

  6. Analyse statique du réseau : effectue une analyse de secours des tables de routage, des ACL réseau et des règles des groupes de sécurité lorsque les tests Lambda ne sont pas disponibles.

  7. Vérification de l'authentification IAM : pour les IAM-authenticated connexions (ports 9098 ou9198), analyse les politiques IAM afin de vérifier les autorisations requises, en particulier les kafka-cluster:Connect autorisations.

  8. Nettoyage des ressources : supprime automatiquement la CloudFormation pile et les ressources associées créées pour les tests.

  9. Rapports complets : Compile les résultats avec des recommandations exploitables pour résoudre les problèmes identifiés.

Des frais s'appliquent pour Amazon VPC Reachability Analyzer

Ce runbook utilise Amazon VPC Reachability Analyzer pour diagnostiquer les problèmes de connectivité réseau. Chaque analyse entraîne des frais. Pour obtenir des informations tarifaires actuelles, consultez la rubrique Tarification https://aws.amazon.com/vpc/pricing/ Amazon VPC. Pour utiliser uniquement l'analyse statique, assurez-vous que le test de connectivité Lambda est réussi. Si le test de connectivité échoue, l'automatisation exécute automatiquement l'étape Reachability Analyzer.

Paramètres du document

  • AutomationAssumeRole

    Type : Chaîne

    Description : (Facultatif) Le nom de ressource Amazon (ARN) du rôle Gestion des identités et des accès AWS (IAM) qui permet à Systems Manager Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, Systems Manager Automation utilise les autorisations de l'utilisateur qui démarre ce runbook.

  • ClusterARN

    Type : Chaîne

    Description : (Obligatoire) Le nom de la ressource Amazon du cluster Amazon MSK à résoudre.

    Schéma autorisé : ^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

    Type : Chaîne

    Description : (Obligatoire) Le ou les points de terminaison d'amorçage du cluster Amazon MSK. Accepte un seul point de terminaison au hostname:port format ou plusieurs points de terminaison séparés par des virgules (par exemple,). broker1.example.com:9092,broker2.example.com:9092,broker3.example.com:9092

    Schéma autorisé : ^[a-zA-Z0-9.-]+:[0-9]{1,5}(,[a-zA-Z0-9.-]+:[0-9]{1,5})*$

  • ClientVPC

    Type : Chaîne

    Description : (Obligatoire) L'identifiant Amazon VPC sur lequel réside le client qui tente de se connecter.

    Schéma autorisé : ^vpc-[a-z0-9]{8,17}$

  • ClientSubnet

    Type : Chaîne

    Description : (Obligatoire) L'ID de sous-réseau où réside le client qui tente de se connecter.

    Schéma autorisé : ^subnet-[a-z0-9]{8,17}$

  • ClientSecurityGroups

    Type : Chaîne

    Description : (Obligatoire) Identifiant (s) du ou des groupes de sécurité du client qui tente de se connecter. Accepte un seul groupe de sécurité ou plusieurs groupes de sécurité séparés par des virgules (par exemple,sg-abcd1234,sg-0abcdef1234567890).

    Schéma autorisé : ^sg-[a-z0-9]{8,17}(,sg-[a-z0-9]{8,17})*$

  • LambdaAssumeRole

    Type : AWS::IAM::Role::Arn

    Description : (Facultatif) ARN du rôle IAM pour l'exécution de fonctions Lambda avec des autorisations d'accès Amazon VPC. S'il n'est pas fourni, l'automatisation crée un nouveau rôle avec les autorisations requises.

    Par défaut : chaîne vide

    Schéma autorisé : ^$|^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

    Type : AWS::IAM::Role::Arn

    Description : (Facultatif) ARN du rôle IAM utilisé par le client pour l'authentification Amazon MSK. Nécessaire uniquement lors du dépannage IAM-authenticated des connexions (ports 9098 ou 9198).

    Par défaut : chaîne vide

    Schéma autorisé : ^$|^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

    Type : Boolean

    Description : (Facultatif) S'il faut conserver les ressources de Network Insights Analysis une fois l'opération terminée. Définissez cette option true pour conserver les ressources d'analyse pour un examen plus approfondi, ou false pour les supprimer automatiquement.

    Valeur par défaut : false

    Valeurs valides : true, false

Autorisations IAM requises

Le AutomationAssumeRole paramètre nécessite les actions suivantes pour utiliser correctement le runbook.

L'automatisation nécessite les autorisations suivantes :

  • Autorisations Amazon MSK :

    • kafka:DescribeClusterV2

    • kafka:GetBootstrapBrokers

  • CloudWatch autorisations :

    • cloudwatch:GetMetricData

  • CloudFormation autorisations :

    • cloudformation:CreateStack

    • cloudformation:DescribeStacks

    • cloudformation:DescribeStackResources

    • cloudformation:DeleteStack

  • Autorisations Lambda :

    • lambda:CreateFunction

    • lambda:InvokeFunction

    • lambda:GetFunction

    • lambda:DeleteFunction

    • lambda:UpdateFunctionConfiguration

    • lambda:TagResource

  • Autorisations Amazon EC2 et Amazon VPC :

    • 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

  • Autorisations IAM (requises uniquement lorsqu'elles ne LambdaAssumeRole sont pas fournies) :

    • iam:CreateRole

    • iam:PutRolePolicy

    • iam:AttachRolePolicy

    • iam:GetRole

    • iam:TagRole

    • iam:PassRole

    • iam:DeleteRole

    • iam:DeleteRolePolicy

    • iam:DetachRolePolicy

  • Autorisations IAM (pour l'analyse de l'authentification IAM lorsqu'elles sont ClientIAMRole fournies) :

    • iam:GetRole

    • iam:GetRolePolicy

    • iam:ListRolePolicies

    • iam:ListAttachedRolePolicies

    • iam:GetPolicy

    • iam:GetPolicyVersion

  • CloudWatch Autorisations relatives aux journaux :

    • logs:CreateLogGroup

    • logs:CreateLogStream

    • logs:PutLogEvents

    • logs:DeleteLogGroup

Pour exécuter ce runbook, le AutomationAssumeRole ou votre utilisateur IAM a besoin des actions suivantes. L'exemple suivant illustre une politique IAM de moindre privilège qui étend les autorisations à des modèles de ressources spécifiques utilisés par l'automatisation :

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

Instructions

  1. Accédez à la AWSSupport-TroubleshootMSKClusterConnection page dans la AWS Systems Manager console.

  2. Choisissez Execute automation (Exécuter l’automatisation).

  3. Pour les paramètres d'entrée, entrez les informations suivantes :

    • AutomationAssumeRole(Facultatif) :

      L'ARN du rôle IAM qui permet à AWS Systems Manager Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, Systems Manager Automation utilise les autorisations de l'utilisateur qui démarre ce runbook.

    • ClusterARN(Obligatoire) :

      Entrez l'ARN du cluster Amazon MSK qui rencontre des problèmes de connectivité. Vous pouvez le trouver dans la console Amazon MSK ou à l'aide de la aws kafka list-clusters commande.

    • BootstrapEndpoints(Obligatoire) :

      Entrez le ou les points de terminaison du broker Bootstrap pour votre cluster Amazon MSK. Vous pouvez les trouver dans la console Amazon MSK sous Détails du cluster, ou en utilisant la aws kafka get-bootstrap-brokers commande. Pour plusieurs courtiers, séparez-les par des virgules (par exemple,b-1.mycluster.abc123.kafka.us-east-1.amazonaws.com:9092,b-2.mycluster.abc123.kafka.us-east-1.amazonaws.com:9092).

    • ClientVPC(Obligatoire) :

      Entrez l'identifiant Amazon VPC où se trouve votre application cliente ou votre ressource qui tente de se connecter au cluster Amazon MSK.

    • ClientSubnet(Obligatoire) :

      Entrez l'ID de sous-réseau dans ClientVPC lequel se trouve votre ressource client. Ceci est utilisé pour le déploiement de la fonction Lambda de test de connectivité.

    • ClientSecurityGroups(Obligatoire) :

      Entrez le ou les ID de groupe de sécurité associés à votre ressource client. Pour plusieurs groupes de sécurité, séparez-les par des virgules (par exemple,sg-abc123,sg-def456).

    • LambdaAssumeRole(Facultatif) :

      Si vous disposez d'un rôle IAM préconfiguré avec exécution Lambda et autorisations d'accès Amazon VPC, indiquez son ARN ici. Si vous laissez ce champ vide, l'automatisation crée un rôle temporaire pour le test de connectivité.

    • ClientIAMRole(Facultatif) :

      Pour les IAM-authenticated connexions (utilisant les ports 9098 ou 9198), indiquez l'ARN du rôle IAM que votre client utilise pour s'authentifier auprès d'Amazon MSK. Cela permet à l'automatisation d'analyser les autorisations IAM pour l'accès Amazon MSK requis.

    • RetainResources(Facultatif) :

      Définissez cette option true si vous souhaitez conserver les informations, les chemins et les analyses du réseau Amazon VPC Reachability Analyzer pour des recherches plus approfondies. Réglez sur false (par défaut) pour nettoyer automatiquement ces ressources une fois l'automatisation terminée.

  4. Sélectionnez Execute (Exécuter).

  5. Surveillez l'exécution de l'automatisation. Le runbook se termine généralement en 5 à 15 minutes, selon la complexité de l'analyse du réseau requise.

  6. Consultez la section Résultats pour obtenir des résultats détaillés :

    • BrokerHealthIssues: Liste des problèmes de performance des courtiers identifiés (processeur, mémoire, utilisation du disque, épuisement du crédit).

    • NetworkConnectivityIssues: Network-related problèmes tels que des erreurs de configuration des groupes de sécurité, des restrictions NACL, des problèmes de routage ou des résultats de l'analyse d'accessibilité d'Amazon VPC.

    • IAMAuthenticationIssues: problèmes d'autorisation IAM pour les IAM-authenticated connexions, notamment autorisations manquantes ou insuffisantes.

    • AuthenticationDocumentation: liens vers la AWS documentation pertinente pour résoudre les problèmes d'authentification.

    • TroubleshootingSummary: résumé complet avec des recommandations pratiques pour résoudre tous les problèmes identifiés.

Problèmes courants et résolutions

  • Mauvaise configuration du groupe de sécurité : assurez-vous que le groupe de sécurité du client autorise le trafic sortant vers le groupe de sécurité du cluster Amazon MSK sur le port approprié (9092pourPLAINTEXT, 9094 pour TLSSASL_SCRAM, 9096 pour ou 9098 9198 pour SASL_IAM IAM over). TLS Le groupe de sécurité du cluster Amazon MSK doit autoriser le trafic entrant en provenance du groupe de sécurité du client.

  • Restrictions ACL réseau : vérifiez que l'ACL réseau du sous-réseau autorise à la fois le trafic entrant et sortant pour les ports requis. N'oubliez pas que les NACL sont apatrides et nécessitent des règles dans les deux sens.

  • Problèmes de routage : assurez-vous que le sous-réseau client dispose d'un itinéraire pour atteindre les adresses IP privées du cluster Amazon MSK, généralement via une table de routage avec l'adresse CIDR Amazon VPC locale.

  • Échecs d'authentification IAM : pour IAM-authenticated les connexions, vérifiez que le rôle IAM du client comporte l'kafka-cluster:Connectaction dans sa politique avec l'ARN de cluster approprié comme ressource.

  • Problèmes liés aux performances des courtiers : si les courtiers affichent une utilisation élevée des ressources, envisagez d'augmenter le nombre de types d'instances de courtier, d'ajouter d'autres courtiers ou d'optimiser producer/consumer les configurations.

  • Échecs de résolution DNS : vérifiez que la résolution DNS est activée sur le client Amazon VPC (activez DnsHostnames et activez sur DnsSupport true dans les paramètres Amazon VPC).

Résolution des problèmes liés à l'automatisation

  • Si l'automatisation échoue lors de la création de la CloudFormation pile, vérifiez que le rôle d'exécution dispose des autorisations IAM requises pour créer des fonctions Lambda, des rôles IAM et des interfaces réseau.

  • Si la fonction Lambda de test de connectivité ne parvient pas à être invoquée, vérifiez que les ClientSubnet adresses IP sont disponibles et qu'elles ClientSecurityGroups autorisent les connexions sortantes nécessaires.

  • Si l'analyse d'Amazon VPC Reachability Analyzer échoue, assurez-vous de ne pas avoir dépassé les quotas de service pour les chemins ou les analyses du réseau dans votre région.

  • Si l'analyse des politiques IAM échoue, vérifiez que l'ClientIAMRoleARN est correct et que le rôle d'automatisation est autorisé à récupérer les politiques du rôle.

Ressources

Systems Manager Automation

Ressources supplémentaires