Fehlersuche

Typische Störungen mit Ursache und Abhilfe sowie eine Übersicht wichtiger Fehlermeldungen

Zielgruppe: Technische Administration

Überblick

Dieses Kapitel ordnet typische Störungen nach Symptom. Zu jedem Symptom findest du die wahrscheinliche Ursache und die Abhilfe. Am Ende steht eine Tabelle mit wichtigen Fehlermeldungen. Die Meldungen des Servers erscheinen in der Sprache der Oberfläche; dieses Kapitel zitiert sie in der deutschen Fassung.

Erste Anlaufstellen

QuelleInhalt
Seite SystemstatusZustand von Datenbank, Redis, Objektspeicher, Worker und opsi-Server, siehe Systemstatus
Seite Jobsvollständiges Protokoll jedes Jobs mit Fehlermeldung, siehe Jobs
docker compose ps -awelche Container laufen, welche beendet sind (mit Exit-Code)
docker logs opbweb-apiStart, Migrationen, Anmeldung, LDAP
docker logs opbweb-workerJobs, opsi-Verbindung
docker logs opbweb-garage-initEinrichtung des Objektspeichers
Statusleiste der Oberfläche„Backend nicht verbunden“, wenn die API nicht antwortet; orangefarbener Hinweis bei Problemen mit dem opsi-Server

Stack startet nicht

SymptomUrsacheAbhilfe
start.sh meldet „.env fehlt – bitte ./setup-opbweb.sh ausführen (im Entwickler-Checkout: ./setup-opbweb.sh –dev).“keine .env./setup-opbweb.sh (oder cp .env.example .env)
API startet nicht, Log: „Secret file not found: …“Secret-Datei fehlt, etwa weil der Stack mit docker compose statt mit ./start.sh gestartet wurde./start.sh verwenden oder ./scripts/init-secrets.sh ausführen
API beendet sich nach etwa 60 Sekunden, Log: „Database not reachable: …“MariaDB nicht bereit oder Passwort passt nicht zum Volumedocker logs opbweb-db prüfen; bei geändertem db_password.txt siehe Konfiguration
api, worker und frontend starten nicht, garage-init mit Exit-Code ungleich 0Einrichtung des Objektspeichers fehlgeschlagendocker logs opbweb-garage-init; „ERROR: No admin token found“ bedeutet fehlendes secrets/garage_admin_token.txt
garage-init meldet dauerhaft „Not ready yet, retrying in 2s…“Garage startet nicht oder das Admin-Token passt nichtdocker logs opbweb-garage; Token in secrets/ nicht nachträglich ändern
Log der API: „No users and no ADMIN_PASSWORD configured - no initial admin created“secrets/admin_password.txt leer oder fehlt bei leerer BenutzertabelleDatei füllen bzw. von init-secrets.sh anlegen lassen, Stack neu starten

Anmeldung

„Benutzername oder Passwort falsch.“ Bei lokalen Konten zählt jeder Fehlversuch. Nach 5 Fehlversuchen von derselben Adresse ist das Konto für diese Adresse 15 Minuten gesperrt: „Konto gesperrt bis HH:MM Uhr.“ Von anderen Adressen kann sich der Benutzer weiter anmelden; für alle gesperrt wird das Konto erst nach 50 Fehlversuchen. Nach 20 Fehlversuchen von einer Adresse (über alle Konten) antwortet oPBWeb mit „Zu viele fehlgeschlagene Anmeldungen von dieser Adresse.“ Ein Administrator hebt die Sperre unter Benutzer und Rollen mit Sperre aufheben auf; auch Passwort setzen entsperrt das Konto. Siehe Benutzer und Rollen .

Passwort des einzigen Administrators vergessen. Ein Werkzeug zum Zurücksetzen ohne Anmeldung gibt es nicht. Ein anderer Administrator (lokal oder über eine LDAP-Gruppe) kann das Passwort setzen. Lege deshalb früh ein zweites Administrator-Konto an. secrets/admin_password.txt wirkt nur beim allerersten Start.

