Der Dienst opsiconfd

Der zentrale Dienst auf jedem opsi-Server ist der opsiconfd. Er stellt über HTTPS (Port 4447) verschiedene Services bereit:

  • /rpc: JSON-RPC-API

  • /dav: WebDAV-Zugriff auf Workbench, Repository, Depot, Boot-Verzeichnis

  • /admin: Admin-Seite für Status-Informationen und Administrations-Aufgaben

  • /grafana: Reverse-Proxy-Zugriff auf einen lokalen Grafana-Server (siehe Kapitel Grafana)

  • /status: einfache Statusausgabe für Monitoring-Werkzeuge

  • /public: öffentliche Dateifreigabe ohne Authentifizierung

Sie können den opsiconfd über Addons erweitern. So ist beispielsweise das opsi-WebGUI ein solches Addon. Mehr dazu lesen Sie in Abschnitt Addons.

Kommandozeilen-Interface

Der opsiconfd besitzt ein Kommandozeilen-Interface, das die folgenden Befehle bereitstellt:

  • start: Startet den opsiconfd (Standardkommando).

  • stop: Stoppt einen laufenden opsiconfd.

  • force-stop: Wie stop, bricht zusätzlich aktive Client-Verbindungen ab.

  • status: Zeigt den Service-Status an (gleicher Output wie systemctl status).

  • restart: Startet den opsiconfd-Service neu (systemctl restart).

  • reload: Sendet ein SIGHUP-Signal an laufende opsiconfd-(Worker-)Prozesse. Die Prozesse lesen die Konfigurationsdateien daraufhin neu ein.

  • setup: Startet ein Der Befehl opsiconfd setup.

  • log-viewer: Gibt die opsiconfd-Logs (siehe Abschnitt Logfiles) im Terminal aus.

  • health-check: Startet einen Health Check.

  • diagnostic-data: Schreibt Health-Check-Daten und Informationen über die Umgebung, die zur Analyse von Problemen hilfreich sind, in eine Datei.

  • backup: Erstellt ein Backup (siehe Abschnitt opsiconfd backup/restore).

  • restore: Stellt ein Backup wieder her (siehe Abschnitt opsiconfd backup/restore).

Server-Rolle

Ein opsi-Server kann die Rolle eines opsi-Configservers oder die eines opsi-Depotservers übernehmen. Die Konfigurationsdatei /etc/opsi/opsi.conf legt die Rolle fest. Ab opsi 4.3 definiert diese Konfigurationsdatei auch die ID des Servers.

Die Konfigurationsdatei */etc/opsi/opsi.conf* legt unter anderem die Server-Rolle fest.
Abbildung 1. Die Konfigurationsdatei /etc/opsi/opsi.conf legt unter anderem die Server-Rolle fest.
Wenn Sie den opsi-Server als Docker-Container betreiben, steuern Umgebungsvariablen das Verhalten (siehe Abschnitt Docker Compose).

Hier ist ein Beispiel für einen opsi-Configserver:

[host]
id = "opsi.domain.tld"
key = "5b4324721a114195098bdaf3fab54a9f"
server-role = "configserver"

[service]
url = "https://localhost:4447"

Beispiel für einen opsi-Depotserver:

[host]
id = "opsi-depot.domain.tld"
key = "a1b5098fabcaf315b13249cba1a24d17"
server-role = "depotserver"

[service]
url = "https://opsi.domain.tld:4447"
Ab opsi 4.3 löst die Datei /etc/opsi/opsi.conf die bisher genutzte Datei /etc/opsi/backends/jsonrpc.conf ab.

Konfiguration

Den opsiconfd können Sie über die Datei /etc/opsi/opsiconfd.conf, über Umgebungsvariablen oder über Kommandozeilen-Parameter beim Aufruf konfigurieren. Dabei gilt die folgende Reihenfolge:

  1. Einträge in der Konfigurationsdatei überschreiben die Standardeinstellungen.

  2. Umgebungsvariablen überschreiben Einträge in der Konfigurationsdatei.

  3. Kommandozeilen-Parameter überschreiben Umgebungsvariablen.

