In diesem Beitrag möchte ich euch eine angepasste macmon Klassendefinition für Aruba Instant On Switche vorstellen.
macmon selber hat bisher noch keine vordefinierte Klassendefinition im Angebot. (Stand: Juli 2023 / macmon v5.35.1)
Einleitung
Warum eine eigene Klasse?
Generell werden Klassen, sofern macmon keine Definition hat, dynamisch generiert. Daher sind die Namen der Klassen teilweise kryptisch oder einfach nicht gut lesbar. Zusätzlich sind sie nicht immer vollständig und teilweise funktionieren sie nicht richtig.
Dies ist ein normales Verhalten in macmon. Wer sich die Zeit sparen will eigene Klassen zu erstellen und die nötigen Methoden herauszufinden, der ist hier genau richtig! 😊
Voraussetzung - Was wird benötigt?
- macmon Version
>= 5.35.0 (Vorgängerversionen sollten auch funktionieren)
Ich empfehle grundsätzlich immer die aktuellste Version - Aruba Instant On Firmware
>= 2.7.0 (vorherige Versionen dürften aber auch funktionieren)
<= 2.8.x (die 2.9.x Firmwares funktionieren nicht)
Ich empfehle grundsätzlich immer die aktuellste Version - Aruba Instant On Switch ab den 1930 Modellen
Kleinere Modelle unterstützen das SNMP Management nicht! - Zugang Aruba Instant On über Web
- Zugang macmon mit Adminberechtigungen
Minimum müssen Klassen, Zugangsdaten und Netzwerkgeräte bearbeitet werden können
Definition der Klasse
Folgend wird die macmon Klassendefinition für Aruba Instant On für eine manuelle Anlage oder den Import über die API angeboten.
Manuelle Anlage
Für die manuelle Anlage in macmon bitte einfach eine Klasse erstellen und die Methoden der Tabelle entsprechend auswählen. Die Spalte Typ gibt die nötige Art der Zugangsdaten an.
Vorgang | Methode | lesend / schreibend | Typ |
---|---|---|---|
Inventarstatus auslesen | ENTITY-MIB | lesen | SNMP |
Systeminformationen auslesen | SNMPv2-MIB::system | lesen | SNMP |
Interface Status auslesen | IF-MIB::ifOperStatus | lesen | SNMP |
Interfaces auslesen | IF-MIB::ifEntry | lesen | SNMP |
VLAN auslesen | Q-Bridge (pvid) | lesen | SNMP |
ARP auslesen | MIB-II.ipNetToMediaEntry | lesen | SNMP |
MAC Adressen auslesen | Q-Bridge | lesen | SNMP |
Topologie auslesen | Topologie (LLDP, CDP) | lesen | SNMP |
Dot1X Status auslesen | IEEE8021-PAE-MIB | lesen | SNMP |
Interface (ent)sperren | IF-MIB::ifAdminStatus | schreiben | SNMP |
VLAN setzen | Q-Bridge | schreiben | SNMP |
Dot1X Status setzen | IEEE8021-PAE-MIB | schreiben | SNMP |
Autorisation ändern | - | schreiben | - |
Konfiguration speichern | - | schreiben | - |
macmon API
1. Download Definition als JSON Datei
2. Import JSON über Windows PowerShell
Voraussetzung seitens macmon ist ein Admin Benutzer (oder der "admin" Benutzer selber) mit API Berechtigung.
Das folgende Skript komplett kopieren und in die PowerShell einfügen. Für die Ausführung wird nach IP/FQDN, Benutzername, Passwort und die oben angebotene Datei gefragt. Ein Rückgabewert von 200 zeigt eine erfolgreiche Ausführung an.
Name der Klasse nach Import: "ArubaInstantOn_ITW-YYYYMMTT" (kann in macmon umbenannt werden)
# Parameter abfragen `
$mmhost = Read-Host -Prompt 'macmon IP oder FQDN'; `
$mmuserpw = Get-Credential -Title "Bitte macmon Zugangsdaten eingeben" -Message " "; `
Add-Type -AssemblyName System.Windows.Forms; `
$mmfile = New-Object System.Windows.Forms.OpenFileDialog; `
$null = $mmfile.ShowDialog(); `
# API Call absetzen `
Invoke-WebRequest -SkipCertificateCheck -Uri "https://$mmhost/api/v1.1/networkdeviceclasses" `
-Method POST -ContentType "application/json" -Credential $mmuserpw -InFile $mmfile.Filename;
# Zertifikatschecks deaktivieren für die Dauer der Powershell Sitzung `
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$True} `
# Parameter abfragen `
$mmhost = Read-Host -Prompt 'macmon IP oder FQDN'; `
$mmuserpw = Get-Credential -UserName 'admin' -Message 'macmon Zugangsdaten'; `
Add-Type -AssemblyName System.Windows.Forms; `
$mmfile = New-Object System.Windows.Forms.OpenFileDialog; `
$null = $mmfile.ShowDialog(); `
# API Call absetzen `
Invoke-WebRequest -Uri "https://$mmhost/api/v1.1/networkdeviceclasses" `
-Method POST -ContentType "application/json" -Credential $mmuserpw -InFile $mmfile.Filename
Andere Tools für die Nutzung einer API
Wer mehr mit API arbeiten möchte dem würde ich ein Tool wie Postman ans Herz legen. Mit etwas Einarbeitung lassen sich in der GUI schnell und einfach diverse API Calls ausführen. macmon bietet auch eine Datei zum Download den man als Collection importieren kann. Dann gehts noch schneller 😉