15.2. Monitoring#

Neu in Version 5.0-2: UCS 5.0-2 unterstützt die Überwachung von Alarmen durch Prometheus-Metriken.

Mit Prometheus, Prometheus Node Exporter, und Prometheus Alertmanager können Administratoren die korrekte Funktion von komplexen IT-Strukturen aus Netzwerken, Rechnern und Diensten kontinuierlich und automatisch überprüfen.

Der Prometheus Node Exporter exportiert eine umfassende Sammlung von Metriken in die Prometheus Datenbank. Neben der Abfrage von Systemindikatoren wie CPU, Speichernutzung und freien Speicherplatz, testen sie die Verfügbarkeit und den Betrieb von verschiedenen Diensten wie SSH, SMTP und HTTP. Betriebstests führen im Allgemeinen Programmschritte wie die Zustellung einer Test-E-Mail oder die Auflösung eines DNS-Eintrags durch. Der Prometheus Node Exporter bietet UCS spezifische Alarme zusätzlich zu den bereits enthaltenen Startmetriken, zum Beispiel einen Alarm für die Listener/Notifier-Replikation.

Wenn sich der Betriebszustand ändert, informiert die Überwachung einen vorher festgelegten Ansprechpartner über die mögliche Störung. Zusätzlich zur reaktiven Benachrichtigung im Fehlerfall können Administratoren den aktuellen Status jederzeit kontinuierlich in der Web-Oberfläche Grafana UCS Dashboard , das die Statusinformationen kompakt anzeigt, überprüfen.

Alert Dashboard

Abb. 15.4 Alert Dashboard#

Siehe UCS Dashboard Installation für eine Übersicht über alle beteiligten Komponenten.

Administratoren definieren die Alarmkonfiguration in Univention Management Console. Ein Listener Modul generiert automatisch die Konfigurationsdateien aus den Informationen im LDAP-Verzeichnis.

15.2.1. Installation#

Zur Installation der UCS Dashboard Komponenten siehe Installation.

Zusätzlich zu den Komponenten des UCS Dashboards müssen Sie die App Prometheus Alertmanager und den univention-monitoring-client installieren.

Für jedes UCS-System, das der Administrator auf dem Dashboard anzeigen möchte, muss er die App UCS Dashboard Client installieren. Das Paket univention-monitoring-client hängt von UCS Dashboard Client ab und wird standardmäßig auf jedem UCS-System installiert, um die Alarmfunktionalität bereitzustellen.

Prometheus Alertmanager

Die Prometheus Alertmanager App versendet Benachrichtigungen über ausgelöste Alarme, zum Beispiel per E-Mail. Der Alertmanager benötigt einige Einstellungen, um korrekt zu funktionieren.

Alertmanager Einstellungen

Die Einstellungen umfassen die Empfänger der E-Mail-Benachrichtigungen. Außerdem benötigen die App-Einstellungen einen Wert für einen SMTP-Server, um E-Mail-Benachrichtigungen zu senden. Der Alertmanager unterstützt die SMTP-Authentifizierungsmethoden PLAIN, LOGIN und CRAM-MD5 sowie die Kommunikation via TLS. Keine Authentifizierung wird verwendet, wenn Sie alle Felder der App-Einstellungen bezüglich Authentifizierung leer lassen.

univention-monitoring-client

Das Paket univention-monitoring-client stellt Standard Alarm Plugins zur Überprüfung des Systemzustands bereit.

Administratoren können mit den folgenden Paketen Plugins installieren, die über die Standard-Plugins hinausgehen, die mit dem univention-monitoring-client Paket bereitgestellt werden.

  • univention-monitoring-raid: Überwachung des Software-RAID-Status

  • univention-monitoring-smart: Prüfung des S.M.A.R.T.-Status von Festplatten

  • univention-monitoring-opsi: Prüfung der Software OPSI

  • univention-monitoring-cups: Prüfung des Druckerdienstes CUPS

  • univention-monitoring-squid: Prüfung des Squid proxy Servers

  • univention-monitoring-samba: Prüfung des Samba 4 Dienstes

  • univention-monitoring-s4-connector: Prüfung des S4-Connector

  • univention-monitoring-ad-connector: Prüfung des AD Connectors

Einige Dienste richten ihr jeweiliges Paket zur Überwachung bereits bei der Installation ein. Wenn Administratoren zum Beispiel den UCS AD Connector einrichten, enthält es automatisch das Plugin für die Überwachung.

15.2.2. Vorkonfigurierte Überwachungstests#

Die Installation richtet automatisch grundlegende Überwachungstests für UCS Systeme ein. Alle Alarme haben die Bezeichnung (Label) severity mit dem Wert critical oder warning.

Tab. 15.1 Vorkonfigurierte Alarme#

Alarm

Beschreibung