Eine Liste aller Konfigurationsoptionen erhalten Sie, wenn Sie den folgenden Befehl in ein Terminalfenster eingeben:
opsiconfd --help
...
--admin-networks ADMIN_NETWORKS [ADMIN_NETWORKS ...]
                A list of network addresses from which administrative connections are allowed.
                [env var: OPSICONFD_ADMIN_NETWORKS]
                (default: ['0.0.0.0/0', '::/0'])
...

Hinter dem Namen des Kommandozeilenparameters (z. B. --admin-networks) steht die dazugehörige Umgebungsvariable in Großbuchstaben (hier: ADMIN_NETWORKS). Lassen Sie die beiden vorangestellten Bindestriche -- weg, erhalten Sie den Namen der Option für die Konfigurationsdatei (admin-networks).

  • In der Konfigurationsdatei /etc/opsi/opsiconfd.conf steht z. B.:

admin-networks = [10.1.1.0/24,192.168.1.0/24]
  • Über die Umgebungsvariable erfolgt die Einrichtung so:

OPSICONFD_ADMIN_NETWORKS="[10.1.1.0/24,192.168.1.0/24]"
  • Der Aufruf auf der Kommandozeile sieht so aus:

opsiconfd --admin-networks 10.1.1.0/24 192.168.1.0/24
Änderungen an der Konfiguration können Sie in der Regel im laufenden Betrieb über den Befehl opsiconfd reload übernehmen. Einige Parameter erfordern jedoch einen Neustart über opsiconfd restart.

Die Datei hostcontrol.conf

Über die HostControl-Funktionalität können Sie opsi-Clients steuern. Seit opsi 4.3 findet das bevorzugt über den opsi-Message-Bus statt. Das bisherige Verfahren existiert jedoch weiterhin; in diesem Fall baut der opsi-Configserver eine Verbindung zum Client-Agent auf und führt über diese Verbindung Kommandos aus. Über Wake on LAN (WOL) können Pakete im Netzwerk versendet werden, um Clients bei Bedarf zu starten.

Die HostControl-Konfiguration befindet sich in der Datei /etc/opsi/backends/hostcontrol.conf. Hier stehen die folgenden Parameter zur Verfügung:

  • useMessagebus: Der Parameter steuert, wie der opsi-Message-Bus für HostControl verwendet wird. Die folgenden Werte sind erlaubt:

    • False: Der opsi-Message-Bus wird nicht verwendet, das heißt, dass für jedes Kommando eine Verbindung zum opsi-client-agent aufgebaut wird.

    • True: Es wird ausschließlich der opsi-Message-Bus verwendet. Ist ein Client nicht mit dem opsi-Message-Bus verbunden, gilt er als nicht erreichbar, und das Kommando wird nicht ausgeführt. Wenn alle Clients so konfiguriert sind, dass sie den opsi-Message-Bus verwenden, ist das die bevorzugte Einstellung.

    • hybrid (Standard): Der opsi-Message-Bus wird verwendet, wenn der Client eine aktive Message-Bus-Verbindung hat. Falls nicht, wird eine Verbindung zum opsi-client-agent aufgebaut-

  • opsiclientdPort: Netzwerkport für die Verbindungsaufnahme zu einem opsi-client-agent

  • hostRpcTimeout: Timeout in Sekunden bei der Verbindungsaufnahme zu einem opsi-client-agent

  • resolveHostAddress: Der Parameter steuert die Namensauflösung:

    • True: Beim Verbindungsaufbau vom opsi-Configserver zum opsi-client-agent wird die IP-Adresse des opsi-Clients bevorzugt über die Namensauflösung ermittelt.

    • False: Beim Verbindungsaufbau wird die im opsi-Backend hinterlegte IP-Adresse bevorzugt.

  • maxConnections: maximale Anzahl simultaner Verbindungen zu Client-Agents

  • broadcastAddresses: WOL-Pakete werden an Broadcast-Adressen verschickt; dieser Parameter ordnet Netzwerkadressen den Broadcast-Adressen zu. Die Zuordnung hat die folgende Form:
    { "<network-address>": { "<broadcast-address>": <port-list> } }

Dieses Beispiel verdeutlicht die Konfiguration:

"broadcastAddresses": {
                "0.0.0.0/0": {
                        "255.255.255.255": [7, 9, 12287]
                },
                "10.10.0.0/16": {
                        "10.10.1.255": [12287],
                        "10.10.2.255": [12287]
                },
                "10.10.3.0/24": {
                        "10.10.3.255": [12287]
                },
                "192.168.1.0/24": {
                        "192.168.1.255": [12287, 9, 12287]
                }
        }

Einer Netzwerkadresse können mehrere Broadcast-Adressen zugeordnet werden. Für jede Broadcast-Adresse können unterschiedliche Ports konfiguriert werden. Die passenden Broadcast-Adressen werden auf Basis der im opsi-Backend hinterlegten IP-Adresse eines Clients ermittelt. Ist die IP-Adresse hierbei Teil mehrerer Netzwerke, wird der spezifischste Eintrag verwendet.

Der Befehl opsiconfd setup

Bei jedem opsiconfd-Start nimmt der Dienst automatisch Anpassungen an der opsi-Umgebung vor. Daher sind in der Regel nur wenig manuelle Konfigurations- und Wartungsarbeiten erforderlich.

opsiconfd setup umfasst unter anderem die folgenden Setup-Tasks:

  • Konfigurationsdateien automatisch aktualisieren

  • System-Ressourcen-Limits (ulimit) anpassen

  • Benötigte Benutzer und Gruppen erstellen

  • Benötigte Dateien und Verzeichnisse anlegen

  • Datei /etc/sudoers konfigurieren

  • Berechtigungen für Dateien und Verzeichnisse setzen

  • Log-Dateien aufräumen

  • systemd konfigurieren

  • MySQL-Datenbank einrichten, Schema-Upgrades und Cleanup

  • File-Backend automatisch in die MySQL-Datenbank migrieren

  • Redis konfigurieren und Cleanup

  • Grafana-Konfiguration anpassen und Addons installieren

  • opsi-CA und TLS-Server-Zertifikat erstellen und erneuern

  • DHCP-Server konfigurieren

  • Samba konfigurieren und Freigaben anlegen

Sie können den Setup-Lauf aber auch jederzeit von Hand über diesen Befehl starten:

opsiconfd setup

Jetzt beginnt ein vollständiges Setup; beim "normalen" opsiconfd-Start findet ein reduzierter Setup-Lauf statt, um den Start des Dienstes zu beschleunigen.

Über den opsiconfd-Parameter skip-setup können Sie Setup-Tasks permanent abschalten.

In der Regel arbeitet opsiconfd setup nicht-interaktiv. Für die folgenden Aufgaben wird opsiconfd setup jedoch auch interaktiv verwendet:

  • Manuelle Einrichtung einer MySQL-Datenbank-Verbindung (--configure-mysql), siehe Kapitel MySQL

  • Manuelle Registrierung eines opsi-Depots (--register-depot)

  • Umbenennung eines opsi-Configservers (--rename-server)

Um eine Interaktion von opsiconfd setup mit dem Benutzer vollständig auszuschließen, etwa bei der Verwendung in Skripten, können Sie den Parameter --non-interactive verwenden.

Admin-Seite

Die opsiconfd-Admin-Seite stellt Status-Informationen und Administrations-Aufgaben zum opsiconfd im Webbrowser zur Verfügung. Der Zugriff erfolgt über https://<opsi-server>:4447/admin; Benutzer müssen Mitglied der opsi-Admin-Gruppe sein (siehe Kapitel Berechtigungen). Die nächsten Abschnitte stellen kurz die einzelnen Reiter vor.

Info

Hier sehen Sie allgemeine Informationen zum opsiconfd, darunter auch die Anzahl der verbundenen Depotserver und Clients, Angaben zur opsi-CA und zum Serverzertifikat.

In der unteren Hälfte sehen Sie die opsiconfd-Konfiguration; über den Button Service reload laden Sie die Konfiguration neu.

Auf dem Reiter *Info* können Sie auch die *opsiconfd*-Konfiguration betrachten.
Abbildung 2. Auf dem Reiter Info können Sie auch die opsiconfd-Konfiguration betrachten.

Maintenance

Auf diesem Reiter können Sie den opsiconfd in den Wartungsmodus versetzen und diesen auch wieder beenden. In der Zeit gibt es dann keine Client-Aktivität. Klicken Sie die Schaltfläche Set application to 'maintenance' state, um den Maintenance-Modus zu aktivieren. Am oberen Rand sehen Sie die Meldung "accomplished": true und daneben auch IP-Adressen, für die der Wartungsmodus nicht gilt — das sind in der Regel die Localhost-IP 127.0.0.1 und die IP-Adresse des opsi-Configservers. Alle Zugriffe von anderen Rechnern aus sind dann nicht mehr möglich; Anwender sehen die Nachricht Maintenance mode, please try again later.

Ins Feld Address exceptions (optional) können Sie weitere IP-Adressen eintragen, von denen aus Sie auf den opsiconfd auch im Maintenance-Modus zugreifen wollen. Mehrere IPs trennen Sie durch Kommata voneinander.

Über den Button Set application to 'normal' state beenden Sie den Maintenance-Modus wieder.

Der Reiter *Maintenance* (de)aktiviert den Wartungsmodus und zeigt den aktuellen Status an.
Abbildung 3. Der Reiter Maintenance (de)aktiviert den Wartungsmodus und zeigt den aktuellen Status an.
In der Voreinstellung wechselt der opsi-Configserver in den Maintenance-Modus, wenn Sie ein Backup erstellen oder eine Sicherungskopie wiederherstellen (siehe Kapitel Backup des opsi-Servers).

Users

Hier richten Sie die Zwei-Faktor-Authentifizierung für Benutzer auf dem opsi-Configserver ein. Nachdem Sie die opsiconfd-Konfiguration entsprechend angepasst und den Dienst neu gestartet haben, generieren Sie über den Button Generate new secret and activate TOTP ein Einmalpasswort. Es besteht aus sechs Ziffern und wird zusätzlich zur Anmeldung am opsi-Server benötigt (siehe Abschnitt Zwei-Faktor-Authentifizierung).

Auf dem Reiter *Users* können Sie die Zwei-Faktor-Authentifizierung einrichten.
Abbildung 4. Auf dem Reiter Users können Sie die Zwei-Faktor-Authentifizierung einrichten.

Clients

Die Seite zeigt Informationen über verbundene Clients und Sessions an. Gesperrte Clients erscheinen in der Liste Blocked Clients. Einzelne Clients können Sie im Bereich Unblock Clients über deren IP-Adresse und Execute freigeben; alternativ entsperren Sie über Unblock all clients alle gesperrten Client auf einmal.

Beachten Sie, dass Clients in diesem Fall (Web-)Clients meint, die auf die Admin-Seite zugreifen. Hier finden Sie keine Informationen über mit opsi verwaltete Rechner. Die Admin-Seite sperrt einen Client z. B. dann, wenn es zu viele fehlgeschlagene Anmeldeversuche gab.

Um alle Sessions eines Clients zu löschen, geben Sie dessen IP-Adresse im Feld Delete client sessions ein und bestätigen das mit Execute.

Auf diesem Reiter sehen Sie eine Liste gesperrter Clients und geben diese ggf. wieder frei.
Abbildung 5. Auf diesem Reiter sehen Sie eine Liste gesperrter Clients und geben diese ggf. wieder frei.

Depots

Im oberen Bereich des Reiters können Sie weitere Depotserver zu Ihrer opsi-Umgebung hinzufügen. Dazu tragen Sie in die beiden Felder die Depot-ID (also den FQDN des opsi-Depotservers) und eine Beschreibung ein. Nach einem Klick auf Create depot sollten Sie das neue Depot in der Tabelle sehen; hier steht im Feld Messagebus noch not connected. Damit Configserver und Depotserver miteinander kommunizieren können, führen Sie auf dem Depotserver noch das folgende Kommando aus:

opsiconfd setup --register-depot
Beachten Sie, dass das Kommando opsi-setup --register-depot nach dem Wechsel von opsi 4.2 auf 4.3 nicht mehr verfügbar ist (siehe Abschnitt opsi-setup).
Neue opsi-Depots tragen Sie auf diesem Reiter ein.
Abbildung 6. Neue opsi-Depots tragen Sie auf diesem Reiter ein.

Falls es gesperrte Produkte auf einem Depotserver gibt, erscheinen diese ebenfalls auf diesem Reiter im Bereich Locked Products. Über den Button Unlock neben einem Produkt heben Sie die Sperre für dieses eine Produkt auf; Unlock all hebt die Sperre für alle gesperrten Produkte auf.

