Akvorado: Monitoramento de Tráfego e Segurança de Rede com Grafana

11 min de leitura Monitoramento e Gestão de Redes
Akvorado: Monitoramento de Tráfego e Segurança de Rede com Grafana

Akvorado: A Evolução do NetFlow e sFlow para Monitoramento de Rede Moderno

No cenário atual de infraestrutura de TI, o monitoramento de rede transcende a simples verificação de "up" ou "down" de um servidor. Profissionais de segurança, engenheiros de rede e administradores de sistemas necessitam de visibilidade profunda sobre o que realmente trafega nos seus enlaces. É aqui que protocolos de fluxo como NetFlow, IPFIX e sFlow se tornam críticos. Historicamente, a implementação dessas soluções envolvia uma complexidade significativa: coleta em hardware de borda, processamento pesado em servidores intermediários e visualização fragmentada.

O Akvorado surge como uma solução moderna, open-source e altamente eficiente para coletar, armazenar e analisar fluxos de rede. Ele substitui a pilha tradicional de ferramentas muitas vezes desatualizadas ou complexas demais, oferecendo uma arquitetura baseada em Go e ClickHouse que garante performance escalável. Este tutorial guiará você através da instalação e configuração básica do Akvorado, demonstrando como ele se integra ao ecossistema de monitoramento contemporâneo, incluindo Prometheus, Grafana e ferramentas de segurança como Wazuh.

Arquitetura e Diferenciais do Akvorado

Antes de partir para a instalação, é fundamental entender por que o Akvorado é uma escolha superior para muitas distribuições Linux modernas em comparação com alternativas clássicas. A arquitetura do Akvorado foi desenhada desde o zero para lidar com volumes massivos de dados de telemetria.

A principal inovação reside na separação entre a camada de coleta e a camada de armazenamento. O componente collector é extremamente leve, responsável apenas por receber os pacotes de fluxo (NetFlow v9/IPFIX ou sFlow) dos roteadores e switches, enriquecendo-os com metadados contextuais e encaminhando-os para o store. O store, por sua vez, utiliza o ClickHouse como banco de dados time-series. Isso permite consultas analíticas complexas em terabytes de dados de fluxo com latência de milissegundos, algo que bancos de dados relacionais tradicionais ou até mesmo o Elasticsearch encontram dificuldade para realizar sem uma infraestrutura massiva.

Diferente do FastNetMon, que foca agressivamente na detecção e mitigação automática de ataques DDoS em tempo real através de blackholing ou BGP flowspec, o Akvorado é primariamente uma ferramenta de observabilidade e análise forense. No entanto, a riqueza dos dados fornecidos pelo Akvorado pode alimentar sistemas de segurança como o Wazuh, criando regras personalizadas para detecção de anomalias. Da mesma forma, enquanto ferramentas como o UptimeKuma verificam a disponibilidade básica de serviços, o Akvorado responde à pergunta: "qual serviço está consumindo minha banda?" e "quem está se comunicando com este endpoint suspeito?".

Pré-requisitos de Infraestrutura

Para seguir este tutorial, você precisará de um ambiente Linux (preferencialmente Debian 12 ou Ubuntu 24.04) com acesso root ou sudo. O Akvorado é distribuído como um binário único ou via pacotes oficiais, o que simplifica a gestão.

Além disso, certifique-se de que sua infraestrutura de rede esteja configurada para enviar fluxos de rede para o servidor onde o Akvorado será instalado. Isso geralmente envolve configurar os roteadores e switches (Cisco, Juniper, Mikrotik, Ubiquiti, etc.) para apontar o destino do NetFlow ou sFlow para o IP e porta UDP do seu servidor Akvorado.

Passo 1: Instalação do Akvorado

O processo de instalação é direto. A equipe do Akvorado mantém repositórios oficiais para as principais distribuições Linux. Vamos utilizar o método via repositório APT para garantir atualizações fáceis no futuro.

Primeiro, instale as dependências necessárias e adicione a chave GPG do repositório:

sudo apt update
sudo apt install -y curl gnupg lsb-release

curl -fsSL https://repo.akvorado.net/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/akvorado-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/akvorado-archive-keyring.gpg] https://repo.akvorado.net/deb stable main" | sudo tee /etc/apt/sources.list.d/akvorado.list

Agora, atualize o índice de pacotes e instale o pacote principal do Akvorado:

sudo apt update
sudo apt install -y akvorado

Após a instalação, você notará que nenhum serviço foi iniciado automaticamente, pois o Akvorado requer configuração inicial. O binário está localizado em /usr/bin/akvorado.

Passo 2: Configuração do Sistema

O Akvorado utiliza arquivos de configuração no formato YAML. A estrutura padrão espera que os arquivos de configuração estejam localizados em /etc/akvorado/. Vamos criar a configuração básica para o coletor e o armazenamento.

Crie o arquivo de configuração do coletor (collector.yaml):

sudo nano /etc/akvorado/collector.yaml

Insira a seguinte configuração base. Esta configuração define onde o coletor ouvirá os fluxos NetFlow (porta 2055) e sFlow (porta 6343), bem como as credências para conectar ao banco de dados:

