Logging Centralizado
Parte 1: Preparar el RabbitMQ
Continuando con el desarrollo de nuestro proyecto de centralización de eventos de logging, debemos comenzar a preparar el entorno, empezando por el que hará el transporte de los datos.
Nos saltaremos la instalación y configuración del RabbitMQ y del MongoDB, cuyos sitios web contienen suficiente información acerca de dichos procesos.
Configuración de requerimientos en el RabbitMQ
Necesitamos crear las configuraciones necesarias para que la pueda recibir los datos enviados por nuestra aplicación:
Un exchange
exclusivo, para no interferir con los procesos del exchange
“principal”.
Un binding
de los mensajes entrantes al exchange
hacia una queue
de mensajes, y
Una queue
de destino de los mensajes.
El “exchange” receptor
Estando en la seccion [Add a new exchange], de la pestaña [Exchanges] del RabbitMQ seguimos los pasos siguientes:
- El host virtual lo dejamos en ”/”, que es el host por defecto (salvo otras preferencias).
- Ingresamos el nombre “logger.exchange” (puede ser cualquiera).
- Debe ser de tipo “direct”.
- Los demás valores los dejamos en su configuración por defecto.
- Click en el botón [Add exchange].
La “queue” de destino
Estando en la seccion [Add a new queue], de la pestaña [Queues] del RabbitMQ seguimos los pasos siguientes:
-
El host virtual lo dejamos en ”/”, que es el host por defecto (salvo otras preferencias).
-
Ingresamos el nombre “logger_input_queue” (también puede ser cualquiera).
-
Los demás valores los dejamos en su configuración por defecto.
-
Click en el botón [Add queue].
El “binding” de los mensajes
Ahora, debemos indicar al exchange
cómo direccionar a la queue
de salida los mensajes que recibe. Devuelta en la pestaña [Exchanges] del RabbitMQ seguimos los pasos siguientes:
Click en el exchange
“logger.exchange”, que nos abriá la página de administración del mismo.
En la sección [Bindings], específicamente en la sub sección [Add binding from this exchange]:
Indicamos que los mensajes deben direccionarse a la queue
( [To queue] ) “logger_input_queue”, y
La [Routing key] será “mensaje_de_log”
Click en el botón [Bind].
Con este paso, lo que hacemos es indicar al RabbitMQ, que los mensajes que lleguen al
exchange
“logger.exchange” y tengan larouting key
“mensaje_de_log” serán derivados a laqueue
“logger_input_queue”.
Los mensajes que no tengan esa clave de ruteo, serán directamente eliminados, así que mucho cuidado con esto.
Prueba del circuito en el RabbitMQ
Para probar que lo realizado en los pasos anteriores funciona, podemos publicar un mensaje de pruebas en nuestro nuevo exchange
y verificar que esté llegando a la queue
correctamente.
Estando en la sección [Publish message], dentro de la página de propiedades del exchange
“logger.exchange” seguimos estos pasos:
En el campo [Routing key], ingresamos nuestra clave de ruteo del mensaje “mensaje_de_log”.
En el campo [Payload], escribimos nuestro mensaje de pruebas “Hola logger!”, y
Click en el botón [Publish message].
Si todo está correctmanete configurado, tendriamos que ver que hay un mensaje listo en la queue
“logger_input_queue”.
Si no es así, debemos de revisar qué es lo que se nos pasó por alto de los pasos anteriores.