Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
AWSSupport-TroubleshootMSKClusterConnection
Description (Descripción)
El AWSSupport-TroubleshootMSKClusterConnection manual diagnostica y ayuda a resolver los problemas de conectividad de los clústeres de Amazon Managed Streaming para Apache Kafka. Realiza análisis del estado de los agentes, valida la configuración de la red, realiza pruebas de conectividad en tiempo real y AWS Identity and Access Management verifica la autenticación.
Funcionamiento
El runbook realiza las siguientes operaciones:
-
Verificación de permisos: valida que el rol de ejecución tenga todos los permisos necesarios antes de continuar, lo que evita la creación parcial de recursos por falta de permisos.
-
Análisis de clústeres: recupera la configuración y los metadatos del clúster de Amazon MSK para comprender el estado actual del clúster.
-
Verificación del estado de los corredores: analiza las métricas de estado de los corredores de Amazon CloudWatch para identificar problemas de rendimiento, como el uso excesivo de la CPU, la memoria, el uso del disco o el agotamiento del saldo crediticio.
-
Pruebas de conectividad en tiempo real: implementa una AWS CloudFormation pila con una VPC-attached AWS Lambda función de Amazon para probar la resolución del DNS y la conectividad TCP con el clúster de Amazon MSK desde el entorno de red del cliente.
-
Análisis de rutas de red: utiliza Amazon VPC Reachability Analyzer para diagnosticar problemas de conectividad de red entre el cliente y los agentes de Amazon MSK cuando fallan las pruebas de conectividad.
-
Análisis de red estático: realiza un análisis alternativo de las tablas de rutas, las ACL de red y las reglas de los grupos de seguridad cuando las pruebas de Lambda no están disponibles.
-
Verificación de la autenticación de IAM: en el caso de IAM-authenticated las conexiones (puertos
9098o9198), analiza las políticas de IAM para verificar los permisos necesarios, en particular los permisos.kafka-cluster:Connect -
Limpieza de recursos: elimina automáticamente la CloudFormation pila y los recursos asociados creados para las pruebas.
-
Informes exhaustivos: recopila los hallazgos con recomendaciones prácticas para resolver los problemas identificados.
Se aplican cargos por Amazon VPC Reachability Analyzer
Este manual utiliza Amazon VPC Reachability Analyzer para diagnosticar problemas de conectividad de red. Cada análisis conlleva un coste. Para obtener información actualizada sobre los precios, consulte los precios de Amazon VPC.
Parámetros de documento
-
AutomationAssumeRole
Tipo: cadena
Descripción: (opcional) el Nombre de recurso de Amazon (ARN) del rol de AWS Identity and Access Management (IAM) que permite a Systems Manager Automation realizar las acciones en su nombre. Si no se especifica ningún rol, Systems Manager Automation utiliza los permisos del usuario que comienza este manual de procedimientos.
-
ClusterARNTipo: cadena
Descripción: (obligatorio) El nombre del recurso de Amazon del clúster de Amazon MSK para solucionar el problema.
Valor permitido:
^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})?$ -
BootstrapEndpointsTipo: cadena
Descripción: (Obligatorio) Los puntos finales de arranque del clúster de Amazon MSK. Acepta un único punto final en
hostname:portformato o varios puntos finales separados por comas (por ejemplo,).broker1.example.com:9092,broker2.example.com:9092,broker3.example.com:9092Valor permitido:
^[a-zA-Z0-9.-]+:[0-9]{1,5}(,[a-zA-Z0-9.-]+:[0-9]{1,5})*$ -
ClientVPCTipo: cadena
Descripción: (Obligatorio) El ID de Amazon VPC en el que reside el cliente que intenta conectarse.
Valor permitido:
^vpc-[a-z0-9]{8,17}$ -
ClientSubnetTipo: cadena
Descripción: (Obligatorio) El ID de subred en el que reside el cliente que intenta conectarse.
Valor permitido:
^subnet-[a-z0-9]{8,17}$ -
ClientSecurityGroupsTipo: cadena
Descripción: (Obligatorio) Los ID del grupo de seguridad del cliente que intenta conectarse. Acepta un solo grupo de seguridad o varios grupos de seguridad separados por comas (por ejemplo,
sg-abcd1234,sg-0abcdef1234567890).Valor permitido:
^sg-[a-z0-9]{8,17}(,sg-[a-z0-9]{8,17})*$ -
LambdaAssumeRoleTipo:
AWS::IAM::Role::ArnDescripción: ARN del rol de IAM (opcional) para la ejecución de funciones de Lambda con permisos de acceso a Amazon VPC. Si no se proporciona, la automatización crea un nuevo rol con los permisos necesarios.
Predeterminado: cadena vacía
Valor permitido:
^$|^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+=,.@/-]+$ -
ClientIAMRoleTipo:
AWS::IAM::Role::ArnDescripción: ARN del rol de IAM (opcional) utilizado por el cliente para la autenticación de Amazon MSK. Solo es necesario para solucionar problemas de IAM-authenticated conexión (puertos 9098 o 9198).
Predeterminado: cadena vacía
Valor permitido:
^$|^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+=,.@/-]+$ -
RetainResourcesTipo: Booleano
Descripción: (opcional) Si se deben conservar los recursos de Network Insights Analysis una vez finalizados. Configúrelo
truepara conservar los recursos de análisis para su posterior revisión ofalsepara eliminarlos automáticamente.Valor predeterminado:
falseValores válidos:
true,false
Permisos de IAM necesarios
El parámetro AutomationAssumeRole requiere las siguientes acciones para utilizar el manual de procedimientos correctamente.
La automatización requiere los siguientes permisos:
-
Permisos de Amazon MSK:
-
kafka:DescribeClusterV2 -
kafka:GetBootstrapBrokers
-
-
CloudWatch permisos:
-
cloudwatch:GetMetricData
-
-
CloudFormation permisos:
-
cloudformation:CreateStack -
cloudformation:DescribeStacks -
cloudformation:DescribeStackResources -
cloudformation:DeleteStack
-
-
Permisos de Lambda:
-
lambda:CreateFunction -
lambda:InvokeFunction -
lambda:GetFunction -
lambda:DeleteFunction -
lambda:UpdateFunctionConfiguration -
lambda:TagResource
-
-
Permisos de Amazon EC2 y 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
-
-
Permisos de IAM (solo se requieren cuando no
LambdaAssumeRolese proporcionan):-
iam:CreateRole -
iam:PutRolePolicy -
iam:AttachRolePolicy -
iam:GetRole -
iam:TagRole -
iam:PassRole -
iam:DeleteRole -
iam:DeleteRolePolicy -
iam:DetachRolePolicy
-
-
Permisos de IAM (para el análisis de la autenticación de IAM cuando
ClientIAMRolese proporcionan):-
iam:GetRole -
iam:GetRolePolicy -
iam:ListRolePolicies -
iam:ListAttachedRolePolicies -
iam:GetPolicy -
iam:GetPolicyVersion
-
-
CloudWatch Registra los permisos:
-
logs:CreateLogGroup -
logs:CreateLogStream -
logs:PutLogEvents -
logs:DeleteLogGroup
-
Para ejecutar este manual, el usuario de IAM AutomationAssumeRole o su usuario deben realizar las siguientes acciones. El siguiente ejemplo muestra una política de IAM con privilegios mínimos que limita los permisos a los patrones de recursos específicos utilizados por la automatización:
{ "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-*" } ] }
Instrucciones
-
Navega hasta la página de la consola AWSSupport-TroubleshootMSKClusterConnection
. AWS Systems Manager -
Elija Ejecutar automatización.
-
Para los parámetros de entrada, introduzca lo siguiente:
-
AutomationAssumeRole(Opcional):El ARN del rol de IAM que permite a AWS Systems Manager Automation realizar las acciones en su nombre. Si no se especifica ningún rol, Systems Manager Automation utiliza los permisos del usuario que comienza este manual de procedimientos.
-
ClusterARN(Obligatorio):Introduzca el ARN del clúster de Amazon MSK que tiene problemas de conectividad. Puede encontrarlo en la consola de Amazon MSK o mediante el comando.
aws kafka list-clusters -
BootstrapEndpoints(Obligatorio):Introduzca los puntos finales del agente de arranque de su clúster de Amazon MSK. Puede encontrarlos en la consola de Amazon MSK, en la sección de detalles del clúster, o mediante el comando.
aws kafka get-bootstrap-brokersEn el caso de varios agentes, sepárelos con comas (por ejemplo,b-1.mycluster.abc123.kafka.us-east-1.amazonaws.com:9092,b-2.mycluster.abc123.kafka.us-east-1.amazonaws.com:9092). -
ClientVPC(Obligatorio):Introduzca el ID de Amazon VPC en el que se encuentra la aplicación o el recurso cliente que intenta conectarse al clúster de Amazon MSK.
-
ClientSubnet(Obligatorio):Introduzca el identificador de subred en el
ClientVPClugar donde reside su recurso de cliente. Se usa para la implementación de la función Lambda de prueba de conectividad. -
ClientSecurityGroups(Obligatorio):Introduzca los ID de grupo de seguridad adjuntos a su recurso de cliente. En el caso de varios grupos de seguridad, sepárelos con comas (por ejemplo,
sg-abc123,sg-def456). -
LambdaAssumeRole(Opcional):Si tiene una función de IAM preconfigurada con permisos de ejecución de Lambda y de acceso a Amazon VPC, introduzca su ARN aquí. Si lo deja vacío, la automatización crea un rol temporal para la prueba de conectividad.
-
ClientIAMRole(Opcional):Para IAM-authenticated las conexiones (mediante los puertos 9098 o 9198), proporcione el ARN del rol de IAM que su cliente utiliza para autenticarse en Amazon MSK. Esto permite que la automatización analice los permisos de IAM para el acceso requerido a Amazon MSK.
-
RetainResources(Opcional):Configúrelo
truesi desea conservar la información, las rutas y los análisis de la red del analizador de accesibilidad de Amazon VPC para seguir investigando. Configúrelo enfalse(predeterminado) para eliminar automáticamente estos recursos una vez finalizada la automatización.
-
-
Elija Ejecutar.
-
Supervise la ejecución de la automatización. Por lo general, el manual se completa en 5 a 15 minutos, según la complejidad del análisis de red requerido.
-
Revise la sección Resultados para ver los hallazgos detallados:
-
BrokerHealthIssues: Lista de los problemas de rendimiento del bróker identificados (uso excesivo de CPU, memoria, disco, agotamiento del crédito).
-
NetworkConnectivityIssues: Network-related problemas como errores de configuración de los grupos de seguridad, restricciones de NACL, problemas de enrutamiento o hallazgos del analizador de accesibilidad de Amazon VPC.
-
IAMAuthenticationIssues: problemas con los permisos de IAM para las IAM-authenticated conexiones, incluidos los permisos faltantes o insuficientes. -
AuthenticationDocumentation: Vínculos a la AWS documentación relevante para resolver problemas de autenticación.
-
TroubleshootingSummary: Resumen completo con recomendaciones prácticas para resolver todos los problemas identificados.
-
Problemas y soluciones comunes
-
Configuración incorrecta del grupo de seguridad: asegúrese de que el grupo de seguridad del cliente permita el tráfico saliente al grupo de seguridad del clúster de Amazon MSK en el puerto correspondiente (
9092paraPLAINTEXT, paraTLS,9094para o90969198paraSASL_SCRAMIAM a9098travésSASL_IAMde IAM).TLSEl grupo de seguridad del clúster de Amazon MSK debe permitir el tráfico entrante procedente del grupo de seguridad del cliente. -
Restricciones de ACL de red: compruebe que la ACL de red de la subred permita el tráfico entrante y saliente en los puertos necesarios. Recuerde que las NACL no tienen estado y requieren reglas para ambas direcciones.
-
Problemas de enrutamiento: asegúrese de que la subred del cliente tenga una ruta para llegar a las direcciones IP privadas del clúster de Amazon MSK, normalmente a través de una tabla de rutas con el CIDR local de Amazon VPC.
-
Errores de autenticación de IAM: en el caso de IAM-authenticated las conexiones, verifique que la función de IAM del cliente incluya la
kafka-cluster:Connectacción en su política con el ARN del clúster correcto como recurso. -
Problemas de rendimiento de los agentes: si los agentes utilizan muchos recursos, considere la posibilidad de ampliar los tipos de instancias de los agentes, añadir más agentes u optimizar las configuraciones. producer/consumer
-
Fallos de resolución de DNS: compruebe que la Amazon VPC del cliente tenga habilitada la resolución de DNS (habilite DnsHostnames y habilite el valor DnsSupport establecido en true en la configuración de Amazon VPC).
Solución de problemas de la automatización
-
Si la automatización falla durante la creación de la CloudFormation pila, compruebe que la función de ejecución tenga los permisos de IAM necesarios para crear funciones de Lambda, funciones de IAM e interfaces de red.
-
Si la función Lambda de prueba de conectividad no invoca la función Lambda, compruebe que ClientSubnet haya direcciones IP disponibles y que ClientSecurityGroups permitan las conexiones salientes necesarias.
-
Si el análisis del analizador de accesibilidad de Amazon VPC falla, asegúrese de no haber superado las cuotas de servicio para obtener información, rutas o análisis de red en su región.
-
Si el análisis de políticas de IAM falla, compruebe que el
ClientIAMRoleARN sea correcto y que el rol de automatización tenga permiso para recuperar las políticas del rol.
Recursos
Automatización de Systems Manager