Ir para o conteúdo

Multvendor logs ELK

Este laboratório simula, via Containerlab, a interligação entre três roteadores — Juniper, Huawei e Cisco — com roteamento dinâmico via OSPF, e exportação de logs via Syslog para uma infraestrutura de observabilidade baseada na pilha ELK (Elasticsearch, Logstash, Kibana), utilizando Elastic Agents gerenciados pelo Fleet para coleta e envio dos dados.


1. Descrição

1.1 Objetivo do Lab

O objetivo deste laboratório é simular a exportação e coleta centralizada de logs provenientes de roteadores de diferentes fabricantes (Juniper, Huawei e Cisco) utilizando o protocolo Syslog (UDP 514). A coleta é realizada por Elastic Agents, configurados para receber logs diretamente dos dispositivos e encaminhar os eventos para o Elasticsearch, sob gerenciamento do Fleet Server. A visualização e análise dos logs ocorrem por meio do Kibana, possibilitando uma abordagem moderna de observabilidade multivendor.

1.2 Topologia do Lab

Topologia do Lab

Descrição da Topologia

  • Três roteadores (Juniper, Cisco, Huawei) interligados em topologia em anel com links ponto a ponto /31.
  • Roteamento dinâmico via OSPF entre os roteadores.
  • Exportação de logs via Syslog (UDP/514) para o servidor de monitoramento.
  • Elastic Agent atua como coletor, escutando na porta 514/UDP, parseando os eventos e enviando-os ao Elasticsearch.
  • Fleet Server gerencia e monitora os agentes Elastic.
  • Elasticsearch armazena e indexa os logs recebidos.
  • Kibana fornece a interface gráfica para visualização, busca e correlação dos logs.
  • Rede externa br-lab conecta os roteadores à infraestrutura de monitoramento baseada em ELK.

2. Aplicações

Exemplos de Aplicações

Este laboratório constitui uma base para experimentação acadêmica e aplicada em monitoramento, observabilidade e análise de eventos em ambientes multivendor, com foco no uso do Elastic Stack e Fleet Management.

Possíveis Aplicações:

  • Treinamento NOC/SOC multivendor – Simulação prática de exportação e análise de logs em ambiente Juniper, Huawei e Cisco.
  • Validação da coleta Syslog – Teste de compatibilidade e parsing de logs via Elastic Agents sem uso de Logstash.
  • Visualização em tempo real – Criação de dashboards no Kibana para eventos e métricas de rede.
  • Monitoramento centralizado – Uso do Fleet para gerenciar agentes e políticas de coleta de forma unificada.
  • Ensino de integração de observabilidade – Aplicação educacional sobre Syslog, Elastic Agents, Fleet, Elasticsearch e Kibana em redes multivendor.

3. Requisitos

Abaixo estão listados os requisitos mínimos de hardware e software necessários para executar o laboratório. Certifique-se de incluir as ferramentas essenciais, como Containerlab e Docker, além da rede br-lab previamente criada. para saber mais sobre este itens acesse:

E tenha a stack ELK previamente instalado e configurado para ingestão de logs, para saber mais sobre a instalação acesse: Configurando Syslog no ELK

Tabela de Requisitos Minimos:

Requisito Detalhes
CPUs 6 vCPUs
Memória RAM 16 GB
Espaço em Disco 20 GB (recomendado)
Containerlab 0.45.0 ou superior
Docker Engine 23.0.3 ou superior
Imagens vr-vjunos:23.2R1.14, vrnetlab/huawei_vrp:ne40e-8.180, xrd-control-plane:7.10.2
Rede Docker br-lab

Atenção

Verifique se o seu processador possui suporte à virtualização por hardware e se essa funcionalidade está ativada na BIOS/UEFI.
- Em processadores Intel, essa tecnologia é chamada de VT-x (Intel Virtualization Technology).
- Em processadores AMD, é conhecida como AMD-V (AMD Virtualization).

Sem essa funcionalidade ativada, as imagens como o vJunos-router não funcionarão corretamente.


4. Implantando o Lab

Você pode realizar a implantação por meio de um script pronto ou configurar manualmente os arquivos do lab.

4.1 Implantação Pronta

Este método permite ao usuário baixar uma versão pré-montada do laboratório, com a topologia e as configurações já definidas. Basta baixar o repositório e seguir para o início da execução.

Dica

A implantação pronta é útil para quem deseja começar rapidamente com um ambiente configurado.

Baixando o Lab

