# Guia Configuração do Monitor RabbitMQ Queue na Elven Platform

O **Monitor RabbitMQ** da **Elven Platform** permite verificações baseadas em consultas chaves no RabbitMQ. Essa funcionalidade ajuda a configurar verificações contínuas, definir alertas e criar limites para abertura de incidentes automáticos, garantindo que você seja informado rapidamente sobre quaisquer irregularidades na conectividade ou desempenho dos serviços.&#x20;

O **RabbitMQ** é uma plataforma de mensageria de código aberto, projetada para a troca de mensagens entre sistemas distribuídos. Ele segue o modelo de filas de mensagens (message queues) e suporta diversos protocolos de comunicação, como AMQP, MQTT e STOMP. O RabbitMQ é utilizado para gerenciar a comunicação entre componentes de sistemas, permitindo o envio, recebimento e roteamento de mensagens de forma confiável e eficiente. Ele organiza as mensagens em filas, permitindo que os consumidores as processem de forma assíncrona e escalável. Com suporte para alta disponibilidade, clustering e balanceamento de carga, o RabbitMQ é ideal para cenários que exigem comunicação robusta e tolerante a falhas, como integração de sistemas, microservices e processamento de tarefas em segundo plano.&#x20;

**Como a Elven Platform realiza o monitoramento do RabbitMQ:**

O recurso de monitoramento do RabbitMQ executa as seguintes etapas:

* Estabelece uma conexão com o RabbitMQ.
* Cria uma fila chamada “1p-checker”.
* Publica uma mensagem de “ping” na fila.
* Se registra como consumidor dessa fila.
* Consome a mensagem postada.

## **Acessando o Monitoramento RabbitMQ**

* Navegue até o menu principal e clique em **Services Hub**.&#x20;
* Em **Queue**, selecione o item **RabbitMQ.**&#x20;

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2F2L7ubslQrQjFq90L6Omx%2Frmqm01.png?alt=media&#x26;token=28ac6920-088a-4762-bd3d-f6b542e5c2ec" alt=""><figcaption></figcaption></figure>

## **Configuração do Monitoramento**&#x20;

Monitorar a disponibilidade dos seus serviços nunca foi tão simples. Comece dando um nome claro ao recurso que deseja acompanhar (**Resource Name**) para facilitar a identificação. Depois, ajuste o intervalo entre as verificações (**Interval**) e o tempo limite para respostas (**Timeout**).   &#x20;

Selecione onde está o agente de monitoramento (**Checkpoint Cloud**), escolhendo Environment, se não existir você pode criar em **+ Checkpoint**. Após essa configuração, em **Form Type**, você pode optar por **User and Password** ou **Healthcheck URL**. Em User and Password, você deve informar o **nome de usuário** no campo **Username** e a **senha** correspondente no campo **Password**. Em seguida forneça o endereço do servidor nos campos **Protocol**, **Host**, **Port** que por padrão 5674, mas pode ser ajustada caso o serviço esteja configurado em outra port&#x61;**.** &#x20;

Ao configurar sua conexão com o RabbitMQ, você verá duas opções de protocolo: **amqp\://** e **amqps\://**. O primeiro, **amqp\://**, é o protocolo padrão utilizado para comunicação entre o cliente e o servidor RabbitMQ, mas não oferece criptografia, o que significa que a troca de dados não é protegida. Por outro lado, o **amqps\://** oferece uma camada extra de segurança, utilizando SSL/TLS para criptografar a comunicação. Isso garante que os dados trocados entre o cliente e o servidor estejam protegidos contra possíveis interceptações. &#x20;

