home / blog / Network Topology 5.5 — schneller, neugieriger, und dann haben wir draufgehauen

Network Topology 5.5 — schneller, neugieriger, und dann haben wir draufgehauen

Hauptmodul und alle fünf Dashboard-Widgets laufen auf Zabbix 7.0 LTS und 7.4. Hier holen: github.com/linuser/zabbix-network-topology/releases

5.5 kam nicht am Stück — es sind eigentlich drei Releases mit drei Stimmungen. 5.5.0 wurde schnell. 5.5.1 wurde neugierig. 5.5.2 wurde misstrauisch. Hier die Kurzfassung von allen dreien.

5.5.0 — dreimal schneller (und das messbar)

Eine volle Karte mit 1000 Hosts, 1425 Kanten und 43 200 Items brauchte früher 4681 ms. Jetzt 1581 ms. Gleiche Karte, gleiche Zahlen auf dem Schirm — nur noch rund ein Drittel der Wartezeit.

Und das ist kein Demo mit drei Geräten drin. Wir fahren ein Labor mit 1000 simulierten SNMP-Geräten hoch — echte LLDP-Nachbartabellen, Interface-Zähler, alles dran — und messen gegen das, denn „schnell" zählt nur in der Größe, in der du es wirklich betreibst. Jede Zahl oben kommt von diesem Stand.

Das Schöne ist, wie wir dahin kamen, denn erst lagen wir dreimal daneben:

  • „Ist natürlich das Kantenbauen." Nein — 2 % der Zeit.
  • „Dann die SQL-Chunk-Größe." Hochgedreht, 13 % geholt. Kein Jackpot.
  • „Gut, holen wir halt weniger Werte." Schlechte Idee: die Per-Port-Werte speisen die Host-Summen, aus „17 Ports down" wäre still „2" geworden. Eine Karte, die schnell und falsch ist, ist einfach falsch.

Was wirklich half: dieselben Werte anders holen — ein fensterbegrenzter Scan statt einer Abfrage pro Item. Der Schritt, der 86 % des Aufbaus fraß, fiel auf ein Viertel. (Den neuen Engpass haben wir gleich ins Changelog geschrieben, damit ihn keiner nochmal suchen muss.)

Und lesbarer wurde es auch: Hostgruppen öffnen sich Ebene für Ebene, statt dir tausend Knoten auf einmal hinzuwerfen — plus ein NetBox-Kabelexport, dessen netter Nebeneffekt ist: NetBox prüft jede Zeile für dich, der erste Import verrät dir also still, wo Doku und Netz nicht übereinstimmen.

Und wenn dein „Netz" eigentlich zwei oder drei Standorte sind: Hostgruppen auswählen, und die Karte zeichnet jede als eigenes, beschriftetes Cluster — die Kabel dazwischen bleiben sichtbar.

Zwei Hostgruppen als getrennte, beschriftete Cluster — Berlin und München Zwei oder mehr Hostgruppen wählen, und jede wird ihr eigenes umrandetes Cluster; die Verbindungen zwischen den Standorten bleiben sichtbar. Hier: Berlin und München.

5.5.1 — mehr zeigen, gratis

Alles Neue hier ist aus Daten gebaut, die das Modul ohnehin schon holt. Keine neuen Items, keine Mehrlast.

  • Vierzig Endgeräte, ein Knoten. Ein Switch mit einem Haufen Arbeitsplatzrechner, Telefone und Drucker daran zeichnete früher vierzig kleine Ghost-Knoten, die nichts sagten. Jetzt klappen sie zu einer „N endpoints"-Blase je Switch zusammen — Klick öffnet sie. Echte Netzgeräte (Switches, Router, APs) werden nie eingeklappt, die Topologie bleibt also sichtbar.
  • Traffic und Laufzeit, direkt am Kabel. Über eine Verbindung fahren oder sie anklicken — und du bekommst eine kleine RX/TX-Kurve je Port, dazu, wie lange der Link schon steht. Lag alles schon bereit, wir haben es nur angefangen zu zeigen.
  • Aus einem Ghost einen Host machen. Ein Gerät per LLDP/CDP gesehen, das noch nicht in Zabbix ist? Direkt aus dem Panel zum Host machen, vorbefüllt und dort platziert, wo es auf der Karte liegt. Kein Name, nur eine MAC? Wir schlagen den Hersteller für dich nach — und sagen ehrlich, wenn die MAC eine lokal vergebene ohne Hersteller ist.

Die unüberwachten Endgeräte eines Switch, zu einem „N endpoints"-Knoten zusammengeklappt Ein Haufen Arbeitsplätze, Telefone und Drucker wird eine Blase — Klick öffnet sie.

RX/TX-Sparkline je Port und Link-Laufzeit im Kanten-Detail-Panel Kabel anklicken: der jüngste Traffic je Port, und wie lange der Link schon steht.

Dazu ein Fix, den wir erst an echter Hardware fanden: ein Switch, der über LLDP alles meldet außer seinem Namen, verschwand bisher komplett von der Karte. Jedes Fake-Gerät im Testlabor hatte einen Namen — nur ein echtes zeigte die Lücke. Jetzt ist er da.

5.5.2 — CI grün, und wir haben’s trotzdem nicht geglaubt

Mit 5.5.1 waren alle siebzehn CI-Checks grün. Genau dann sollte man nervös werden — grün heißt nur, die Tests bestehen die Tests, die man selbst geschrieben hat. Also haben wir sechs getrennte Reviews gleichzeitig auf das Ganze losgelassen (Sicherheit, Backend, Frontend, Farben, doppelter Code, Testabdeckung) und jeden Fund erst reproduziert, bevor er gefixt wurde.

Gute Nachricht zuerst: kein Sicherheitsloch. Alles, was vom Draht kommt, wird escaped, jeder Schreibzugriff braucht das volle Rechte-und-CSRF-Programm, und die Port-Probe lässt sich nicht auf Hosts lenken, die du nicht ohnehin siehst.

Die echten Treffer waren zwei Varianten desselben Klassikers — ein Kabel als zwei zeichnen:

  • Ein Gerät, das einen Nachbarn erst ohne Port, dann mit Port meldet, bekam zwei Kanten statt einer — andere Reihenfolge, eine Kante. Die Zahl hing also davon ab, in welcher Reihenfolge Zabbix die Daten zurückgab. Behoben.
  • Die Fake-Kanten — die Internet-Wolke und die neue Endgeräte-Blase — wurden gezählt und gestylt wie echte, gemessene Links. Das verzog die Statistik, übermalte die fette Internet-Linie, und über eine Blase zu fahren feuerte eine Verlaufsabfrage für etwas, das gar kein Host ist. Alles erledigt.

Plus einer fürs Dunkel-Theme, den kein Test je fängt: ein paar Status-Badges hatten hellen Text auf hartkodiertem blassen Hintergrund — top im Hellen, fast unsichtbar im Dunkeln. Mit richtigen Theme-Farben gefixt.

Und dann haben wir den Tests die Lektionen beigebracht: neue Checks für das, was vorher still driften konnte — inklusive der untrusteten LLDP-Nachbarnamen (die heikelsten Daten, die das Modul anfasst). Jeder Fix kam mit einem Test, der ohne ihn fehlschlägt.

Hol’s dir

5.5.2 ist aktuell. Upgrade innerhalb von 5.5 heißt „Ordner tauschen, einmal neu laden" — Anordnungen, Links, Pins und Notizen bleiben alle, wo sie sind. Releases & Installation →

← alle Beiträge