collector:
  listen_netflow: ":2055"
  listen_sflow: ":6343"
  store:
    type: clickhouse
    address: "http://localhost:8123"
    database: akvorado
    user: default
    password: ""

Em seguida, crie a configuração do armazenamento (store.yaml). Esta parte define como os dados serão persistidos no ClickHouse:

sudo nano /etc/akvorado/store.yaml

Conteúdo sugerido:

store:
  type: clickhouse
  address: "http://localhost:8123"
  database: akvorado
  user: default
  password: ""
  table_ttl: "30d"

Nota de Segurança: Em ambientes de produção, é altamente recomendável definir uma senha forte para o usuário do ClickHouse e ajustar as permissões de firewall para permitir o acesso apenas às interfaces de loopback ou redes confiáveis se o Collector e o Store estiverem em máquinas separadas.

Passo 3: Instalação e Configuração do ClickHouse

O Akvorado depende fortemente do ClickHouse. Se você ainda não o possui instalado, pode instalá-lo via Docker ou via pacote nativo. Para este tutorial, utilizaremos o método via pacote para manter a simplicidade, mas o uso de containers é igualmente válido e muitas vezes preferido em ambientes microserviçados.

sudo apt install -y clickhouse-server clickhouse-client

Inicie e habilite o serviço:

sudo systemctl enable --now clickhouse-server

Crie o banco de dados e as tabelas necessárias. O Akvorado fornece scripts de inicialização, mas você também pode criar manualmente o banco de dados:

clickhouse-client --query "CREATE DATABASE IF NOT EXISTS akvorado"

O serviço do Akvorado Store se encarregará de criar as tabelas otimizadas para fluxo na primeira vez que for executado, desde que o banco exista.

Passo 4: Iniciando os Serviços

Agora é hora de iniciar o Akvorado. Como ele roda como um serviço systemd, podemos gerenciá-lo facilmente.

sudo systemctl enable --now akvorado-collector
sudo systemctl enable --now akvorado-store

Verifique o status para garantir que não há erros:

sudo systemctl status akvorado-collector
sudo systemctl status akvorado-store

Se tudo estiver correto, você verá os serviços ativos. Você pode verificar se as portas estão ouvindo com ss -ulnp | grep 2055.

Passo 5: Integração com Prometheus e Grafana

Embora o Akvorado tenha uma interface web própria para consultas rápidas (via API), a integração com o Grafana é o padrão da indústria para dashboards sofisticados. O Akvorado expõe métricas de desempenho do próprio sistema e dos fluxos processados via Prometheus.

No arquivo collector.yaml, adicione a seção de exportação de métricas:

metrics:
  enable: true
  listen: ":9100"
  prometheus: true

Reinicie o coletor para aplicar as alterações:

sudo systemctl restart akvorado-collector

No Prometheus, adicione o Akvorado como um novo alvo (target) no arquivo prometheus.yml:

  - job_name: 'akvorado'
    static_configs:
      - targets: ['localhost:9100']

Após recarregar o Prometheus, você pode usar as métricas akvorado_collector_flows_total ou akvorado_store_inserts_total para criar painéis no Grafana.

Passo 6: Análise de Segurança e Integração com Wazuh

Aqui reside o verdadeiro poder do Akvorado para profissionais de segurança. Ao invés de apenas monitorar a largura de banda, você pode identificar padrões de comportamento anômalo.

O Wazuh pode ser configurado para ingerir logs ou eventos do Akvorado. Uma abordagem comum é utilizar o integrador do Wazuh ou um script personalizado que consulta a API do Akvorado para detectar:

  • Scanning de Portas: Um único IP externo tentando conectar a centenas de portas internas em curto espaço de tempo.
  • Data Exfiltration: Fluxos de saída com volume anormalmente alto para IPs geolocalizados em regiões não habituais da empresa.
  • C2 Communication: Conexões frequentes e periódicas para IPs maliciosos conhecidos (enriquecidos via feeds de inteligência).

Você pode criar uma regra no Wazuh que, ao detectar um evento de fluxo crítico gerado pelo Akvorado, dispare um alerta de alta severidade. Isso complementa a detecção baseada em assinaturas do Wazuh com a visibilidade contextual de rede do Akvorado.

Conclusão

O Akvorado representa um avanço significativo na forma como administramos e protegemos redes modernas. Ao combinar a eficiência do Go com o poder analítico do ClickHouse, ele oferece uma alternativa robusta às ferramentas legadas. Para sysadmins que já utilizam Prometheus e Grafana, a integração é fluida. Para equipes de segurança que operam com Wazuh, o Akvorado fornece os dados contextuais necessários para transformar alertas brutos em inteligência acionável.

Não confunda o Akvorado com ferramentas de mitigação ativa como o FastNetMon; ele é uma ferramenta de observação. E, embora o UptimeKuma seja excelente para saber se um serviço responde, o Akvorado diz quem está consumindo os recursos desse serviço e se esse consumo é legítimo ou malicioso.

A implementação passo a passo descrita neste tutorial estabelece a base para uma infraestrutura de monitoramento de rede profissional. A partir daqui, você pode expandir suas consultas SQL no ClickHouse, criar dashboards complexos no Grafana e integrar esses dados ao seu SIEM, elevando o nível de maturidade da sua gestão de TI.

Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000