Aktionen

Zabbix MAC-Adressen an Switchports auslesen und beim Client anzeigen lassen an welchen Switch und Port dieser angeschlossen ist

Aus znilwiki

Version vom 7. Oktober 2026, 10:53 Uhr von BLinz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{AchtungBaustelle}}<br> <u>'''Changelog:</u><br> * 07.10.2026 erste öffentliche Version <br> ---- ==Vorwort== Bei einem Kunden überwachen wir mit Zabbix auch alle CLients. Mit einem stark abgespeckten Template, die Admins interessieren sich an den Clients nur für wenige Dinge wie die Speicherplatzbelegung auf Laufwerk C:, wie schon nicht mehr gebootet wurde, die Seriennummern der Monitore und ob die IP-Adresseinstellungen stimmen.<br> <br> In dem Zuge…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)


Dieses Thema ist noch nicht vollständig! Es wird noch daran gearbeitet!



Changelog:

  • 07.10.2026 erste öffentliche Version



Vorwort

Bei einem Kunden überwachen wir mit Zabbix auch alle CLients. Mit einem stark abgespeckten Template, die Admins interessieren sich an den Clients nur für wenige Dinge wie die Speicherplatzbelegung auf Laufwerk C:, wie schon nicht mehr gebootet wurde, die Seriennummern der Monitore und ob die IP-Adresseinstellungen stimmen.

In dem Zuge kam die Idee auf, beim Client auch gleich anzeigen zu lassen, an welchem Switch und Port dieser hängt, unter Latest data kann man sich das hier nun bei allen Clienst anzeigen lassen:


zusätzlich wird die Information auch umgekehrt hinterlegt, man könnte beim Switchport anzeigen lassen welcher Client daran hängt, die Information wird nach dem gleichen Prinzip (mehr dazu weiter in diesem Artikel) hinterlegt:



Das ganze funktioniert wie folgt:

  • Aus den Switchen werden die MAC-Adressen ausgelesen die direkt an einem Switchport hängen, also nicht von einem anderem intelligenten Switch kommen. Ist da ein dummer Switch hinter, werden alle MACs von diesem übernommen.
  • Das geschieht über ein Template welches ein Item vom Typ External Skript anstößt.
  • Pro Switch werden diese Informationen im JSON-Format in einem Verzeichnis auf dem Zabbix-Server gespeichert (unterhalb von {{code|/var/lib/zabbix/externalscripts), pro MAC-Adresse eine Zeile in der Textdatei
  • Die Client-Hosts haben ein Template welches per WMI die aktuelle MAC-Adresse ausliest
  • Mit dieser MAC macht ein Item vom Typ External Skript ein grep auf das Verzeichnis mit den ablegten JSON der Switche. Es bekommt die Zeile mit den Daten im JSON-Format zurück
  • Das JSON wird per Items vom Typ Dependent item in seine Einzelteile zerlegt.


In meinem Client-Template wird in einem 2. Unterordner pro Client ein JSON abgelegt mit diesen Daten. Darauf könnte man mit der gleichen Methode am Switch die Client-IP und Namen hinterlegen. Das habe ich nicht umgesetzt da hier die Beschreibung der Ports gepflegt wird, die Information wäre also redundant.