Unifi Umgebung monitoren / Frage zum Exchange Plugin

Hallo,

auf exchange gibt es ein recht aktuelles unifi Plugin. Hat jemand mit dem Teil Erfahrungen? Aktuell lese ich meine Geräte per snmp aus aber die Frage wäre auch on das Plugin mehr kann.

Gruß

Ralf

Welches Plugin meinst du genau? linet-unifi-controller?

Da ich nicht weiß, was die ganzen UniFi-Geräte so per SNMP preis geben, kann ich auch keinen Vergleich anstellen. Generell funktioniert es so, dass nur der Controller abgefragt wird. Die Daten werden dann in Form von Piggybackdaten für andere Hosts zur Verfügung gestellt. Somit muss man auf den ganzen angeschlossenen Geräte kein SNMP konfigurieren und denen auch keine festen IPs zuordnen muss. Ich geb denen normalerweise die IP 127.0.0.1 & setze »no CheckMK agent, no API integratations« und SNMP aus.

Von Gerätetypen her werden… äh… kann ich gerade gar nicht genau sagen, weil ich das Plugin nicht ursprünglich entwickelt habe. Hab nur die Maintenance übernommen & die Konvertierung auf die 2.3.0er API durchgeführt. Anyway, was wir drin haben:

  • Switche:
    • Ports (Status, Admin-Status, Geschwindigkeit, Fehlerrate, Durchsatz)
    • Gerätestatus
    • Firmwareversion
    • Anzahl verbundener User
    • Temperatur
    • Uplink-Gerät/-Port
  • WiFi APs:
    • Frequenzen (2,4 GHz, 5 GHz etc.)
    • SSIDs (Name, Channel, Anzahl Clients, Qualität)
    • Ports (wie Switche)
    • Gerätestatus
    • Firmwareversion
    • Anzahl verbundener User
    • Temperatur
    • Uplink-Gerät/-Port
  • Unifi-Router (hier vor allem die VPN-Netze)

Metriken für alles.

Geplant ist, auch die USVs zu unterstützen. Momentan kommt bei denen nur der eine Netzwerk-Port & die Basis-Infos (Firmware-Status, allgemeiner Gerätestatus) raus, nicht die Batterie-Werte, Eingangsspannung, Ausgangsspannung, Last etc.

Hallo,

dieses Plugin habe ich mir angesehen.

Aktuell habe ich wohl noch ein Problem mit dem Login. Gibt es mehr Doku wie der Zugriff für checkmk einzurichten ist.

habe das Cloud Gateway Max im Einsatz.
Die kleinen USVen scheinen aktuell mit einem NUT Server zu kommunizieren wenn man ihn eingetragen hat.
Gruß

Manuell ausführen & schauen, was passiert. Dazu als Site-User einloggen & dann…

cd ~/local/lib/python3/cmk_addons/plugins/linet_unifi_controller/libexec
./agent_unifi_controller \
  -u admin -p 'AdMiNpAsSsWoRt' \
  --ignore-cert \
  --port 8443 hostname-oder-ip

zu ersetzen:

  • admin & AdMiNpAsSsWoRt durch deine Credentials
  • 8443 durch die Portnummer, unter der die API erreichbar ist
  • hostname-oder-ip durch den auflösbaren Hostnamen oder eine IP, unter der das Gerät erreichbar ist

Gibt auch noch den Parameter --rawapi, mit dem man sich die Python-Datenstrukturen anzeigen lassen kann, die man vom API zurück bekommt.

Moin,
gerade mal getestet aber
api not found try another Port or IP.
Telnet auf port 8443 baut eine Verbindung auf also ist da was aktiv.
Muss ich ggf. auf der unifi Seite noch was konfiguren. Der User den ich nutze ist als admin konfiguriert.
Das Default Beispiel auf der Api Config-Seitebim Controlle funktioniert.

Gruß
Ralf

Es gibt in der Unifi-Welt leider unterschiedliche API-Pfade, und welcher gewählt wird, macht das Plugin von der OS ID abhängig, die es abfragt.

Kannst du bitte mal die Ausgabe von curl -sk https://<hostname-or-ip>:8443 posten?

Es kommt nichts zurück.
Rufe ich curl -v auf sehe ich das eine Verbindung hetgestellt wird.
Gruß

