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

O **Monitor Kafka** da **Elven Platform** permite verificações baseadas em consultas chaves no Kafka. 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 **Apache Kafka** é uma plataforma de streaming distribuída de código aberto, projetada para o processamento e a integração de fluxos de dados em tempo real. Ele opera como um sistema de mensageria pub/sub e como um sistema de armazenamento de logs distribuídos, permitindo o transporte de grandes volumes de dados com alta resiliência e baixa latência. O Kafka organiza os dados em tópicos, que podem ser consumidos por múltiplos clientes simultaneamente, garantindo escalabilidade horizontal. Sua capacidade de lidar com milhões de mensagens por segundo o torna ideal para aplicações como análise de eventos em tempo real, pipelines de dados, integrações entre sistemas e soluções baseadas em microservices.

## **Acessando o Monitoramento Kafka**&#x20;

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

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2F9vlbUX4kpwVC8Yl0hL99%2Fkfkm101.png?alt=media&#x26;token=4d18afed-9632-433b-a97b-9f39b3bf77df" alt=""><figcaption></figcaption></figure>

## **Configuração do Monitoramento**

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 endereço do servidor no campo **Host**,  **Port** e **Topic(nome do tópico do Kafka que você deseja monitorar ou interagir.)**. Já em  **Healthcheck URL, você pode inserir apenas a URL do recurso a ser monitorado.** 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.  &#x20;

Caso tenha autenticação no Kafka, marque a opção Authentication e preencha os campos corretamente de acordo com o mecanismo de segurança implementado pelo cluster. O primeiro passo é inserir o **nome de usuário** no campo “Username” e a **senha** correspondente no campo “Password”. Esses valores são fornecidos pelo administrador do Kafka e são usados para autenticar o cliente. Em seguida, no campo “Mechanism”, selecione o mecanismo de autenticação utilizado pelo broker Kafka.\
\
Caso o cluster utilize um método simples como **PLAIN**, será necessário apenas informar o nome de usuário e a senha. Para configurações mais seguras, como **SCRAM**, o Kafka realiza a autenticação baseada em senhas armazenadas como hashes, proporcionando maior proteção. Se o cluster adotar **OAuth**, a autenticação será feita utilizando tokens OAuth 2.0, o que permite uma integração segura com provedores de identidade. Já no caso de **GSSAPI**, o mecanismo utiliza o protocolo Kerberos para autenticação, oferecendo uma solução robusta e amplamente usada em ambientes corporativos.&#x20;

Além disso, é importante verificar se o Kafka está configurado para utilizar **TLS** ou **SASL**. Caso o cluster implemente criptografia para garantir a segurança das comunicações, marque a opção **TLS** para ativar essa camada de proteção. Se o Kafka utiliza uma camada de autenticação adicional, como **SASL**, marque também a caixa correspondente.&#x20;

### Configuração com User and Password

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2F6v4UF35gf6D2bSDAVZsM%2Fkfkm102.png?alt=media&#x26;token=d5b47300-1f64-4af1-abe1-f5847dcbc044" alt=""><figcaption></figcaption></figure>

### Configuração com User and Password e Authentication

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2F5qqfg7llHbWU9vtOtMCv%2Fkfkm103.png?alt=media&#x26;token=9e6b7379-6812-4eb5-bac4-f1cd8acf6096" alt=""><figcaption></figcaption></figure>

### Configuração com Healthcheck URL

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FX1kfKGoAGMH0bYpM2PQB%2Fkfkm104.png?alt=media&#x26;token=c6f2cc36-9928-452a-8dcd-04869b1c4a85" 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; &#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.

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FkVxbeKov3Z3BbKfVEHhx%2Fkfkm105.png?alt=media&#x26;token=2477acca-c97e-4e3d-83cc-df20654b1d05" 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.&#x20;

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FaM8d7Cei9WWgPTfn6D8D%2Fkfkm106.png?alt=media&#x26;token=439ba233-121b-4277-9f68-5f20a6b6d093" 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. &#x20;

<figure><img src="https://1787513308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fjv1RurNOS0w2Y9bpxizM%2Fuploads%2FKPZwDK8drcOvZsrUOLXE%2Fkfkm107.png?alt=media&#x26;token=fa647780-a16f-4851-bcc2-0b30e7a27873" alt=""><figcaption></figcaption></figure>

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

**Kafka:** Plataforma de streaming de eventos de código aberto, projetada para processar, armazenar e transmitir grandes volumes de dados em tempo real. Com suporte a padrões de publicação e assinatura, filas distribuídas e armazenamento durável, oferece alta escalabilidade, baixa latência e alta disponibilidade. Ideal para aplicações que exigem processamento contínuo de dados, como integração de sistemas, análises em tempo real e monitoramento. Compatível com várias linguagens de programação, é amplamente utilizado em arquiteturas de microsserviços e pipelines de dados modernos.&#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;

**Port:** Porta de acesso ao Kafka.&#x20;

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

**Username (Nome de Usuário):** Identificação única configurada no broker Kafka para autenticar o acesso de um cliente ao cluster.&#x20;

**Password (Senha):** Credencial associada ao nome de usuário, usada para autenticação e autorização no Kafka.&#x20;

**Mechanism (Mecanismo):** Método de autenticação utilizado pelo Kafka, selecionado no formulário. Exemplos:&#x20;

* **PLAIN:** Método simples que utiliza o nome de usuário e senha para autenticação.&#x20;
* **SCRAM (Salted Challenge Response Authentication Mechanism):** Mecanismo mais seguro que utiliza senhas armazenadas como hashes para autenticação.&#x20;
* **OAUTHBEARER:** Utiliza tokens OAuth 2.0 para autenticação, permitindo integração com provedores de identidade.&#x20;
* **GSSAPI (Generic Security Service Application Program Interface):** Autenticação baseada em Kerberos, amplamente usada em ambientes corporativos.&#x20;

**TLS (Transport Layer Security):** Protocolo de criptografia que protege a comunicação entre o cliente e o servidor Kafka, garantindo a confidencialidade dos dados transmitidos.&#x20;

**SASL (Simple Authentication and Security Layer):** Camada de autenticação que oferece suporte a diferentes mecanismos (como PLAIN, SCRAM, OAUTHBEARER e GSSAPI) para autenticação segura no Kafka.&#x20;

**Broker Kafka:** Componente de um cluster Kafka responsável por armazenar e distribuir mensagens entre produtores e consumidores.&#x20;

**Cluster Kafka:** Conjunto de brokers Kafka que trabalham juntos para gerenciar e processar mensagens de forma distribuída e escalável.&#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;