„Konto ist deaktiviert.“ Das Konto ist in oPBWeb deaktiviert. Ein Administrator aktiviert es unter Benutzer und Rollen wieder.

LDAP-Meldungen („Verzeichnisdienst nicht erreichbar.“, „Keine Berechtigung für oPBWeb (keine passende Gruppe).“): siehe LDAP-Anmeldung .

Nach dem Neuladen der Seite oder nach etwa 15 Minuten wieder abgemeldet. Die Sitzung wird über das Cookie opbweb_refresh erneuert. Steht COOKIE_SECURE=true, während oPBWeb nur per HTTP erreichbar ist, speichert der Browser das Cookie nicht. Setze COOKIE_SECURE passend zum Protokoll und starte mit ./start.sh neu.

„Sitzung abgelaufen.“ Das Token ist ungültig oder wurde widerrufen, zum Beispiel nach einer Abmeldung, nach 7 Tagen ohne Erneuerung oder nach einem Wechsel von secrets/jwt_secret_key.txt. Neu anmelden.

Verbindung zum opsi-Server

Den Zustand zeigt die Zeile opsi-Server im Systemstatus, mit einem Eintrag je Configserver; dazu kommt der farbige Punkt vor jedem Configserver in der Ansicht Depots. Der Worker prüft alle Configserver alle 5 Minuten; nach einer Änderung kannst du unter Depots → Configserver mit Verbindung testen sofort prüfen. Die Einrichtung beschreibt Configserver .

SymptomUrsacheAbhilfe
„noch nicht geprüft“Worker gerade gestartetbis zum nächsten Prüflauf warten (Standard 5 Minuten) oder Verbindung testen
„Kein Configserver eingerichtet (Depots → Configserver hinzufügen).“kein Configserver hinterlegtunter Depots mit + einen Configserver hinzufügen
„Für den opsi-Server ist kein CA-Zertifikat hinterlegt (Depots → Configserver).“TLS-Prüfung ohne CAVom Server holen, Fingerabdruck vergleichen, Vertrauen, Speichern
TLS- oder Zertifikatsfehler trotz CAURL mit IP-Adresse statt Hostname; das Zertifikat von opsiconfd lautet auf den FQDNURL mit FQDN eintragen, z. B. https://opsi.example.local:4447
„Der Server liefert ein anderes CA-Zertifikat als hinterlegt (Rotation?)“, im Systemstatus „Server liefert ein neues CA-Zertifikat, bitte unter Depots übernehmen“opsi hat seine CA erneuertunter Depots beim betroffenen Configserver Neues Zertifikat übernehmen; bis dahin schlagen Verbindungen fehl, sobald der Server die neue CA verwendet
„CA-Zertifikat läuft in N Tagen ab“Warnung 60 Tage vor AblaufCA auf dem opsi-Server erneuern lassen und anschließend übernehmen
„… hat keine opsi-Admin-Rechte“, im Systemstatus „Anmeldung ohne Admin-Rechte“technischer Benutzer ist kein opsi-AdminBenutzer in die Admin-Gruppe von opsi aufnehmen
HTTP 403 bei Aufrufen trotz richtigem Passwortadmin-networks in opsiconfd schließt die Adresse des Workers aussiehe admin-networks
„Configserver nicht erreichbar: …“Netz, DNS oder Firewall zwischen Worker und Port 4447Erreichbarkeit aus dem Worker prüfen (siehe unten)
„Ein Configserver mit dieser URL ist bereits eingerichtet: …“dieselbe URL soll ein zweites Mal angelegt werdenvorhandenen Configserver in der Liste auswählen
im Job-Protokoll „Depot … gehört bereits zum Configserver … und wird übersprungen“derselbe opsi-Server ist unter zwei URLs eingerichtetdoppelten Configserver entfernen
Anmeldung am opsi-Server schlägt nach einer Wiederherstellung fehlopsi_key_private.pem passt nicht zur DatenbankPasswort des technischen Benutzers neu eintragen