Im Beispielcode in der Controle Plane Config wird mit einem Api Key und folgendem Pfad /proxy/network/integration/v1/sites ausgeführt.
Gruß

Eh… die URL sagt mir nichts. Scheint ein Produkt zu sein, das von dem Plugin nicht unterstützt wird. Was ist das denn für ein Device?

PS: du nutzt auch die IP vom Unifi Controller, ja? Nicht direkt die von einem Switch/einem AP?

UCG Max

Das ist ein Endgerät & kein Controller. Mit Controller sind die Teile gemeint, auf denen die UniFi-Software läuft, mit dem die Endgeräte gemanaget werden, z.B. der UniFi Cloud Key oder das selbst gehostete UniFi Network Controller (oder dieses neue Teil, UniFi OS Server, das den UniFi Network Controller enthält).

1 Like

Hallo,
das sind die relativ ineuen all in one Geräte.
Die steuern die komplette Unifi-Umgebung von der Türklingel über Kameras, USV’en über Switche bis hin zur kompletten Netzwerkstruktur (Firewall; Vlans etc..)
Gruß

Dann werden sie schlicht noch nicht unterstützt, und ich kann dir nicht sagen, wann oder ob sie unterstützt werden.

Ich versuche gerade, URLs zu erraten, unter denen dein Gerät die API genau hat. Kannst du bitte noch mal die Ausgaben der folgenden Befehle posten?

curl -sk https://<host-or-ip>:8443/api/login
curl -sk https://<host-or-ip>:8443/api/auth/login
curl -sk https://<host-or-ip>:8443/proxy/network/api/login
curl -sk https://<host-or-ip>:8443/proxy/network/api/auth/login

Danke.

Hintergrund: diverse Geräte verwenden diverse URLs, sowohl für das Login als auch die späteren API-Zugriffe. Die nötige Logik, die die zu nutzenden URLs bestimmt, ist ziemlich beschissen. In Summe versucht das Modul, den Gerätetyp automatisch zu erkennen, indem es auf die Wurzel-URL (also mit Pfad /) einen Request zu machen und je nach Body dann von einem von zwei URL-Schemata für das Login zu schließen — und hier geht die Auto-Erkennung bei deinem Gerätetypen schon falsch. Es kann somit gut sein, dass ich dafür einen Kommandozeilenparameter & eine Config-Option in der Special Agent-Konfiguration hinzufügen muss, wenn es keinen guten Weg gibt, deinen Gerätetypen zu erkennen.

Hallo,
hilft das weiter?

Nicht probiert aber könnte das der Controller als Software sein?

Gruß

xxx:~$ curl -L ‘https://192.168.1.1/v1/hosts’ -H ‘Accept: application/json’ -H ‘X-API-Key: ’
UniFi OS

Moin,
und erst einmal ein Danke für deine Mühe.

Gruß
Ralf

Ja, ich kenn den OS Server. Das Problem ist bisher aber die Auto-Erkennung, ob es sich um den handelt oder nicht. Und die funktioniert auf unterschiedlichen Geräten leider unterschiedlich. Sprich wenn ich mir den installiere, dann ist noch lange nicht gesagt, dass die Implementation auf deinem Gerät auch genau so läuft. Erfahrungsgemäß… nicht.

Kannst du mir bitte auch noch mal die Ausgabe der vier curls schicken, nach der ich oben gefragt hab? Danke.

Bei mir lokal hab ich auch schon eine Anpassung implementiert, sodass die Login-URL automatisch erkannt wird, indem einfach alle bekannten Login-URLs ausprobiert werden, was dann als weiteres Merkmal für die OS-Typen-Erkennung genutzt wird. Das könnte bei Geräten wie deinem helfen. Aber dafür bräuchte ich einmal die Bestätigung, die ich über die curl-Ausgaben kriegen würde.

Hallo, die Abfragen liefen keine Rückmeldung.
Gruß

OK, danke. Schade. Dann… hab ich gerade keine Idee weiter.

Der UniFi OS Server reagiert definitiv auf zumindest eine der URLs. Wenn der auf deinem Gerät läuft, dann auf anderen URLs, oder er ist sonst irgendwie verändert.