Network Topology 5.3.2 — fünf Meldungen, fünf Fehler
Die letzten beiden Releases kamen nicht aus einem Plan, sondern aus dem Posteingang. Fünf Leute haben beschrieben, was ihre Karte falsch zeichnet — drei davon mit Screenshots, zwei mit SNMP-Walks, die bewiesen, dass ihre Geräte in Ordnung sind und das Modul nicht.
Ein Geist namens F8
Auf einer Karte hing ein unbekannter Knoten mit dem Namen „F8" an fünf Switches. Daneben standen noch FC, F4 und BC. Die Auflösung stand in den Item-Namen: Aruba-Switches beantworten den CDP-Cache mit der MAC des Nachbarn statt mit seinem Namen. Das Modul schnitt den Wert am ersten Leerzeichen ab — übrig blieben zwei Hex-Ziffern.
Schlimmer als der hässliche Name war die Folge: Alle Geräte, deren MAC mit demselben Byte beginnt, fielen in einen Knoten zusammen. Die Karte zeichnete einen Verteiler, den es nicht gibt, mit Kabeln zu Switches, die nichts miteinander zu tun haben.
MACs bleiben jetzt ganz. Und wo derselbe Port über das andere Protokoll einen richtigen Namen meldet, erkennt das Modul beide Zeilen als dasselbe Kabel. Aus Kante plus Geist wird eine Kante.
Portzähler, die es gab, aber niemand fand
Ein Melder walkte beide Switches durch und bewies, dass lldpRemLocalPortNum sauber zum
ifIndex passt — genau das, was unser Hinweistext als mögliche Ursache nannte. Er hatte recht,
der Hinweis war falsch.
Das Modul suchte Interface-Items nur, wenn „Octets" im Schlüssel stand. Seine heißen
net.if.in[24], so wie in acht offiziellen Zabbix-Templates, unter anderem Cisco Catalyst
3750V2, Nexus 9000, pfSense und OPNsense. Die Kanten schätzten also aus Host-Summen, obwohl die
Zähler danebenlagen. Jetzt werden sie gelesen, und der Hinweistext nennt beide Bedingungen statt
einer.
Eine IP, zwei Kunden
Ein Dienstleister mit mehreren Mandanten auf einer Karte bekam eine Verbindung zu einem fremden
Kunden. Der Grund: 192.168.1.10 gibt es in jedem zweiten Netz, und die Adresstabelle merkte
sich nur den zuletzt eingelesenen Host. Die Kante sah aus wie jede andere, mit 60 Punkten
Sicherheit, und im Qualitäts-Tab stand nichts.
Jetzt gilt dieselbe Regel wie beim Kurznamen: mehrere Kandidaten, keine Kante, dafür ein Eintrag, der beide beim Namen nennt.
Ein Host, der nur aus Ziffern besteht
Wer einen Host 1402 nennt, bekam eine leere Seite und im Browser „Unexpected end of JSON
input". PHP macht aus einem numerischen Schlüssel eine Zahl, und die Funktion, die die Domain
abschneidet, verweigert unter PHP 8 den Dienst. Das Modul starb mitten in der Antwort. Gefunden
wurde es zwei Tage vor der Meldung, in einem Test für einen ganz anderen Fehler.
Zwei neue Tags
nt:uplink = dell-sw-01:Gi1/0/8 für alles, was keinen Nachbarn melden kann — USV, PDU,
Drucker. Das Tag zeichnet die Kante und hängt die Zähler genau dieses Ports daran: Verkehr,
Fehler, Discards, Geschwindigkeit.
nt:lldp = SW-CORE-OLD für Hosts, deren Name auf dem Draht ein anderer ist als der in Zabbix.
Umbenannte Geräte, Inventarname gegen Konfigurationsname. Ohne das Tag melden die Nachbarn einen
Namen, den Zabbix nicht kennt, und die Karte zeichnet einen Geist direkt neben den Host, den sie
meinen.
Geister in drei Stufen, und sie hören auf zu behaupten
Der Schalter für Geisterknoten kennt jetzt aus, nur Netzgeräte, alle. Die mittlere Stufe ist die nützliche: An einem Access-Switch mit 48 Ports sind die meisten Geister Arbeitsplatzrechner, und die verdecken den unüberwachten Switch daneben.
Außerdem zeigte das Detail-Panel für ein Gerät, das gar nicht überwacht wird, eine grüne Pille „Normal" und leere Felder für CPU, Speicher und Ping. Der Tooltip tat dasselbe und lud sogar den Verlauf nach. Beide sagen jetzt „nicht überwacht" und zeigen, was wirklich bekannt ist: über welches Protokoll, von wem gemeldet, MAC, Fähigkeiten, Hersteller.
Was noch dazukam
Reset und Clear im Filter taten sichtbar nichts, weil beide aussahen wie ein frischer
Seitenaufruf und die Karte daraufhin die letzte Auswahl wiederherstellte. Der Cluster-Schalter
speicherte die Wahl korrekt, zeigte aber weiter „auto". Geisterknoten stapelten sich auf einem
Punkt und drängten gespeicherte Anordnungen beiseite. Und aus 5.3.1, das keinen eigenen Beitrag
bekommen hat: TP-Link-JetStream-Switches lassen die TimeMark im Nachbar-Index weg, weshalb die
Discovery dort gar nichts fand — gemeldet samt Fix von lechu2375.
Läuft wo?
Zabbix 7.0 LTS und 7.4, AGPL-3.0, keine Build-Tools nötig. Getestet wurde dieses Release auf 7.0.30 und 7.4.14. Update von 5.3.x: Dateien ersetzen, php-fpm neu laden, einmal hart neu laden. Kein Scan directory, kein Template-Wechsel.
Danke an Shazral, bartlomiejfornalczyk, lechu2375 und den Melder, der mir seine Karte per Mail geschickt hat. Vier von den fünf Fehlern hätte ich ohne eure Screenshots und Walks nicht gefunden.