Erreichbarkeit aus dem Worker-Container prüfen (Beispiel; -k nur für diesen Test, weil die opsi-CA im Container nicht bekannt ist):

docker exec opbweb-worker curl -sk -o /dev/null -w '%{http_code}\n' https://opsi.example.local:4447/

Eine HTTP-Statusnummer zeigt, dass Namensauflösung und Verbindung funktionieren. Ein Fehler wie „Could not resolve host“ oder ein Timeout weist auf DNS oder Firewall hin.

Bauen

Fehler beim Bauen stehen im Protokoll des Jobs „Bauen“ unter Jobs.

MeldungAbhilfe
„Script Datei (Aktion) fehlt in CLIENT_DATA.“Das in den Produktdaten eingetragene Script fehlt im Paket. Datei hochladen oder Eintrag korrigieren.
„Für diese Version läuft bereits ein Build.“Ende des laufenden Builds abwarten.
„Die Version wurde während des Builds geändert. Bitte erneut bauen.“Während des Builds wurde gespeichert. Erneut Bauen.
„Version X ist freigegeben; zum Neubauen „Zurück auf Entwurf“.“Freigegebene Versionen sind schreibgeschützt. Zurück auf Entwurf oder Neue Version.
„Archiv konnte nicht erstellt werden: …“Details in der Meldung prüfen; häufig fehlt Speicherplatz auf dem Host oder der Objektspeicher ist nicht erreichbar.
„Das Paket kann so nicht gebaut werden.“Die Prüfung vor dem Bauen hat Fehler gefunden; jeder Fehler steht einzeln im Job-Protokoll. Korrigieren und erneut Bauen.

Installieren und Deinstallieren

Symptom oder MeldungUrsacheAbhilfe
Installieren … ist ausgegraut bzw. „Die Version wurde noch nicht gebaut oder seit dem letzten Bauen geändert. Bitte zuerst bauen.“kein aktueller Builderneut Bauen
„Für das Depot Depot (Stufe) ist die Rolle Releaser nötig.“produktives Depot, Rolle PackagerReleaser beauftragen oder Depot-Stufe prüfen, siehe Depot-Verwaltung
„Depot Depot ist deaktiviert oder nicht mehr vorhanden.“Depot in oPBWeb deaktiviert oder vom Configserver nicht mehr gemeldetAbgleichen unter Depots, ggf. Depot aktivieren
„Installation fehlgeschlagen auf: …“Fehler von opsiconfd beim Upload oder bei depot_installPackageJob-Protokoll und Log von opsiconfd prüfen
Produkt im Depot als „gesperrt“ markierteine abgebrochene Installation hat die Sperre hinterlassenunter Depots → Installierte Produkte markieren und Entsperren (n), oder im Installationsdialog „Installation erzwingen (force), auch wenn das Produkt gesperrt ist“
„[Depot] Depot ist zu lange durch einen anderen Job belegt.“ein anderer Job hält das Depot länger als 6 Stundenunter Jobs den laufenden Job prüfen; bei hängendem Worker docker restart opbweb-worker
Upload großer Pakete bricht abZeitlimit für Upload und Installation erreichtOPSI_INSTALL_TIMEOUT_SECONDS erhöhen; bei vielen Depots auch JOB_TIMEOUT_SECONDS
Job endet mit „Abgebrochen: Zeitlimit des Jobs überschritten oder Worker beendet.“Job länger als JOB_TIMEOUT_SECONDS oder Worker neu gestartetLimit erhöhen bzw. Job neu starten; eine dabei freigegebene, nirgends installierte Version ist wieder ein Entwurf
Version ist freigegeben, obwohl die Installation fehlschlugoPBWeb gibt die Version beim Start des Installations-Jobs freigewollt; für Änderungen Zurück auf Entwurf oder Neue Version

Worker nicht erreichbar

Symptome: Im Systemstatus meldet die Zeile Worker „kein Lebenszeichen“ oder „letztes Lebenszeichen vor N s“; Jobs bleiben im Zustand wartend; der Dateimanager unter Depots meldet „Worker nicht erreichbar.“ oder „Der Worker antwortet nicht.“

Ursachen und Abhilfe:

  1. Prüfe, ob der Container läuft: docker compose ps worker.
  2. Lies das Log: docker logs --tail=200 opbweb-worker. Häufige Ursachen sind fehlende Secrets, keine Verbindung zu Redis oder ein Fehler beim Start.
  3. Starte den Worker neu: docker restart opbweb-worker.
  4. „Der Worker antwortet nicht.“ kann auch bedeuten, dass der Worker ausgelastet ist. Er führt höchstens 10 Jobs gleichzeitig aus; Dateimanager-Aufrufe warten höchstens 60 Sekunden. Warte laufende Jobs ab und versuche es erneut.

Objektspeicher

SymptomUrsacheAbhilfe
Systemstatus Objektspeicher: „Bucket ‘packages’ fehlt“garage-init lief nicht oder nicht erfolgreichdocker logs opbweb-garage-init, dann ./start.sh
Zugriff auf den Objektspeicher verweigert, etwa nach einer WiederherstellungS3-Zugangsdaten im Volume garage-credentials passen nicht zum Schlüssel in Garage./stop.sh, docker volume rm opbweb_garage-credentials, ./start.sh
Dateien lassen sich nicht öffnen, Systemstatus meldet fehlende BlobsDatenbank und Objektspeicher stammen aus unterschiedlichen Zeitpunktenkonsistente Sicherung zurückspielen, siehe Sicherung und Wiederherstellung ; betroffene Versionen neu bauen
Speicherplatz auf dem Host wird knappalte Blobs und Build-Ergebnisse gelöschter PaketeBereinigen … im Systemstatus ; Belegung der Volumes mit docker system df -v prüfen

Uploads und Zeitlimits

SymptomUrsacheAbhilfe
Upload bricht mit HTTP 413 abDatei größer als 20 GB (client_max_body_size)Datei verkleinern oder auf anderem Weg ins Paket bringen, etwa über die Workbench
„Netzwerkfehler beim Hochladen“Verbindung zwischen Browser und Server abgebrochen, Proxy dazwischen mit eigenem Limitvorgeschaltete Proxys und Firewalls auf Größen- und Zeitlimits prüfen
lange Anfragen brechen nach etwa 11 Minuten abnginx-Timeout von 660 Sekunden ohne Datenfluss zur APIlange Vorgänge laufen als Jobs; bei eigenen Proxys davor ähnliche Timeouts setzen

Hochgeladene Dateien, die nicht verarbeitet wurden, löscht der Worker nach 24 Stunden.

HTTPS und Zertifikate

SymptomUrsacheAbhilfe
HTTPS antwortet nicht, nur HTTPcerts/fullchain.pem oder certs/key.pem fehlt oder ist falsch benanntDateinamen prüfen; Log von opbweb-frontend zeigt „Kein TLS-Zertifikat – HTTP auf Port 80“
Frontend startet nicht nach ZertifikatswechselZertifikat und Schlüssel passen nicht zusammen oder sind beschädigtdocker logs opbweb-frontend; Paar prüfen
neues Zertifikat wird nicht ausgeliefertnginx liest Zertifikate nur beim Startdocker restart opbweb-frontend
HTTP geht nach Umstellung von HTTPS zurück im Browser nicht mehrHSTS-Header (ein Jahr) im Browser gespeichertbei HTTPS bleiben oder HSTS-Eintrag im Browser löschen
Abmeldung nach NeuladenCOOKIE_SECURE passt nicht zum Protokollsiehe Anmeldung

Wichtige Fehlermeldungen

