Cómo configurar el clúster RabbitMQ en Ubuntu 18.04 LTS

Instalar el servidor RabbitMQ

RabbitMQ es un software de intermediario de mensajes de código abierto que implementó originalmente el protocolo AMQP (Advanced Message Queuing Protocol), y aunque se ha desarrollado y ampliado para admitir otros protocolos como STOMP (Streaming Text Oriented Messaging Protocol) y MQTT ( transporte de telemetría de Message Queue Server).

Se utiliza un software de cola de mensajes/intermediario de mensajes para enviar y recibir mensajes entre sistemas, aplicaciones y servicios distribuidos. RabbitMQ está escrito en el lenguaje de programación Erlang, ofrece soporte para interfaces de cliente y bibliotecas para todos los principales lenguajes de programación, incluidos Python, NodeJS, Java, PHP, etc.

En este tutorial, le mostraré cómo configurar un clúster RabbitMQ en el servidor Ubuntu 18.04. Instalaré un clúster de RabbitMQ con tres servidores Ubuntu, habilitaré la administración de RabbitMQ y configuraré la política HA para todos los nodos.

requisitos previos

  • 3 o más servidores Ubuntu 18.04
    • 10.0.15.21 hakase-ubuntu01
    • 10.0.15.22 hakase-ubuntu02
    • 10.0.15.23 hakase-ubuntu03
  • Privilegios de raíz

¿Lo que haremos?

  1. Configurar archivo de hosts
  2. Instalar el servidor RabbitMQ
  3. Habilitar complementos de administración
  4. Configurar el cortafuegos UFW
  5. Configurar el clúster de RabbitMQ
  6. Configurar nuevo usuario administrador
  7. Duplicación de la cola de configuración de RabbitMQ
  8. Pruebas

Paso 1: configurar el archivo de hosts

En este paso, editaremos el archivo ‘/etc/hosts’ en todos los servidores y asignaremos la dirección IP de cada servidor como un nombre de host.

Edite el archivo ‘/etc/hosts’ usando el editor vim.

sudo vim /etc/hosts

Ahora pegue la siguiente configuración allí.

10.0.15.21 hakase-ubuntu01
10.0.15.22 hakase-ubuntu02
10.0.15.23 hakase-ubuntu03

Guardar y Salir.

Paso 2: instale el servidor RabbitMQ

Antes de instalar el servidor RabbitMQ, asegúrese de que todos los repositorios estén actualizados.

Ejecute el siguiente comando.

sudo apt update
sudo apt upgrade

Ahora instale los paquetes del servidor RabbitMQ desde el repositorio de Ubuntu usando el comando apt a continuación.

sudo apt install rabbitmq-server -y

Y una vez completada la instalación, inicie el servicio RabbitMQ y permita que se inicie cada vez que se inicie el sistema.

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

El servidor RabbitMQ se ha instalado en Ubuntu 18.04.

Instalar el servidor RabbitMQ

Paso 3: habilite los complementos de administración de RabbitMQ

En este paso, habilitaremos los complementos de administración de RabbitMQ. Es una interfaz que le permite monitorear y manejar el servidor RabbitMQ desde el navegador web, ejecutándose en el puerto TCP predeterminado ‘15672’.

Habilite los complementos de administración de RabbitMQ ejecutando el siguiente comando.

sudo rabbitmq-plugins enable rabbitmq_management

Asegúrese de que no haya ningún error, luego reinicie el servicio RabbitMQ.

sudo systemctl restart rabbitmq-server

Se han habilitado los complementos de administración de RabbitMQ.

Habilitar los complementos de administración de RabbitMQ

Paso 4: configurar el cortafuegos UFW

En este tutorial, habilitaremos el firewall de Ubuntu UFW. Necesitamos abrir algunos puertos que serán utilizados por el servidor RabbitMQ.

Agregue el servicio ssh al firewall UFW y habilite el servicio de firewall.

sudo ufw allow ssh
sudo ufw enable

Ahora agregue nuevos puertos tcp RabbitMQ ‘5672,15672,4369,25672’.

sudo ufw allow 5672,15672,4369,25672/tcp

Luego verifique la lista de puertos del firewall UFW.

sudo ufw status

Configurar el cortafuegos UFW

La configuración del firewall de Ubuntu UFW se completó y estamos listos para configurar el clúster RabbitMQ.

Paso 5: configurar el clúster de RabbitMQ

Para configurar el clúster RabbitMQ, debemos asegurarnos de que el archivo ‘.erlang.cookie’ sea el mismo en todos los nodos. Copiaremos el archivo ‘.erlang.cookie’ en el directorio ‘/var/lib/rabbitmq’ de ‘hakase-ubuntu01’ a otro nodo ‘hakase-ubuntu02’ y ‘hakase-ubuntu03’.

Copie el archivo ‘.erlang.cookie’ usando los comandos scp de ‘hakase-ubuntu01’.

scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/

