Solución de problemas generales de Amazon MQ
Utilice la información que se proporciona en esta sección para diagnosticar los problemas comunes que se le planteen cuando se trabaje con agentes de Amazon MQ, como los problemas de conexión con su agente y reinicios de los agentes.
No puedo conectarme con la consola web o los puntos de enlace de mi agente.
Si tiene problemas para conectarse con su agente a través de la consola web o los punto de enlace de nivel de cable, le recomendamos que siga estos pasos.
-
Verifique que no está intentando conectarse con su agente desde detrás de un firewall. Es posible que tenga que configurar el firewall para poder acceder al agente.
-
Compruebe si está intentando conectarse al agente mediante un punto de conexión FIPS. Amazon MQ solo es compatible con los puntos de conexión FIPS al utilizar las operaciones de la API, pero no para las conexiones a nivel de cable con la propia instancia del agente.
-
Verifique si la opción Public accessibility (Accesibilidad pública) está configurada en Yes (Sí) para su agente. Si está configurada en No, verifique las reglas de la lista de control de acceso (ACL) de la red de su subred. Si creó una ACL de red personalizada, es posible que deba cambiar las reglas de la ACL de red para permitir el acceso a su agente. Para obtener más información de las redes de Amazon VPC, consulte el tema sobre la habilitación del acceso a Internet en la Guía del usuario de Amazon VPC
-
Verifique las reglas del grupo de seguridad de su agente. Asegúrese de permitir las conexiones a los siguientes puertos:
Los siguientes puertos se agrupan según los tipos de motor porque ActiveMQ en Amazon MQ y RabbitMQ en Amazon MQ para utilizan diferentes puertos para las conexiones.
ActiveMQ en Amazon MQ
Consola web: puerto 8162
OpenWire: puerto 61617
AMQP: puerto 5671
STOMP: puerto 61614
MQTT: puerto 8883
WSS: puerto 61619
-
Ejecute las siguientes pruebas de conectividad de red para su tipo de motor de agente.
Para los agentes sin accesibilidad pública, ejecute las pruebas desde una instancia de Amazon EC2 dentro de la misma Amazon VPC que su agente de Amazon MQ y evalúe las respuestas.
- ActiveMQ on Amazon MQ
-
Para probar la conectividad de red de su agente ActiveMQ en Amazon MQ
-
Abra un nuevo terminal o una ventana de líneas de comandos.
-
Ejecute el comando nslookup para consultar el registro DNS del agente. Para implementaciones en modo activo/en espera, pruebe los puntos de enlace activos y en espera. Los puntos de enlace activos/en espera se identifican agregando el sufijo -1 o -2 al ID único del agente. Reemplace el punto de enlace por la información de su cuenta.
$ nslookup b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-west-2.amazonaws.com
Si la consulta se realiza correctamente, se mostrará un resultado similar al que se incluye a continuación.
Non-authoritative answer:
Server: dns-resolver-corp-sfo-1.sfo.corp.amazon.com
Address: 172.10.123.456
Name: ec2-12-345-123-45.us-west-2.compute.amazonaws.com
Address: 12.345.123.45
Aliases: b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-west-2.amazonaws.com
La dirección IP resuelta debe coincidir con las direcciones IP proporcionadas en la consola de Amazon MQ. Esto indica que el nombre de dominio se está resolviendo correctamente en el servidor DNS y puede pasar al paso siguiente.
-
Ejecute el comando telnet para probar la ruta de red para su agente. Reemplace el punto de enlace por la información de su cuenta. Reemplace port por el número de puerto 8162 de la consola web u otros puertos de nivel de cable para probar otros protocolos si es necesario.
Para las implementaciones en modo activo/en espera, recibirá un mensaje de error Connect failed si ejecuta telnet con el punto de conexión en espera. Se espera que esto suceda, ya que se está ejecutando la propia instancia en espera, no el proceso de ActiveMQ, que no tiene acceso al volumen de almacenamiento de Amazon EFS del agente. Ejecute el comando para ambos puertos de enlace, -1 y -2, y asegúrese de probar tanto las instancias activas como las de espera.
$ telnet b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-west-2.amazonaws.com port
Para la instancia activa, se mostrará un resultado similar al que se incluye a continuación.
Connected to b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-west-2.amazonaws.com.
Escape character is '^]'.
-
Aplique alguna de las siguientes acciones.
-
Si el comando telnet se ejecuta correctamente, verifique la métrica EstablishedConnectionsCount y confirme que el agente no haya alcanzado el límite de conexiones de nivel de cable máximo. Para confirmar si se ha alcanzado el límite, también puede revisar los registros General del agente. Si esta métrica es mayor que cero, hay al menos un cliente conectado actualmente con el agente. Si la métrica muestra cero conexiones, vuelva a realizar la prueba de la ruta telnet y espere al menos un minuto antes de desconectarse, porque las métricas del agente se publican cada un minuto.
-
Si el comando telnet da error, verifique el estado de la interfaz de red elástica del agente y confirme que el estado sea in-use. Cree un registro de flujo de Amazon VPC para la interfaz de red de cada instancia y revise los registros de flujo generados. Busque las direcciones IP que utilizó el agente cuando ejecutó el comando telnet y confirme que los paquetes de conexión, incluso un paquete de retorno, estén ACCEPTED. Para obtener más información y ver un ejemplo de registro de flujo, consulte Ejemplos de entradas del registro de flujo en la Guía para desarrolladores de Amazon VPC.
-
Ejecute el comando curl para verificar la conectividad con la consola web del administrador de ActiveMQ.
$ curl https://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-west-2.amazonaws.com:8162/index.html
Si el comando se ejecuta correctamente, se debe obtener un documento HTML similar al que se incluye a continuación.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Apache ActiveMQ</title>
...
- RabbitMQ on Amazon MQ
-
Para probar la conectividad de red de su agente de RabbitMQ en Amazon MQ
-
Abra un nuevo terminal o una ventana de líneas de comandos.
-
Ejecute el comando nslookup para consultar el registro DNS del agente. Reemplace el punto de enlace por la información de su cuenta.
$ nslookup b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-west-2.amazonaws.com
Si la consulta se realiza correctamente, se mostrará un resultado similar al que se incluye a continuación.
Non-authoritative answer:
Server: dns-resolver-corp-sfo-1.sfo.corp.amazon.com
Address: 172.10.123.456
Name: rabbit-broker-1c23e456ca78-b9000123b4ebbab5.elb.us-west-2.amazonaws.com
Addresses: 52.12.345.678
52.23.234.56
41.234.567.890
54.123.45.678
Aliases: b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-west-2.amazonaws.com
-
Ejecute el comando telnet para probar la ruta de red para su agente. Reemplace el punto de enlace por la información de su cuenta. Puede reemplazar port por el puerto 443 para la consola web y por el 5671 para probar la conexión AMQP de nivel de cable.
$ telnet b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-west-2.amazonaws.com port
Si el comando se ejecuta correctamente, se mostrará un resultado similar al que se incluye a continuación.
Connected to b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-west-2.amazonaws.com.
Escape character is '^]'.
La conexión telnet se cerrará automáticamente después de unos segundos.
-
Aplique alguna de las siguientes acciones.
Si el comando telnet se ejecuta correctamente, verifique la métrica ConnectionCount y confirme que el agente no haya alcanzado el valor configurado en la política max-connections predeterminada. Para confirmar si se ha alcanzado el límite, también puede revisar el grupo de registros Connection.log del agente. Si esta métrica es mayor que cero, hay al menos un cliente conectado actualmente con el agente. Si la métrica muestra cero conexiones, vuelva a realizar la prueba de la ruta telnet. Es posible que deba repetir este proceso si la conexión se cierra antes de que su agente haya publicado nuevas métricas de conexión en CloudWatch. Las métricas se publican cada un minuto.
-
Para los agentes sin accesibilidad pública, si el comando telnet da error, verifique el estado de las interfaces de red elásticas del agente y confirme que el estado sea in-use. Cree un registro de flujo de Amazon VPC para cada interfaz de red y revise los registros de flujo generados. Busque las direcciones IP privadas que utilizó el agente cuando invocó el comando telnet y confirme que los paquetes de conexión, incluso el paquete de retorno, estén ACCEPTED. Para obtener más información y ver un ejemplo de registro de flujo, consulte Ejemplos de entradas del registro de flujo en la Guía para desarrolladores de Amazon VPC.
Este paso no se aplica a los agentes de RabbitMQ en Amazon MQ con accesibilidad pública.
-
Ejecute el comando curl para verificar la conectividad con la consola web del administrador de RabbitMQ.
$ curl https://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-west-2.amazonaws.com:443/index.html
Si el comando se ejecuta correctamente, se debe obtener un documento HTML similar al que se incluye a continuación.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>RabbitMQ Management</title>
...
Mi agente se está ejecutando y puedo verificar la conectividad usando telnet, pero mis clientes no se pueden conectar y están devolviendo excepciones SSL.
Es posible que su certificado de punto de conexión del agente se haya actualizado durante el período de mantenimiento del agente. Los certificados de agente de Amazon MQ se rotan periódicamente para garantizar la disponibilidad y la seguridad continuas de los agentes.
Recomendamos utilizar la entidad de certificación (CA) raíz de Amazon en Amazon Trust Services para autenticar en el almacén de confianza de los clientes. Todos los certificados de agente de Amazon MQ están firmados con esta CA raíz. Al utilizar una CA raíz de Amazon, ya no tendrá que descargar el nuevo certificado de agente de Amazon MQ cada vez que haya una actualización de certificado en el agente.
Creé un agente pero me dio error.
Si el estado del agente está es CREATION_FAILED, haga lo siguiente.
Verifique sus permisos de IAM. Para crear un agente, debe utilizar la política de IAM AmazonMQFullAccess administrada por AWS o tener el conjunto correcto de permisos de Amazon EC2 en la política de IAM personalizada. Para obtener más información sobre los permisos de Amazon EC2 requeridos, consulte Permisos del IAM requeridos para crear un agente de Amazon MQ.
-
Verifique si la subred que está eligiendo para su agente está en una Amazon Virtual Private Cloud (VPC) compartida. Para crear un agente de Amazon MQ en una Amazon VPC compartida, debe crearlo en la cuenta propietaria de Amazon VPC.
Mi agente se reinició y no estoy seguro de porqué.
Si su agente se reinició automáticamente, podría deberse a una de las siguientes razones.
-
Es posible que su agente se haya reiniciado debido a un período de mantenimiento semanal programado. Amazon MQ realiza de forma periódica el mantenimiento del hardware, el sistema operativo o el software del motor de un agente de mensajes. La duración del mantenimiento varía, pero puede durar hasta dos horas, dependiendo de las operaciones programadas para el agente de mensajes. Los agentes pueden reiniciarse en cualquier momento durante el período de mantenimiento de dos horas. Para obtener más información de los períodos de mantenimiento del agente, consulte Programación del período de mantenimiento de un agente de Amazon MQ.
-
Es posible que el tipo de instancias del agente no sea adecuado para la carga de trabajo de la aplicación. Por ejemplo, ejecutar una carga de trabajo de producción en una mq.t3.micro podría hacer que el agente se quede sin recursos. Un uso elevado de la CPU o de la memoria del agente pueden provocar que el agente se reinicie imprevistamente. Para ver la cantidad de CPU y de memoria que está utilizando su agente, utilice las siguientes métricas de CloudWatch para su tipo de motor.
-
ActiveMQ en Amazon MQ: verifique CpuUtilization para obtener el porcentaje de unidades de computación de Amazon EC2 asignadas que utiliza actualmente el agente. Verifique HeapUsage para obtener el porcentaje del límite de memoria JVM de ActiveMQ que el agente usa actualmente.
-
RabbitMQ en Amazon MQ: verifique SystemCpuUtilization para obtener el porcentaje de unidades de computación de Amazon EC2 asignadas que utiliza actualmente el agente. Verifique RabbitMQMemUsed para obtener el volumen de RAM utilizado en bytes, y divídalo por RabbitMQMemLimit para obtener el porcentaje de memoria que utiliza el nodo de RabbitMQ.
Para obtener información de los tipos de instancias del agente y cómo elegir el tipo de instancias adecuado para su carga de trabajo, consulte Broker instance types.