Execute o script abaixo para baixar e configurar o laboratório automaticamente:

curl -L -o get.sh "https://git.rnp.br/redes-abertas/labs/-/raw/main/logs-elk-multvendor/get.sh" && sh get.sh && cd logs-elk-multvendor
curl -L -o get.bat "https://git.rnp.br/redes-abertas/labs/-/raw/main/logs-elk-multvendor/get.bat" && call get.bat && cd logs-elk-multvendor

Dica

No Linux/Mac, use chmod +x get.sh antes de executar o script, caso ele não esteja com permissão de execução.


5. Inicializando o Lab

Após o download ou personalização, siga as etapas abaixo para iniciar o laboratório. Execute o comando abaixo dentro do diretório baixado.

sudo containerlab deploy

Esse comando criará os containers dos roteadores, configurará os links e iniciará os serviços de monitoramento.

Depuração

Use docker logs -f <nome_container> para verificar o estado dos serviços, caso algo não funcione.


6. Acesso aos Dispositivos

6.1 IPs e Portas dos Serviços

Dispositivo IP de Acesso Porta(s) Serviço
node1 172.10.10.201 22 SSH
node2 172.10.10.202 22 SSH
node3 172.10.10.203 22 SSH
Fleet Server 172.10.10.110 8220 Ingestão de dados
Elasticsearch 172.10.10.108 9200 Banco de dados
Kibana 172.10.10.109 5601 Interface Web
Graphite 172.10.10.119 8080 Web UI (Graphite)

6.2 Senhas de Acesso

Serviço Usuário Senha
node1 (SSH) admin admin@123
node2 (SSH) clab clab@123
node3 (SSH) admin admin
Kibana elastic admin@123

Verificação de Inicialização

Antes de acessar os serviços, use docker ps e verifique os logs dos containers para garantir que estão funcionando corretamente.


7. Observabilidade e Visualização

Atenção

Devido à forma como as configurações são aplicadas no vJunos-router, a configuração do syslog deve ser feita manualmente. Siga o passo a passo abaixo para enviar todos os logs do sistema para o servidor de logs remoto.

Passo a passo

Acesse o node1 via ssh e execute:

configure
  • Entra no modo de configuração do Junos.
  • Todos os comandos seguintes vão alterar a configuração do equipamento.
set system syslog host 172.10.10.110 any any
  • Define o servidor de logs remoto (172.10.10.110) como destino.
  • any any significa: enviar qualquer facility (sistema, kernel, daemon, auth etc.) em qualquer nível de severidade (emergency, alert, critical, warning, info, debug).
  • Na prática: todos os eventos do sistema serão enviados para esse servidor.
set system syslog source-address 172.10.10.201
  • Define o IP de origem dos pacotes de log como 172.10.10.201 (o IP do vJunos-router).
  • Isso garante que o tráfego de syslog saia pela interface que possui esse endereço.
  • É importante para o servidor de logs reconhecer corretamente a origem das mensagens.
commit
  • Aplica as alterações feitas na configuração.

atenção

Após o inicio do Vjunos, pode levar entre 3 a 6 minutos para subir todas as rotas e a configuração funcionar corretamente.

  • Somente após esse comando os logs começam a ser enviados para o destino configurado.

Ao final da implatação você vera os logs no Kibana desta forma:

Exemplo do lab em produção

7.1 Elastic Agent

O Elastic Agent é responsável pela coleta e envio dos logs exportados via Syslog (UDP/514) pelos roteadores Juniper, Huawei e Cisco. Atua como agente unificado sob gerenciamento do Fleet Server, realizando o parsing, enriquecimento e encaminhamento dos dados diretamente ao Elasticsearch.


7.2 Elasticsearch

Banco de dados orientado a documentos utilizado para armazenar e indexar os logs coletados pelos agentes. Permite consultas, agregações e correlações entre eventos de diferentes dispositivos. Acessível pela porta 9200.


7.3 Kibana

Interface web de análise e visualização dos logs armazenados no Elasticsearch. Permite a criação de dashboards, consultas em tempo real e gerenciamento do Fleet. Acessível em https://<seu IP ou localhost>:5601.


7.4 Fleet Server

O Fleet Server é executado no mesmo contêiner do Elastic Agent, unificando as funções de coleta e gerenciamento. Gerencia os agentes Elastic, aplica políticas de coleta, recebe logs via Syslog (UDP/514) e envia os dados ao Elasticsearch. Opera na porta 8220/TCP e é administrado através do Kibana → Management → Fleet.