MeldungBedeutungAbhilfe
Nicht angemeldet.kein Token mitgeschicktneu anmelden
Sitzung abgelaufen.Token ungültig oder widerrufenneu anmelden
Konto nicht verfügbar.Konto gelöscht oder deaktiviertAdministrator fragen
Keine Berechtigung für diese Aktion.Rolle reicht nicht (HTTP 403)Rolle prüfen
Benutzername oder Passwort falsch.falsche Anmeldedaten oder unbekannter BenutzerEingabe prüfen; Sperre nach 5 Fehlversuchen von derselben Adresse
Zu viele fehlgeschlagene Anmeldungen von dieser Adresse.20 Fehlversuche von einer Adresse innerhalb von 15 Minutenwarten
Konto gesperrt bis HH:MM Uhr.lokale Sperre nach Fehlversuchenwarten oder Sperre aufheben
Konto ist deaktiviert.Konto in oPBWeb deaktiviertKonto aktivieren
Verzeichnisdienst nicht erreichbar.LDAP-Verbindung oder -Suche fehlgeschlagenLDAP-Anmeldung
Keine Berechtigung für oPBWeb (keine passende Gruppe).LDAP-Anmeldung ohne passende GruppeGruppenzuordnung prüfen
Der letzte aktive Administrator kann nicht entfernt (bzw. gelöscht) werden.Schutz des letzten Administratorszuerst einen weiteren Administrator anlegen
Version X ist freigegeben (installiert) und schreibgeschützt. …Bearbeiten einer freigegebenen VersionZurück auf Entwurf oder Neue Version
Script Datei (Aktion) fehlt in CLIENT_DATA.Script fehlt beim BauenDatei ergänzen
Die Version wurde noch nicht gebaut oder seit dem letzten Bauen geändert. Bitte zuerst bauen.Installieren ohne aktuellen BuildBauen
Für das Depot Depot (Stufe) ist die Rolle Releaser/Packager nötig.Stufen-Regel der DepotsRolle oder Depot-Stufe prüfen
[Depot] Depot ist zu lange durch einen anderen Job belegt.Depot-Sperre länger als 6 hhängenden Job bzw. Worker prüfen
Installation fehlgeschlagen auf: …Fehler von opsiconfdJob-Protokoll, opsiconfd-Log
Configserver nicht erreichbar: …Netzwerk zum opsi-ServerErreichbarkeit aus dem Worker prüfen
Kein Configserver eingerichtet (Depots → Configserver hinzufügen).kein Configserver konfiguriertConfigserver unter Depots hinzufügen
Für den opsi-Server ist kein CA-Zertifikat hinterlegt (Depots → Configserver).CA fehltVom Server holen
Ein Configserver mit dieser URL ist bereits eingerichtet: NameURL doppeltvorhandenen Configserver verwenden
Der Server liefert ein anderes CA-Zertifikat als hinterlegt (Rotation?)CA-RotationNeues Zertifikat übernehmen
Benutzer hat keine opsi-Admin-Rechtetechnischer Benutzer ohne Admin-RechteRechte in opsi vergeben
{Methode}: HTTP {Code} …opsiconfd lehnt ab, bei 403 meist admin-networksadmin-networks
Worker nicht erreichbar. / Der Worker antwortet nicht.Worker gestoppt oder ausgelastetWorker nicht erreichbar
Download-Link ungültig oder abgelaufen.Link älter als 2 MinutenDownload erneut anstoßen
Zum Löschen ist ein Probelauf nötig. / Der Probelauf fehlt oder ist älter als eine Stunde. Bitte erneut prüfen.Bereinigung ohne gültigen Probelaufneuen Probelauf starten
Es laufen gerade Importe oder Builds. Bitte nach deren Ende erneut starten.Bereinigung blockiertspäter erneut starten
Unerwarteter Fehler: …nicht abgefangener Fehler im JobJob-Protokoll und Log des Workers prüfen
Secret file not found: PfadSecret-Datei fehlt beim Start./start.sh bzw. init-secrets.sh
Database not reachable: …Datenbank nach 60 s nicht erreichbarLog von opbweb-db