Ein Dashboard, das mitwächst: Der Metrics-Endpunkt in UCS 5.2 liefert die Rohdaten, Prometheus speichert sie und Grafana visualisiert sie – und plötzlich sieht man nicht mehr nur Zahlen, sondern Entwicklung.
Wie viele Nutzer und Nutzerinnen sind es aktuell? Wo stehen wir in Bezug auf das Lizenzlimit? Auf welchem Patchlevel läuft das System? Wer eine Nubus-Umgebung betreibt, kennt diese Fragen. Antworten gab es bislang im Portal oder per Kommandozeile.
Mit dem Errata-Level 410 für UCS 5.2-5 hat sich das geändert. Nubus stellt seitdem einen Metrics-Endpunkt für die UDM REST API bereit, der die wichtigsten Kennzahlen im Prometheus-Format ausliefert. Administrator*innen rufen die Daten schnell ab, speichern sie für Auswertungen und bauen daraus Grafana-Dashboards.
Dieser Artikel zeigt Schritt für Schritt, wie Sie den neuen Endpunkt anzapfen, Prometheus als Datensammler einrichten und mit Grafana ein aussagekräftiges Dashboard bauen. Am Ende überblicken Sie den aktuellen Zustand Ihrer Nubus-Instanz und deren Entwicklung.
Inhaltsverzeichnis
Nubus-Metriken über die UDM REST API abrufen
Der Metrics-Endpunkt ist Teil der UDM REST API und über HTTP Basic Auth (Benutzername und Passwort im Request-Header) geschützt. Er ist unter dem Pfad /univention/udm/-/metrics erreichbar. Zugriff haben Mitglieder der Gruppe udm-rest-metrics sowie alle Konten mit Zugriff auf die UDM REST API – also auch der Administrator, den wir in diesem Artikel als Beispiel nutzen. In produktiven Umgebungen sollte ein dedizierter Account genutzt werden, der in der Gruppe udm-rest-metrics aufgenommen wurde.
Ein einfacher Aufruf mit curl genügt, um die aktuellen Metriken abzuholen:
:~# curl -k -u Administrator:<passwort> https://<nubus-host>/univention/udm/-/metrics # HELP nubus_ucs_version_info UCS version information # TYPE nubus_ucs_version_info gauge nubus_ucs_version_info{domain="nubus.example",errata="515",license_uuid="dce67f03-e7b2-4a6b-92f7-c4777dac6ef5",patch="6",system_uuid="1847168b-4caf-418c-a741-edaec5fc8978",ucs="5.2"} 1.0 # HELP nubus_n4k_version_info Nubus for Kubernetes version information # TYPE nubus_n4k_version_info gauge # HELP nubus_users_user_total Total number of UDM objects of type users/user # TYPE nubus_users_user_total gauge nubus_users_user_total{domain="nubus.example",license_uuid="dce67f03-e7b2-4a6b-92f7-c4777dac6ef5",platform="ucs"} 949.0 # HELP nubus_settings_license_users_limit_total Number of active users permitted by the installed license # TYPE nubus_settings_license_users_limit_total gauge nubus_settings_license_users_limit_total{domain="nubus.example",license_uuid="dce67f03-e7b2-4a6b-92f7-c4777dac6ef5",platform="ucs"} +Inf
Ersetzen Sie <passwort> im Befehl durch das Kennwort des Administrator-Accounts. Die Antwort kommt im Prometheus-Exposition-Format, also als reiner Text, den Prometheus direkt einlesen kann. Aktuell stellt der Endpunkt drei Metriken bereit:
- nubus_ucs_version_info liefert die vollständige Versionsinformation der Instanz. Die eigentlichen Werte stehen in den Labels: ucs, patch und errata beschreiben den Softwarestand, domain und system_uuid identifizieren die Installation eindeutig.
- nubus_users_user_total zählt die aktiven, verwalteten („managed“) Benutzerkonten in der Nubus-Domain. Deaktivierte Konten und Systemkonten bleiben außen vor – gezählt wird die Anzahl an Konten, die auch für die Lizenzprüfung relevant ist.
- nubus_settings_license_users_limit_total zeigt die Obergrenze der aktiven Nutzerkonten laut installierter Lizenz. Ohne Lizenz-Limit gibt der Endpunkt +Inf oder -1 zurück, so wie in unserer Testumgebung mit der Core Edition.
Welche Versions-Metrik der Endpunkt mit Werten füllt, hängt vom Deployment-Typ ab. In einer UCS-Umgebung wie in diesem Beispiel liefert nubus_ucs_version_info die Angaben zu Version, Patchlevel und Errata-Stand. In einer Kubernetes-Umgebung übernimmt nubus_n4k_version_info diese Aufgabe und liefert die Kubernetes-spezifischen Versionsangaben. Die jeweils andere Metrik erscheint in der Ausgabe nur mit Kopfzeile, aber ohne Datenzeile.
Das Label domain verdient besondere Aufmerksamkeit. Es taucht in allen Metriken auf und macht die Werte einer bestimmten Nubus-Domain eindeutig zuordenbar. Wer später mehrere Instanzen überwachen will, hat damit bereits das passende Trennkriterium in der Hand.
Prometheus und Grafana schnell aufsetzen (für Tests)
Dieser Artikel geht davon aus, dass in Ihrer Umgebung bereits Prometheus und Grafana im Einsatz sind. Wer den neuen Metrics-Endpunkt ausprobieren möchte, kann mit Docker Compose in wenigen Minuten eine Testumgebung aufsetzen. Legen Sie ein Verzeichnis für die Konfiguration an, z. B. /root/monitoring, und speichern Sie darin die folgende compose.yml-Datei:
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus_data:/prometheus
extra_hosts:
- "host.docker.internal:host-gateway"
restart: unless-stopped
grafana:
image: grafana/grafana-oss:latest
container_name: grafana
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
restart: unless-stopped
volumes:
prometheus_data:
grafana_data:
Der Eintrag extra_hosts sorgt dafür, dass der Prometheus-Container den Nubus-Host über den Namen host.docker.internal erreicht, unabhängig von der IP-Adresse. Im gleichen Verzeichnis legen Sie eine prometheus.yml mit dem Scrape-Job aus dem nächsten Abschnitt an. Für die Testumgebung tragen Sie unter targets den Wert host.docker.internal ein. Danach starten Sie den Stack mit docker-compose up -d. Grafana ist anschließend unter http://<host>:3000 erreichbar (Standard-Login: admin/admin, das Passwort ist beim ersten Aufruf zu ändern), die Weboberfläche von Prometheus unter http://<host>:9090.
Prometheus für Nubus konfigurieren
Prometheus fragt die Metriken aktiv bei den überwachten Endpunkten ab (im Prometheus-Jargon: „scrape“) und speichert sie in einer eigenen Zeitreihen-Datenbank. Für die Nubus-Integration ergänzen Sie in Ihrer prometheus.yml einen neuen Scrape-Job:
global: scrape_interval: 30s scrape_configs: - job_name: 'nubus' metrics_path: '/univention/udm/-/metrics' scheme: https tls_config: insecure_skip_verify: true basic_auth: username: Administrator password: <passwort> static_configs: - targets: ['<nubus-host>']
Passen Sie Passwort und Zielhost an Ihre Umgebung an. Die Option insecure_skip_verify überspringt die Zertifikatsprüfung; in Produktivumgebungen sollten Sie stattdessen ein gültiges Zertifikat einsetzen und die Option entfernen. Nach dem Reload von Prometheus prüfen Sie in der Weboberfläche unter Status → Target health, ob der Job nubus mit dem Zustand UP erscheint. Das ist ein Zeichen dafür, dass Prometheus den Endpunkt regelmäßig erreicht und die Metriken abholt.
Damit läuft die Datenerfassung. Prometheus sammelt die Nubus-Metriken jetzt alle 30 Sekunden ein und legt sie in der eigenen Datenbank ab. Als Nächstes geht es an die Visualisierung mit Grafana.
Ein Grafana-Dashboard für Nubus bauen
Ein Dashboard bündelt mehrere Panels auf einer Seite. Jedes Panel stellt eine Abfrage an die Datenquelle und visualisiert die Antwort. Für unser Nubus-Monitoring reichen vier Panels aus, die zusammen einen kompletten Überblick geben: die aktuelle Zahl der Nutzer*innen, das Lizenzlimit, die Versionsinformationen und den zeitlichen Verlauf.
Legen Sie über Dashboards → Neues Dashboard ein leeres Dashboard an. Wählen Sie als Layout Benutzerdefiniertes Grid, damit Sie Größe und Position jedes Panels frei bestimmen können. Über den Button + Visualisierung hinzufügen legen Sie das erste Panel an.
Panel 1: Aktive Nutzer*innen
Das erste Panel steht in der linken oberen Ecke und zeigt die aktuelle Zahl der aktiven Nutzerkonten als große Kennzahl. Ergänzt wird sie durch einen kleinen Pfeil mit prozentualer Veränderung zum vorigen Zeitraum sowie durch eine Sparkline, die den Verlauf innerhalb des angezeigten Zeitfensters skizziert. Die Kennzahl steht im Vordergrund, die beiden Zusätze liefern den Kontext.
Wählen Sie im Panel-Editor unten die Datenquelle prometheus und tragen Sie im Code-Modus die Abfrage ein:
nubus_users_user_total
Rechts oben stellen Sie den Panel-Typ auf Stat (Statistik) um. In den Optionen rechts vergeben Sie unter Panel-Optionen → Titel den Namen Aktive Nutzer*innen. Unter Statistikstile → Diagrammmodus wählen Sie Bereich: Dann erscheint zusätzlich zur großen Zahl eine kleine Verlaufsgrafik (Sparkline) im Panel. Die Option Prozentuale Veränderung anzeigen blendet einen Pfeil und einen Prozentwert ein, der die Veränderung zum vorigen Zeitraum anzeigt.
Außerdem lohnt sich ein Blick in den Abschnitt Schwellenwerte. Hier legen Sie fest, ab welchem Wert das Panel welche Farbe zeigt, z. B. Grün als Basis, Gelb ab 1199 und Rot ab 1200. Die Zahl im Panel wechselt dann automatisch die Farbe, sobald ein Schwellenwert überschritten wird.
Panel 2: Nutzerlimit (Lizenz)
Das zweite Panel zeigt die Lizenzobergrenze; in unserer Testumgebung mit der Core Edition erscheint hier ∞. Legen Sie ein neues Panel an mit der Abfrage:
nubus_settings_license_users_limit_total
Auch hier können Sie als Panel-Typ Stat wählen und als Titel Nutzerlimit (Lizenz) eintragen. Grafana erkennt den Wert +Inf automatisch und stellt ihn als Unendlichkeitszeichen dar.
Panel 3: UCS-Version
Das dritte Panel zeigt alle Labels der Versions-Metrik in einer übersichtlichen Tabelle. Die Abfrage lautet diesmal:
nubus_ucs_version_info
Wählen Sie als Panel-Typ Tabelle. Weil die interessanten Informationen in den Labels der Metrik stecken, brauchen wir eine Transformation, die diese Labels als Spalten sichtbar macht. Wechseln Sie unten in den Reiter Transformationen und fügen Sie die Transformation Labels zu Feldern hinzu. Setzen Sie den Modus auf Zeilen, damit die Labels untereinander erscheinen statt nebeneinander.
Für eine aufgeräumte Ansicht ergänzen Sie eine zweite Transformation: Neu anordnen und umbenennen. Damit blenden Sie technische Felder wie _name_ und job aus und sortieren die verbleibenden Beschriftungen: domain, ucs, patch, errata, license_uuid, system_uuid.
Panel 4: Nutzerzahl im Zeitverlauf
Das vierte Panel zeigt die Entwicklung der Nutzerzahl über die Zeit, also den eigentlichen Mehrwert von Prometheus als Zeitreihen-Datenbank. Legen Sie ein neues Panel an mit derselben Abfrage an wie in Panel 1:
nubus_users_user_total
Der Panel-Typ Zeitreihe ist bereits voreingestellt. Ein Klick in die Query-Optionen bringt Sie zum Feld Legende. Tragen Sie hier ein:
{{domain}}
Damit erscheint in der Legende nicht der unhandliche Ausdruck mit allen Labels, sondern nur der Domain-Name der Nubus-Instanz; in unserem Beispiel ist das nubus.example. Wenn Sie später mehrere Instanzen überwachen, unterscheidet Grafana sie über genau dieses Label.
Layout und Speichern
Ziehen Sie die Panels per Drag & Drop in eine passende Anordnung. Für die Screenshots in diesem Artikel liegen die drei Stat- und Tabellen-Panels oben nebeneinander, das Zeitreihen-Panel darunter über die volle Breite. Über Speichern sichern Sie das fertige Dashboard.
Praxisbeispiele: Wachstum und Konsolidierung im Blick
Die eigentliche Stärke eines solchen Grafana-Dashboards zeigt sich im Alltag. Nicht der einzelne Wert einer Metrik ist interessant, sondern sein Verlauf. Ein Beispiel: Zu Beginn des Schuljahrs legt eine Bildungseinrichtung innerhalb weniger Wochen mehrere Hundert neue Konten an. Im Zeitreihen-Panel wird dieser Aufbau als Treppe sichtbar, die Kennzahl im Panel Aktive Nutzer*innen steigt. Nähert sich die Zahl einem vorher definierten Schwellenwert, springt sie von Grün auf Gelb. Ein Blick genügt, um zu erkennen: Es wird eng, die Lizenz muss möglicherweise erweitert werden.
Zum Schuljahresende verlassen die Abschlussklassen die Einrichtung, ihre Konten werden gelöscht. Im Zeitreihen-Panel führt das zu einem sichtbaren Rückgang, der Prozentpfeil im Stat-Panel färbt sich rot und zeigt einen negativen Wert. Sobald die Zahl den Warnbereich wieder unterschreitet, steht sie wieder auf Grün. Solche Konsolidierungsphasen zeigen, dass die Datenpflege funktioniert, und liefern die Grundlage für eine realistische Kapazitätsplanung.
In größeren Umgebungen lassen sich die Metriken zusätzlich für automatische Benachrichtigungen verwenden: Prometheus wertet Alert-Regeln aus und leitet ausgelöste Alarme an den Alertmanager weiter, der dann per E-Mail oder Chat das Adminteam benachrichtigt, z. B., sobald das Nutzerlimit zu 90 % ausgelastet ist. Das Dashboard bleibt das Fenster für den bewussten Blick, und die Alerts sorgen dafür, dass niemand etwas übersieht.
Ausblick: Nubus-Monitoring in verteilten Umgebungen
Das Setup in diesem Artikel überwacht eine einzelne Nubus-Instanz. In der Praxis kommen aber selten Einzelinstanzen vor: Bildungsträger, Kommunen und Organisationen betreiben oft Dutzende oder Hunderte von Deployments – pro Schule, pro Standort, pro Fachbereich. Genau für diese Fälle skaliert das gezeigte Konzept ohne großen Aufwand.
Prometheus kann beliebig viele Endpunkte abfragen. Administrator*innen ergänzen jede weitere Nubus-Instanz als zusätzlichen Eintrag unter static_configs in der Datei prometheus.yml. Dank des Labels domain, das jeder Metrik automatisch beigelegt wird, unterscheidet Grafana die Instanzen sauber voneinander. Aus einer Handvoll Panels für eine Instanz wird so ein Übersichts-Dashboard für viele.
Die Prometheus-eigene Abfragesprache PromQL macht den Rest. Sie kennt sogenannte Aggregations-Operatoren, mit denen sich Metriken über beliebige Labels zusammenfassen oder filtern lassen. Ein Ausdruck wie sum(nubus_users_user_total) liefert die Gesamtzahl aller Nutzerkonten über alle überwachten Instanzen hinweg. Weitere Operatoren wie topk, avg oder count erlauben andere Auswertungen, z. B. die fünf größten Umgebungen oder die durchschnittliche Nutzerzahl pro Standort. Eine Übersicht aller Operatoren finden Sie in der Prometheus-Dokumentation, Beispiele für typische Abfragen im Query-Examples-Kapitel.
Fazit: Was Nubus-Metriken für Ihre IAM-Umgebung bedeuten
Der neue Metrics-Endpunkt erweitert Nubus um eine Schnittstelle zu Prometheus und macht die zentrale Identitätsverwaltung damit anschlussfähig an vorhandene Monitoring-Werkzeuge. Wer Prometheus und Grafana bereits für andere Dienste nutzt, ergänzt das bestehende Monitoring um wenige Zeilen Konfiguration und kann Nubus auf demselben Dashboard wie andere Server, Datenbanken und Webanwendungen überblicken.
Eine einzelne Abfrage auf der Kommandozeile beantwortet die Frage nach dem aktuellen Zustand. Die Zeitreihe im Grafana-Panel zeigt die Entwicklung und liefert damit eine solide Grundlage für Kapazitätsplanung, Lizenzverwaltung und die Bewertung von Betriebsprozessen. Für kleine Umgebungen ist das ein hilfreiches Werkzeug, für große Umgebungen mit vielen Instanzen wird es zur Grundlage für belastbare Aussagen über die eigene Infrastruktur.
Der Endpunkt liefert Stand Juli 2026 drei Metriken. Für einen ersten Überblick reicht das aus, und die Basis für weitere Metriken in kommenden Releases ist gelegt. Ein guter Zeitpunkt, das eigene Nubus-Monitoring aufzusetzen.