UNIVENTION_DISK_ROOT und UNIVENTION_DISK_ROOT_WARNING

Überwacht den Füllstand der /-Partition. Unterschreitet der verbleibende freie Platz in der Standardeinstellung 25% oder 10% wird der Fehlerzustand gesetzt.

UNIVENTION_DNS

Testet die Funktion des lokalen DNS-Servers und die Erreichbarkeit des öffentlichen DNS-Servers durch Abfrage des Rechnernamens www.univention.de. Wenn kein DNS-Forwarder für die UCS-Domäne definiert ist, schlägt diese Anfrage fehl. In diesem Fall kann www.univention.de durch den FQDN des Primary Directory Node ersetzt werden, zum Beispiel in der monitoring/dns/lookup-domain um die Funktion der Namensauflösung zu testen.

UNIVENTION_LDAP_AUTH

Überwacht den auf Directory Nodes laufenden LDAP-Server.

UNIVENTION_LOAD und UNIVENTION_LOAD_WARNING

Überwacht die Systemlast.

UNIVENTION_NTP und UNIVENTION_NTP_WARNING

Fragt auf dem überwachten UCS-System die Uhrzeit beim NTP-Dienst ab. Tritt eine Abweichung von mehr als 60 oder 120 Sekunden auf, wird der Fehlerzustand erreicht.

UNIVENTION_SMTP

Testet, ob der SMTP-Server erreichbar ist. Der Alarm wird ausgelöst, wenn er nicht erreichbar ist.

UNIVENTION_SSL und UNIVENTION_SSL_WARNING

Testet die verbleibende Gültigkeitsdauer der UCS-SSL-Zertifikate. Dieses Plugin ist nur für Primary Directory Node und Backup Directory Nodes geeignet.

UNIVENTION_SWAP und UNIVENTION_SWAP_WARNING

Überwacht die Auslastung der Swap-Partition. Unterschreitet der verbleibende freie Platz den Schwellwert (in der Standardeinstellung 40% oder 20%), wird der Fehlerzustand gesetzt.

UNIVENTION_REPLICATION und UNIVENTION_REPLICATION_WARNING

Überwacht den Status der LDAP-Replikation, erkennt das Vorhandensein einer failed.ldif-Datei sowie den Stillstand der Replikation und warnt vor zu großen Differenzen der Transaktions-IDs.

UNIVENTION_NSCD und UNIVENTION_NSCD2

Testet die Verfügbarkeit des Name Server Cache Dienstes (NSCD). Läuft kein NSCD-Prozess wird ein critical Alarm ausgelöst, läuft mehr als ein Prozess, wird ein warning Alarm ausgelöst.

UNIVENTION_WINBIND

Testet die Verfügbarkeit des Winbind-Dienstes. Läuft kein Prozess, wird ein critical Alarm ausgelöst.

UNIVENTION_SMBD

Testet die Verfügbarkeit des Samba-Dienstes. Läuft kein Prozess, wird ein Alarm ausgelöst.

UNIVENTION_NMBD

Testet die Verfügbarkeit des NMBD-Dienstes, der in Samba für den NetBIOS-Dienst zuständig ist. Läuft kein Prozess, wird ein Alarm ausgelöst.

UNIVENTION_JOINSTATUS und UNIVENTION_JOINSTATUS_WARNING

Prüft den Join-Status eines Systems. Ist ein System noch nicht Mitglied der Domäne, wird ein critical Alarm ausgelöst, sind nicht-aufgerufene Join-Skripte vorhanden, wird ein warning Alarm ausgelöst.

UNIVENTION_KPASSWDD

Prüft die Verfügbarkeit des Kerberos-Passwort-Dienstes (nur verfügbar auf Primary/Backup Directory Node). Läuft weniger oder mehr als ein Prozess, wird ein Alarm ausgelöst.

UNIVENTION_PACKAGE_STATUS

Überwacht den Status der installierten Debian-Pakete. Wenn ein Paket den Status half-installed hat, wird ein Alarm ausgelöst.

UNIVENTION_SLAPD_MDB_MAXSIZE und UNIVENTION_SLAPD_MDB_MAXSIZE_WARNING

Überwacht den Anteil der freien Speicherseiten des mdb Backends von SLAPD für mehrere Verzeichnisse.

UNIVENTION_LISTENER_MDB_MAXSIZE und UNIVENTION_LISTENER_MDB_MAXSIZE_WARNING

Überwacht den Anteil der freien Speicherseiten des mdb Backends von SLAPD für mehrere Verzeichnisse.

Die folgenden Alarme sind nur verfügbar, sobald zusätzliche Pakete installiert wurden (siehe Monitoring installation)

Tab. 15.2 Zusätzliche Alarme#

Alarm

Beschreibung

UNIVENTION_OPSI