Além disso, para garantir que o monitoramento do RabbitMQ seja eficaz, é importante que você preencha o campo **Virtual Host (vhost)** corretamente. O **vhost** no RabbitMQ é uma maneira de organizar e isolar diferentes aplicações ou sistemas dentro do mesmo servidor. Cada vhost tem suas próprias filas, exchanges e permissões, permitindo que você mantenha a comunicação entre diferentes sistemas bem organizada e segura. Ao especificar o vhost, você estará direcionando o monitoramento para um espaço específico, facilitando a análise das filas e exchanges de forma mais precisa. Preencher esse campo corretamente ajuda a garantir que você tenha um controle mais claro e eficiente sobre as operações, especialmente em ambientes com múltiplas aplicações ou clientes. \
&#x20;\
Já em  **Healthcheck URL,** você pode inserir apenas a URL do recurso a ser monitorad&#x6F;**.** Lembre-se de que estes campos de **Host e Healthcheck URL** aceitam apenas **URLs**; caso precise utilizar um endereço **IP**, será necessário criá-lo em um **secret** para garantir a segurança e organização das informações.

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FpPMsXzeQmkNofiBpdUCM%2Frmqm02.png?alt=media&#x26;token=abba6789-cef6-4767-8d3d-17e3477616cd" alt=""><figcaption></figcaption></figure>

## **Abertura de Incidentes Automáticos**

Você pode configurar a abertura automática de incidentes para garantir uma resposta rápida a problemas críticos. Para começar, defina a severidade do incidente, permitindo que você priorize de acordo com a urgência. Em seguida, ajuste o **Check Interval**, especificando o intervalo de checagem em segundos para monitorar continuamente o recurso. Isso ajuda a garantir que você esteja sempre um passo à frente, detectando problemas assim que eles surgem.  &#x20;

Além disso, selecione o time que será notificado sempre que um incidente ocorrer e ative a opção **Enable to set up automatic incidents opening** para garantir que a configuração esteja habilitada. Com essa configuração, a plataforma automatiza a gestão de incidentes, tornando o processo de resposta mais ágil e eficiente, sem a necessidade de intervenção manual. Isso garante que sua equipe esteja sempre pronta para resolver qualquer questão com rapidez e precisão. &#x20;

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FYODMi9Ebx4lc2uUMpmfn%2Frmqm03.png?alt=media&#x26;token=43bb79fd-d6c8-4ced-b7fa-803c17adc193" alt=""><figcaption></figcaption></figure>

## **Maintenance Window**

Ainda  temos **Maintenance Window** que é uma funcionalidade essencial para gerenciar períodos de manutenção planejada na sua aplicação. Durante esse intervalo, as verificações são temporariamente pausadas, evitando que o monitoramento, alertas e notificações sejam acionados enquanto você realiza ajustes ou atualizações. Isso permite que a manutenção ocorra de maneira tranquila, sem gerar notificações desnecessárias ou alarmes falsos, garantindo que sua operação siga de forma ordenada e sem interrupções inesperadas nos relatórios de desempenho.    \
&#x20;\
Por exemplo, imagine que você precise atualizar o sistema de pagamento de um e-commerce, realizando ajustes no backend, como a instalação de novos certificados de segurança. Para isso, você pode configurar a **Maintenance Window** para um horário específico, como 13/12/2024, das 14:00 às 14:30. Durante esse período, a Elven Platform suspende as verificações, evitando que o monitoramento registre falhas temporárias ou dispare alertas falsos. Assim, você consegue fazer as alterações necessárias com calma, sabendo que o sistema de monitoramento não será impactado durante a manutenção. Essa abordagem garante que a atualização seja feita de maneira organizada, sem afetar a experiência dos usuários ou gerar notificações indesejadas.

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FbV3LIryChEZlnUNB6KRy%2Frmqm04.png?alt=media&#x26;token=a5d23f71-7eb9-4fb0-a81d-cc6d6b5bdacf" alt=""><figcaption></figcaption></figure>

## **Application Opening Hours**

Ainda, você pode contar com a funcionalidade **Application Opening Hours**, que permite configurar os horários de funcionamento da sua aplicação. Essa funcionalidade é essencial para personalizar o monitoramento com base nos períodos em que sua aplicação está realmente ativa, evitando alertas e notificações fora do horário de operação. Assim, o monitoramento se torna mais alinhado com as necessidades reais do seu negócio, garantindo relatórios mais precisos e uma gestão eficiente.   &#x20;