Gibt es gesperrte Produkte? Der Reiter *Depots* zeigt diese an und bietet einen Button zum Entsperren.
Abbildung 7. Gibt es gesperrte Produkte? Der Reiter Depots zeigt diese an und bietet einen Button zum Entsperren.

RPC-Infos

Die Tabelle auf diesem Reiter zeigt die letzten RPC-Aufrufe (Remote Procedure Call) an. Sie können die Anzeige per Klick auf den Namen der Tabellenspalte sortieren.

In dieser Tabelle sehen Sie die letzten RPC-Aufrufe.
Abbildung 8. In dieser Tabelle sehen Sie die letzten RPC-Aufrufe.

RPC-Interface

Dieser Reiter führt alle zur Verfügung stehenden Methoden der JSON-RPC-API auf. Wenn Sie die Checkbox Show deprecated methods anklicken, tauchen auch veraltete Methoden im Drop-down-Menü auf. Wählen Sie aus dem Drop-down-Menü Method eine Methode aus. Je nach Methode sehen Sie weitere Eingabefelder, etwa Attribute, Filter oder verfügbare Parameter. Die Felder erwarten eine gültige JSON-Kodierung; auf eventuelle Syntaxfehler weist das Interface hin.

Ein Klick auf den Button Execute führt die Methode aus. Anfrage, Verarbeitungsdauer und Ergebnis erscheinen darunter im JSON-Format.

Über diesen Reiter können Sie Methoden der JSON-RPC-API ausführen.
Abbildung 9. Über diesen Reiter können Sie Methoden der JSON-RPC-API ausführen.

Redis-Interface

Hier können Sie Redis-Status-Informationen anzeigen, Redis-Befehle ausführen und den Cache leeren. Klicken Sie auf Info+, um detaillierte Informationen zur Redis-Version, dem Betriebssystem, der Architektur des Servers usw. einzublenden.

Die Antwort im unteren Bereich des Reiters erscheint im JSON-Format.

Zeigen Sie auf diesem Reiter Informationen zu Redis an.
Abbildung 10. Zeigen Sie auf diesem Reiter Informationen zu Redis an.
Über die Schaltfläche Debug keys können Sie Keys (Schlüssel, also die Bezeichnungen für die verschiedenen Datenstrukturen, die in der Datenbank gespeichert sind) debuggen. Das kann hilfreich sein zur Fehlersuche, Leistungsüberwachung oder Datenanalyse. Beachten Sie, dass ein versehentliches Löschen oder Überschreiben eines Schlüssels zu Datenverlust führen kann; erstellen Sie im Zweifelsfall vorher ein Backup (siehe Kapitel Backup des opsi-Servers).

Addons

Auf diesem Reiter installieren Sie opsiconfd-Erweiterungen. Diese laden Sie zunächst von unserer Website opsi-Tools herunter und speichern sie auf dem opsi-Server. Dann klicken Sie auf dem Reiter Addons auf Durchsuchen, navigieren im Dateiauswahldialog zur Zip-Datei, wählen diese aus und klicken dann auf Install addon.

Zu den bereits installierten Erweiterungen sehen Sie in der Tabelle neben dem Namen und der ID auch die Versionsnummer und den Installationspfad auf dem Server.

Installieren Sie Addons und zeigen Sie Informationen zu diesen an.
Abbildung 11. Installieren Sie Addons und zeigen Sie Informationen zu diesen an.

Log Viewer

Der Reiter bietet schnellen Zugriff auf die opsiconfd-Logfiles (siehe Abschnitt Logfiles). Sie können die Anzeige vergrößern (Button Maximize), die Protokolle nach Loglevel (Filter by level), Kontext (Filter by context) und eigenen Suchbegriffen (Filter by message) filtern. Über Checkboxen aktivieren Sie weitere Funktionen, wie das automatische Zusammenfassen von mehrzeiligen Informationen zu einer einzigen zusammenhängenden Zeile (Collapse multi-line) und das automatische Scrollen (Auto scroll). Die Schriftgröße beeinflussen Sie über die beiden Buttons neben Font size.

Die Admin-Seite bietet schnellen Zugriff auf die *opsiconfd*-Logfiles.
Abbildung 12. Die Admin-Seite bietet schnellen Zugriff auf die opsiconfd-Logfiles.

Terminal

Wechseln Sie zu diesem Reiter, um ein Terminalfenster auf dem opsi-Server zu öffnen. Dazu wählen Sie aus dem Drop-down-Menü Host einen opsi-Server in Ihrer Umgebung aus (Voreinstellung: Configserver) und klicken auf Connect. Anschließend startet das Terminal im Browser; Sie sind als Benutzer opsiconfd angemeldet und starten damit in dessen Home-Verzeichnis /var/lib/opsi.

Öffnen Sie über diesen Reiter ein Terminal auf dem opsi-Server.
Abbildung 13. Öffnen Sie über diesen Reiter ein Terminal auf dem opsi-Server.

Klicken Sie auf den Button Maximize, um das Menü am oberen Rand der Admin-Seite auszublenden und dem Terminal mehr Raum zu geben. Normalize bringt Sie zurück zur alten Ansicht. Alternativ schalten Sie über Fullscreen in die Vollbildansicht, die Sie über die Taste [Esc] verlassen können. Über das Plus und das Minus neben Font size können Sie die Schriftgröße verändern, und ein Klick auf Disconnect schließt das Terminal im Browser.

Sie können Dateien per Klick oder per Drag & Drop hochladen. Das ist beispielsweise praktisch, wenn Sie ein selbst gebautes opsi-Paket (Dateiendung .opsi) installieren wollen. So gehen Sie dazu vor:
  1. Öffnen Sie das Terminal im Browser.

  2. Wechseln Sie ins Verzeichnis mit den Paketen: cd /var/lib/opsi/repository

  3. Ziehen Sie das Paket aus dem Dateimanager ins Browser-Terminal. (ls -l listet zur Kontrolle alle Dateien im aktuellen Verzeichnis auf.)

  4. Installieren Sie das Paket: opsi-package-manager -i <paket.opsi> (siehe auch Abschnitt opsi-package-manager)

Messagebus

Auf dem Reiter können Sie (zu Test- und Debugging-Zwecken) Nachrichten über den Message Bus versenden und empfangen. Der opsi-Server nutzt den Message Bus, um Nachrichten an andere Komponenten zu senden (z. B. Installationsaufträge, Änderungen der Konfiguration oder Statusabfrage von Clients).

Wählen Sie dazu aus dem Drop-down-Menü neben dem Button Send eines der Templates aus und füllen Sie es im oberen Feld mit den richtigen Werten. Klicken Sie abschließend auf Send. Im unteren Bereich des Reiters sehen Sie die gesendete Nachricht (links) und die Antwort vom opsi-Message-Bus (rechts).

Kommunizieren Sie mit dem opsi-Message-Bus über diesen Reiter.
Abbildung 14. Kommunizieren Sie mit dem opsi-Message-Bus über diesen Reiter.

Licensing

Auf dem Reiter Licensing können Sie einsehen, welche opsi-Erweiterungen lizenziert sind. Die erste Tabelle zeigt Informationen zum Lizenznehmer (Name, aktive und nicht-aktive Clients usw.), darunter sehen Sie eine detaillierte Auflistung über die opsi-Module, wann eine Lizenz ausgestellt wurde, wie lange sie noch gültig ist usw.

Blättern Sie ans Ende des Reiters, um neue Lizenzen im neuen Format (Endung .opsilic) einzuspielen. Diese werden auf dem opsi-Server im Verzeichnis /etc/opsi/licenses gespeichert.

Informationen zu Lizenzen für die Erweiterungen finden Sie auf diesem Reiter.
Abbildung 15. Informationen zu Lizenzen für die Erweiterungen finden Sie auf diesem Reiter.
Frühere opsi-Versionen nutzten zur Freischaltung die Datei /etc/opsi/modules. Sie behält ihre Gültigkeit, neue Lizenzen stellen wir jedoch nur noch im neuen Format aus. Wenden Sie sich an sales@uib.de, um eine Lizenzdatei im neuen Format zu erhalten.

Grafana

Der Reiter Grafana leitet Sie zum Grafanai-Dashboard weiter. Sobald Sie den Tab anklicken, wird das opsiconfd main dashboard auf dem Grafana-Server angelegt bzw. aktualisiert. Außerdem wird der Benutzer opsidashboard angelegt, der für den Zugriff auf das Dashboard verwendet wird.

Health Check

Der opsiconfd stellt einen Health Check bereit, der verschiedene Einstellungen und Versionen von opsi-Komponenten überprüfen und damit Hinweise auf eventuelle Probleme geben kann. Sie können den Health Check auf verschiedenen Wegen starten. Alle Varianten beziehen ihre Daten vom API-Call service_healthCheck. Die opsi-API liefert die Daten im JSON-Format zurück. Eine solche JSON-Datei ist besonders bei Support-Anfragen nützlich.

Eine Möglichkeit, einen Health Check zu starten, ist über die Admin-Seite, Reiter RPC-Interface (siehe Abschnitt RPC-Interface). Auch das WebGUI bietet schnellen Zugriff auf den Health Check. Auf der Kommandozeile rufen Sie den Befehl opsiconfd health-check auf. Über den Parameter --help blenden Sie eine Onlinehilfe ein; opsiconfd health-check --manual gibt eine Beschreibung aller Checks aus. Ohne weitere Optionen läuft der Check einmal durch und schreibt seine Ergebnisse nach Stdout.

Den Health Check können Sie im Terminal starten.
Abbildung 16. Den Health Check können Sie im Terminal starten.
Alternativ können Sie den Health Check auch mit dem Kommandozeilentool opsi-cli aufrufen (siehe Abschnitt opsi-cli support). Einen schnellen Zugriff auf ein Terminal auf dem opsi-Server bietet die Admin-Seite über den Reiter Terminal (siehe Abschnitt Terminal).

Logfiles

Der opsiconfd verwendet Redis, um die Logfiles zu schreiben (siehe Kapitel Redis). Darüber hinaus legt der opsiconfd im Verzeichnis /var/log/opsi/opsiconfd eigene Logfiles ab.

Wenn Probleme mit dem Zugriff auf Redis bestehen, findet keine Protokollierung statt. Um dennoch Logfiles zu generieren, können Sie den Parameter log-mode auf local stellen.

opsi unterscheidet 10 verschiedene Loglevel:

  • 0 - none: Logging komplett deaktiviert

  • 1 - essential: sehr wichtige Meldungen

  • 2 - critical: kritische Fehler

  • 3 - error: Fehler

  • 4 - warning: Warnungen

  • 5 - notice: wichtige Hinweise

  • 6 - info: weitere Informationen

  • 7 - debug: Meldungen zur Fehlersuche

  • 8 - trace: sehr viele Details, z. B. Mitschnitt der Kommunikation

  • 9 - secret: vertrauliche Informationen

Die folgenden Parameter steuern den Loglevel:

  • log-level: allgemeiner Loglevel (bis zu welchem Loglevel werden Meldungen in den Redis-Stream übertragen)

  • log-level-stderr: Level der Ausgaben auf dem Terminal (Stderr)

  • log-level-file: Loglevel der Logdateien

Verwenden Sie das Kommando opsiconfd log-viewer, um die Protokolle im Terminal zu betrachten:

opsiconfd log-viewer -l 6 --log-filter="client_address=192.168.1.1"

Da der Aufruf den Log-Stream direkt aus Redis liest, erfolgt die Ausgabe maximal bis zur Stufe log-level.

Alternativ können Sie die Logfiles auf dem Reiter Log Viewer im Admin-Interface anschauen (siehe Abschnitt Log Viewer).

Filter

Der opsiconfd gliedert die Logfiles in Kanäle und Kontexte. Daher können Sie die Meldungen filtern, um nur bestimmte Informationen zu erhalten. Den Loglevel für einen Kanal setzen Sie mit dem Parameter log-levels. Über .*:4,opsiconfd\.headers:8 werden nur Warnungen protokolliert, Meldungen im Kanal opsiconfd.headers jedoch mit dem Loglevel trace.

Nach Kontexten filter der Parameter log-filter. Für den opsiconfd kommt im Wesentlichen der Kontext client_address zum Einsatz. So können Sie beispielsweise mit client_address=192.168.1.1,192.168.1.2 bestimmen, dass Sie nur Meldungen sehen, die mit den beiden Clients mit der IP 192.168.1.1 und 192.168.1.2 zusammenhängen.