Überwacht den OPSI-Daemon. Läuft kein OPSI-Prozess oder die OPSI-Weboberfläche ist nicht erreichbar, wird ein Alarm zurückgegeben.

UNIVENTION_SMART_SDA

Prüft den S.M.A.R.T.-Status der Festplatte /dev/sda. Für die Festplatten sdb, sdc und sdd existieren entsprechende Alarme.

UNIVENTION_RAID und UNIVENTION_RAID_WARNING

Prüft den Status des Software-RAIDs über /proc/mdadm und löst einen critical Alarm aus, sofern eine Festplatte des RAID-Verbunds ausgefallen ist, oder einen warning Alarm, wenn der Recovery-Vorgang läuft.

UNIVENTION_ADCONNECTOR und UNIVENTION_ADCONNECTOR_WARNING

Prüft den Status des Active Directory Connectors:

  • Läuft kein Connector-Prozess, wird ein Alarm zurückgegeben.

  • Existiert mehr als ein Prozess pro Connector-Instanz, wird ein warning Alarm ausgelöst.

  • Treten Rejects auf, wird ein warning Alarm ausgelöst.

  • Kann der AD-Server nicht erreicht werden, wird ein Alarm zurückgegeben.

Das Plugin kann auch in Multi-Connector-Instanzen verwendet werden.

UNIVENTION_CUPS

Überwacht den CUPS-Druckdienst. Läuft der cupsd-Prozess nicht oder ist die Weboberfläche nicht erreichbar, wird ein critical Alarm ausgelöst.

UNIVENTION_SQUID

Überwacht den Proxy Squid. Läuft kein Squid-Prozess oder der Squid-Proxy ist nicht erreichbar, wird ein Alarm zurückgegeben.

UNIVENTION_RAID und UNIVENTION_RAID_WARNING

Überwacht den Status der vorhandenen RAID Geräte. Der warning Alarm wird im Falle folgender RAID Status ausgelöst:

  • Rebuilding

  • Reconstruct

  • Replaced Drive

  • Expanding

  • Warning

  • Verify

Der critical Alarm wird für folgende RAID Status ausgelöst:

  • Degraded

  • Dead

  • Failed

  • Error

  • Missing

UNIVENTION_S4CONNECTOR und UNIVENTION_S4CONNECTOR_WARNING

Überwacht den Status des Samba 4 Servers. Ein warning Alarm wird ausgelöst, wenn der Samba 4 erreichbar ist, aber keine Ablehnungen (rejects) vorhanden sind. Ein critical Alarm wird ausgelöst, wenn der Server nicht erreichbar ist.

UNIVENTION_SAMBA_REPLICATION

Überwacht den Status der Samba-Replikation. Der Alarm wird ausgelöst, wenn ein Fehler der Replikation vorliegt.

15.2.3. Konfiguration#

Univention Management Console bietet die folgenden Einstellungen:

  • Administratoren müssen den Alarm konfigurieren (siehe Monitoring installation) und festlegen, auf welchen Computern der Domäne ein Alarm aktiv sein soll (siehe Zuweisung von Alarmen an Computer).

  • Um die Kontaktperson zu konfigurieren, die der Alertmanager im Falle von Fehlern und Alarmen benachrichtigt, muss die entsprechende Einstellung in der Prometheus Alertmanager App gesetzt werden (siehe Monitoring installation).

  • Administratoren können Alarme für eine bestimmte Zeit stumm schalten. Siehe die Prometheus Alertmanager Dokumentation. Benutzen Sie das Prometheus Alertmanager Webinterface für diese Einstellungen.

Die Grundeinstellungen definieren bereits eine Vielzahl von Tests für jeden Computer, z.B. eine Grundkonfiguration der Alarme, ohne dass weitere Anpassungen vorgenommen werden müssen.

15.2.3.1. Konfiguration der Alarme#

Ein Alert definiert die Überwachung eines Dienstes oder eines Zustandes, zum Beispiel freier Festplattenspeicher. Administratoren können eine beliebige Anzahl von Computern einem solchen Alert-Objekt zuordnen.

Administratoren verwalten Alarme im UMC-Modul Monitoring mit dem Objekttyp Alert, siehe Modul Rechnerverwaltung - Reiter Dienste. Prometheus hat keine LDAP-Schnittstelle für die Überwachungskonfiguration. Stattdessen generiert ein Listener-Modul die Konfigurationsdateien, wenn Administratoren Alarme hinzufügen, bearbeiten oder entfernen.

Konfiguration eines Alarms

Abb. 15.5 Konfiguration eines Alarms#

Tab. 15.3 Reiter Allgemein#

Attribut

Beschreibung

Name

Eine eindeutige Bezeichnung für den Alarm.

Alarm-Gruppe

Legt die Gruppe fest, die den Alarm enthält. Mehrere Alarme können derselben Gruppe angehören.