Por exemplo, imagine que sua aplicação funcione apenas de segunda a sexta-feira, das 09:00 às 18:00. Você pode configurar o **Application Opening Hours** para refletir esse horário, especificando os dias e períodos de funcionamento. Com isso, a Elven Platform desativa automaticamente as verificações fora desses horários, evitando registros de falhas que não afetam os usuários finais e prevenindo alertas desnecessários. Essa abordagem otimiza a análise de desempenho, focando somente nos períodos relevantes e proporcionando uma visão mais clara sobre a saúde da sua aplicação durante seu horário de operação.

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FsisWN3KnnulngOGjiBr9%2Frmqm05.png?alt=media&#x26;token=17d61561-6c66-409a-9eef-8298e2950c09" alt=""><figcaption></figcaption></figure>

## **Glossário de Termos Técnicos**

**RabbitMQ:** Plataforma de mensageria de código aberto baseada em filas de mensagens, usada para comunicação assíncrona e confiável entre sistemas distribuídos. Suporta múltiplos protocolos como AMQP e MQTT, oferecendo alta flexibilidade, escalabilidade e disponibilidade. Ideal para integração de sistemas, microsserviços e processamento de tarefas em segundo plano.&#x20;

**Interval:** Intervalo de tempo entre as verificações automáticas realizadas no monitoramento. &#x20;

**Timeout:** Tempo limite para que o monitoramento receba uma resposta do recurso monitorado antes de registrar uma falha. &#x20;

**Checkpoint Cloud:** Local onde o agente de monitoramento está localizado, podendo ser um ambiente preexistente ou criado pelo usuário. &#x20;

**Host:** Endereço (URL) do recurso monitorado. Caso seja necessário usar um endereço IP, ele deve ser armazenado em um Secret para maior segurança. &#x20;

**Secret:** Recurso utilizado para armazenar informações sensíveis, como endereços IP ou credenciais, garantindo segurança e organização. &#x20;

**Username:** Campo onde é inserido o nome de usuário para autenticação no RabbitMQ.&#x20;

**Password:** Campo onde é inserida a senha correspondente ao nome de usuário para autenticação no RabbitMQ.&#x20;

**Protocol:** Protocolo de comunicação utilizado para a conexão com o RabbitMQ. Pode ser configurado como **amqp\://** (sem criptografia) ou **amqps\://** (com criptografia SSL/TLS).&#x20;

**Host:** Endereço do servidor onde o RabbitMQ está hospedado. Este campo deve ser preenchido com o endereço do servidor para estabelecer a conexão.&#x20;

**Port:** Porta de comunicação para a conexão com o RabbitMQ. O valor padrão é 5674, mas pode ser ajustado se o serviço estiver configurado em outra porta.&#x20;

**Virtual Host (vhost):** Espaço isolado dentro do RabbitMQ para organizar e gerenciar filas, exchanges e permissões. Permite controlar a comunicação de diferentes aplicações ou sistemas dentro do mesmo servidor.&#x20;

**amqp\://:** Protocolo padrão de comunicação sem criptografia para a conexão com o RabbitMQ.&#x20;

**amqps\://:** Protocolo de comunicação que adiciona uma camada de segurança utilizando SSL/TLS, garantindo a criptografia dos dados durante a comunicação com o RabbitMQ.&#x20;

**Healthcheck URL:** URL utilizada para verificar a saúde do servidor RabbitMQ, um método alternativo de autenticação e monitoramento.&#x20;

**Enable to set up automatic incidents opening:** Opção que, quando ativada, habilita a abertura automática de incidentes na detecção de problemas críticos. &#x20;

**Severity (Severidade):** Grau de criticidade atribuído a um incidente, permitindo sua priorização conforme a urgência. &#x20;

**Check Interval:**  \
Intervalo de tempo, em segundos, para realizar verificações contínuas do recurso monitorado. &#x20;

**Maintenance Window:** Funcionalidade que pausa temporariamente o monitoramento, alertas e notificações durante os períodos de manutenção planejada. &#x20;

**Application Opening Hours:** Configuração que define os horários de funcionamento da aplicação, alinhando o monitoramento aos períodos ativos e evitando alertas fora desses horários.&#x20;