Asegúrese de que no haya ningún error en ambos servidores.

Configurar el clúster de RabbitMQ

A continuación, debemos configurar ‘hakase-ubuntu02’ y ‘hakase-ubuntu03’ para unirnos al clúster ‘hakase-ubuntu01’.

Nota:

  • Ejecute los siguientes comandos en los servidores hakase-ubuntu02′ y ‘hakase-ubuntu03’.

Reinicie el servicio RabbitMQ y detenga la aplicación.

sudo systemctl restart rabbitmq-server
sudo rabbitmqctl stop_app

Ahora permita que el servidor RabbitMQ en ambos nodos se una al clúster en ‘hakase-ubuntu01’, luego inicie la aplicación.

sudo rabbitmqctl join_cluster [email protected]
sudo rabbitmqctl start_app

Cuando esté completo, verifique el estado del clúster de RabbitMQ.

sudo rabbitmqctl cluster_status

Y obtendrá los resultados de la siguiente manera.

empezar conejomq

Se ha creado RabbitMQ Cluster, con hakase-ubuntu01, hakase-ubuntu02 y hakase-ubuntu03 como miembros.

Paso 6: configurar un nuevo usuario administrador

En este tutorial, crearemos un nuevo usuario administrador para nuestro servidor RabbitMQ y eliminaremos el usuario «invitado» predeterminado. Crearemos un nuevo usuario a partir de ‘hakase-ubuntu01’ y se replicará automáticamente en todos los nodos del clúster.

Agregue un nuevo usuario llamado ‘hakase’ con contraseña ‘[email protected]’.

sudo rabbitmqctl add_user hakase [email protected]

Configure el usuario ‘hakase’ como administrador.

sudo rabbitmqctl set_user_tags hakase administrator

Y otorgue al usuario ‘hakase’ permiso para modificar, escribir y leer todos los vhosts.

sudo rabbitmqctl set_permissions -p / hakase ".*" ".*" ".*"

Ahora elimine el usuario ‘invitado’ predeterminado.

sudo rabbitmqctl delete_user guest

Y verifique todos los usuarios disponibles.

sudo rabbitmqctl list_users

Y obtendrá el resultado de la siguiente manera.

Agregar usuario administrador

Se creó un nuevo usuario administrador de RabbitMQ y se eliminó el usuario «invitado» predeterminado.

Paso 7: Duplicación de la cola de configuración de RabbitMQ

De forma predeterminada, el contenido de una cola dentro de un clúster de RabbitMQ se encuentra en un solo nodo (el nodo en el que se declaró la cola).

Esta configuración es obligatoria, necesitamos configurar el clúster de «política ha» para la replicación y duplicación de colas en todos los nodos del clúster. Si falla el nodo que aloja el maestro de la cola, el espejo más antiguo se promocionará al nuevo maestro siempre que esté sincronizado, según las políticas de «modo ha» y «parámetros ha».

A continuación, se muestra un ejemplo sobre las políticas de ha de RabbitMQ.

Configure una política llamada ‘ha-all’ que todas las colas en el clúster de RabbitMQ reflejarán en todos los nodos del clúster.

sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'

Configure la política ha llamada ‘ha-dos’, en la que todos los nombres de cola comienzan con ‘dos’. se reflejará en los dos nodos del clúster.

sudo rabbitmqctl set_policy ha-two "^two\." \
   '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'

Configure una política de alta disponibilidad llamada ‘ha-nodes’ que contendrá todas las colas cuyo nombre comience con ‘nodes’. Reflejaremos dos nodos específicos ‘hakase-ubuntu02’ y ‘hakase-ubuntu03’ en el clúster.

sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
   '{"ha-mode":"nodes","ha-params":["[email protected]", "[email protected]"]}'

RabbitMQ lista ha políticas.

sudo rabbitmqctl list_policies;

RabbitMQ elimina la política específica de ha.

sudo rabbitmqctl clear_policy ha-two

Configuración de replicación

Paso 8 – Prueba

Abra su navegador web y escriba la dirección IP del nodo con el puerto ‘15672’.

http://10.0.15.21:15672/

Escriba el nombre de usuario ‘hakase’ con la contraseña ‘[email protected]’.

Iniciar sesión en RabbitMQ

Y obtendrá el panel de administración de RabbitMQ como se muestra a continuación.

Tablero RabbitMQ

El estado de todos los nodos del clúster está en funcionamiento.

Ahora haga clic en el menú de la pestaña ‘Administrador’ y haga clic en el menú ‘Usuarios’ al costado.

Y obtendrá un usuario hakase en la lista.

Lista de usuarios

Ahora haga clic en el menú de la pestaña ‘Administrador’ y haga clic en el menú ‘Políticas’ al costado.

Y obtendrá todas las políticas RabbitMQ ha que hemos creado.

Políticas

La instalación y configuración de RabbitMQ Cluster en servidores Ubuntu 18.04 se completó con éxito.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *