home / blog / Network Topology 5.3.2 — cinco relatos, cinco bugs

Network Topology 5.3.2 — cinco relatos, cinco bugs

Os dois últimos releases não vieram de um plano, vieram da caixa de entrada. Cinco pessoas descreveram o que o mapa delas desenhava errado. Três mandaram capturas de tela, duas mandaram walks SNMP que provavam que os switches delas estavam certos e o módulo, não.

Um fantasma chamado F8

Um mapa tinha um nó desconhecido chamado “F8” pendurado em cinco switches, com FC, F4 e BC ao lado. A resposta estava nos nomes dos itens: switches Aruba respondem o cache CDP com o MAC do vizinho em vez do nome dele. O módulo cortava isso no primeiro espaço, e dois dígitos hexadecimais eram tudo o que sobrava.

O nome feio não era bem o problema. Tudo cujo MAC começava com o mesmo byte acabava em um só nó, de modo que o mapa desenhava um ponto de distribuição que não existe, cabeado a switches que não têm nada a ver um com o outro.

Os MACs ficam inteiros agora. E quando a mesma porta também reporta um nome adequado pelo outro protocolo, as duas linhas são reconhecidas como o mesmo cabo. Um link mais um fantasma vira um link.

Contadores de porta que estavam lá o tempo todo

Um relator fez o walk dos dois switches dele e provou que lldpRemLocalPortNum bate com ifIndex — exatamente o que o nosso texto de dica culpava. Ele estava certo, a dica estava errada.

O módulo só procurava itens de interface com “Octets” na chave. Os dele se chamam net.if.in[24], o formato usado por oito templates oficiais do Zabbix, entre eles Cisco Catalyst 3750V2, Nexus 9000, pfSense e OPNsense. Então os links estimavam a partir dos totais do host enquanto os contadores reais estavam ali do lado. Agora eles são lidos, e o texto de dica cita as duas condições em vez de uma.

Um IP, dois clientes

Um provedor de serviços com vários tenants em um mapa recebeu um link para um tenant alheio. O 192.168.1.10 existe em uma a cada duas redes privadas, e a tabela de endereços só lembrava do último host lido. A aresta parecia qualquer outra, 60 pontos de confiança, nada na aba de qualidade.

Agora vale a mesma regra dos nomes curtos: vários candidatos, nenhuma aresta, e um registro que nomeia todos eles.

Um host chamado 1402

Dê a um host um nome só de dígitos e você recebia uma página em branco e “Unexpected end of JSON input” no navegador. O PHP transforma uma chave numérica em int, e a função que remove o domínio se recusa a aceitar um int no PHP 8. A requisição morria no meio. Isso apareceu em um teste para um bug totalmente diferente, dois dias antes de o relato chegar.

Duas novas tags

nt:uplink = dell-sw-01:Gi1/0/8 para qualquer coisa que não consiga reportar um vizinho — um nobreak, um PDU, uma impressora. A tag desenha a aresta e pendura nela os contadores exatamente daquela porta: tráfego, erros, descartes, velocidade.

nt:lldp = SW-CORE-OLD para hosts cujo nome no fio não é o do Zabbix. Dispositivos renomeados, um nome de inventário contra um nome de configuração. Sem ela, os vizinhos reportam algo que o Zabbix nunca ouviu falar, e o mapa desenha um fantasma bem ao lado do host que eles querem dizer.

Fantasmas em três níveis, e eles param de fingir

O botão de fantasmas agora vai de desligado, só equipamento de rede, todos. O do meio é o útil: em um switch de acesso com 48 portas, a maioria dos fantasmas são desktops, e eles enterram o switch não monitorado ao lado.

O painel de detalhes também costumava mostrar um “Normal” verde e campos vazios de CPU, memória e ping para um dispositivo que não é monitorado. O tooltip fazia o mesmo e até buscava o histórico. Ambos agora dizem não monitorado e mostram o que de fato se sabe: por qual protocolo foi visto, quem o reportou, MAC, capacidades, fabricante.

O resto

Reset e Clear no filtro pareciam não fazer nada, porque ambos acabam parecendo um carregamento novo da página, e o mapa gentilmente restaurava a última seleção. O botão de cluster salvava a sua escolha, mas continuava dizendo “auto”. Fantasmas se empilhavam em um único ponto e empurravam layouts salvos para o lado. E, da 5.3.1, que nunca teve um post próprio: switches TP-Link JetStream deixam o TimeMark de fora do índice de vizinhos, então a descoberta não achava nada ali — relatado, com a correção anexada, por lechu2375.

Onde roda

Zabbix 7.0 LTS e 7.4, AGPL-3.0, sem ferramentas de build. Este release foi verificado no 7.0.30 e no 7.4.14. Atualizando da 5.3.x: substitua os arquivos, recarregue o php-fpm, recarregue a página uma vez com refresh forçado. Sem scan directory, sem troca de template.

Obrigado a Shazral, bartlomiejfornalczyk, lechu2375 e a quem me mandou o mapa por e-mail. Quatro desses cinco bugs eu não teria achado sem as suas capturas de tela e walks.

← todos os posts