Abfrageausdruck

Prometheus Abfrage, die den Alarm auslöst. Der Alarm wird ausgelöst, wenn die angegebene Abfrage einen nicht leeren Vektor zurück gibt.

Für Details zur Syntax, siehe die Prometheus documentation.

For-Clause

Definiert die Zeit, in der das Ergebnis des Abfrageausdrucks nicht leer sein muss, bis der Alarm ausgelöst wird.

Vorlage für Zusammenfassung

Der Titel des Alarms, der im Dashboard und in den E-Mail-Benachrichtigungen für Alarme angezeigt wird.

Vorlage für Beschreibung

Die Beschreibung des Alarms, die im Dashboard und in den E-Mail-Benachrichtigungen für Alarme angezeigt wird.

Labels

Prometheus fügt den Alarmen Bezeichnungen (Labels) hinzu. Bezeichnungen helfen bei der Abfrage von Alarmen. Zum Beispiel: severity mit dem Wert critical oder warning.

Vorlagenwerte

Abfrageausdrücke, Beschreibungen und Zusammenfassungen können variable Werte verwenden. Zum Beispiel: Referenziere max durch %max%.

Tab. 15.4 Reiter Rechner#

Attribut

Beschreibung

Zugeordnete Rechner

Prometheus führt die Abfrage auf den hier referenzierten Rechnern aus. Das Listener Modul führt die Tests für den Alert aus. Es ersetzt den Begriff %instance% im Abfrageausdruck durch einen regulären Ausdruck, der mit den zugewiesenen Rechnern übereinstimmt.

15.2.3.2. Zuweisung von Alarmen an Computer#

Prometheus kann alle Computer überwachen, die mit Univention Management Console verwaltet werden.

Navigieren Sie in Univention Management Console zu Computers und wählen Sie den Computer aus, auf dem Sie Alarme aktivieren möchten. Wählen und fügen Sie die gewünschten Alarme im Reiter Erweiterte Einstellungen unter Warnmeldungen aus und speichern Sie Ihre Änderungen.

Zuweisung eines Alarms an einen Computer

Abb. 15.6 Zuweisung eines Alarms an einen Computer#

Tab. 15.5 Reiter Erweiterte Einstellungen#

Attribut

Beschreibung

zugewiesene Warnmeldungen

Listet alle zugewiesenen Alarme für den aktuellen Computer auf. Fügen Sie hier Alarme hinzu oder entfernen Sie sie.

15.2.3.3. Neue Alarme erstellen#

In diesem Abschnitt wird beschrieben, wie Sie ein benutzerdefiniertes Skript hinzufügen, um neue Metriken zu sammeln und Alarme zu erstellen.

Als Administrator können Sie die vorkonfigurierten Alarme, die mit UCS geliefert werden, durch zusätzliche Alarme ergänzen. Ein Alarmprüfung Skript exportiert Metriken über den Rechner, auf dem es läuft, an Prometheus. Eine PromQL-Abfrage auf Metriken definiert einen Alarm in Prometheus. Für weitere Informationen darüber, wie man eigene benutzerdefinierte Checks schreibt, siehe Querying basis.

Kopieren Sie das benutzerdefinierte Alarmprüfung Skript in das Verzeichnis /usr/share/univention-monitoring-client/scripts/ auf dem UCS-System, das die benutzerdefinierten Metriken exportieren soll. Ändern Sie den Dateimodus auf ausführbar mit chmod a+x PLUGIN.

Alle von UCS gelieferten Alert Checks verwenden Python. Benutzerdefinierte Prüfungen können Perl, Python oder Shell verwenden und benötigen keine externen Bibliotheken oder Programme. Alle UCS-Systeme stellen immer die benötigten Interpreter zur Verfügung.

Verwendet die benutzerdefinierte Alarmprüfung dagegen externe Programme oder Bibliotheken, müssen Sie diese auf allen UCS-Systemen installieren, die die benutzerdefinierte Prüfung verwenden sollen.

Das Skript für die Alarmprüfung exportiert eine oder mehrere Metriken, indem es sie in eine Textdatei schreibt. Es muss gültige Prometheus Metriken in eine .prom Datei im /var/lib/prometheus/node-exporter/ Verzeichnis schreiben. Prometheus importiert diese Datei.

Sie müssen den benutzerdefinierten Alarm in Univention Management Console konfigurieren, siehe Konfiguration der Alarme. Sie müssen einen Prometheus Ausdruck für die Metrik des Skripts in das Feld Query expression eingeben. Um den benutzerdefinierten Alert zu UCS-Systemen zuzuordnen, siehe Zuweisung von Alarmen an Computer.

Siehe auch

Prometheus Namenskonventionen

Metric and label naming

Text-basiertes Format einer .prom-Datei

Exposition formats