Systemstatus

Dienste überwachen, Datenbank und Objektspeicher auswerten, den Bucket durchsuchen und nicht mehr verwendete Objekte bereinigen

Rolle: Administrator

Überblick

Der Bereich Systemstatus zeigt, ob alle Dienste von oPBWeb laufen, und gibt Administratoren Einblick in die Belegung von Datenbank und Objektspeicher. Du öffnest ihn über das Symbol Systemstatus unten in der Aktivitätsleiste.

Die Tabelle der Dienste sehen alle Rollen. Die Abschnitte Datenbank, Objektspeicher mit Bereinigen … und Bucket-Inhalt sehen nur Administratoren.

Dienste prüfen

Systemstatus mit der Tabelle der Dienste

In der Werkzeugleiste fasst ein Abzeichen den Zustand zusammen: „Alle Dienste erreichbar“, „Mindestens ein Dienst ist nicht erreichbar“ oder „API nicht erreichbar“. Daneben steht „Stand HH:MM:SS“. Die Tabelle aktualisiert sich alle zehn Sekunden von selbst; mit Aktualisieren lädst du sofort neu.

DienstWas geprüft wirdTypischer Inhalt von Details
DatenbankVerbindung zu MariaDBVersion und Schemastand
RedisVerbindung zu Redis (Warteschlange der Jobs)Redis-Version
Objektspeicherob der Bucket vorhanden istName des Buckets oder „Bucket ‘…’ fehlt“
WorkerLebenszeichen des Workers, der alle Jobs ausführt„Lebenszeichen vor n s“; Fehler bei „kein Lebenszeichen“ oder wenn das letzte länger als 90 Sekunden zurückliegt
opsi-ServerErgebnis der letzten automatischen Prüfung aller Configserverje Configserver ein Eintrag „Name: opsi-Version · Benutzer@URL · Depots · CA gültig bis …“, getrennt durch „|“; „kein Configserver eingerichtet“, wenn es keinen gibt

Die Spalte Status zeigt OK oder Fehler, Dauer die Antwortzeit der Prüfung in Millisekunden.

Die Zeile opsi-Server steht auf Fehler, sobald einer der Configserver nicht erreichbar ist, ein neues CA-Zertifikat liefert oder seine CA in weniger als 60 Tagen abläuft – auch wenn alle anderen in Ordnung sind. Der Eintrag des betroffenen Servers nennt den Grund, zum Beispiel „Server liefert ein neues CA-Zertifikat, bitte unter Depots übernehmen“. Was dann zu tun ist, steht in Configserver . Steht dort „noch nicht geprüft“, hat der Worker noch keine Prüfung abgeschlossen; das Ergebnis kommt spätestens nach fünf Minuten.

Speicherbelegung

Die Abschnitte Datenbank und Objektspeicher werden beim Öffnen der Seite und mit Aktualisieren geladen, nicht alle zehn Sekunden.

Abschnitte „Datenbank“ und „Objektspeicher“

Datenbank

Über der Tabelle steht die Gesamtgröße, zum Beispiel „48 MB in 21 Tabellen“. Die Tabelle listet jede Datenbanktabelle, die größte zuerst:

SpalteInhalt
TabelleName der Tabelle
ZeilenAnzahl der Datensätze, exakt gezählt
DatenSpeicherplatz der Daten
IndexSpeicherplatz der Indizes
GrößeDaten und Index zusammen
AnteilAnteil an der Gesamtgröße als Balken und Prozentwert

Die Größen stammen aus der Statistik von MariaDB, die verzögert aktualisiert wird. Nach größeren Änderungen stimmen sie deshalb eine Weile nicht ganz genau.

Objektspeicher

Im Objektspeicher liegen die Dateien der Pakete und die Build-Ergebnisse. Über der Tabelle steht „Bucket „packages“: 4,8 GB in 1.523 Objekten“. Die Tabelle teilt den Inhalt in Bereiche auf:

BereichInhalt
Paketdateien (blobs/)Inhalte aller Dateien aller Paketversionen. Jeder Inhalt liegt nur einmal da, auch wenn viele Versionen dieselbe Datei enthalten.
Build-Ergebnisse (artifacts/)gebaute .opsi-Dateien mit .md5 und .zsync
Uploads (temporär) (uploads/)hochgeladene Dateien, die noch verarbeitet werden
Downloads (temporär) (downloads/)Dateien, die für einen Download vom Depot bereitliegen
Bucket-Wurzel (/)Objekte außerhalb dieser Bereiche

Uploads und Downloads, die älter als 24 Stunden sind, löscht oPBWeb jede Nacht automatisch.

Unter der Tabelle stehen bis zu drei Kennzahlen:

  • Ersparnis durch Deduplizierung: „Paketdateien: 12,6 GB über alle Versionen, davon 4,1 GB tatsächlich gespeichert, Ersparnis durch Deduplizierung 8,5 GB.“ Je mehr Versionen eines Pakets es gibt, desto größer ist die Ersparnis, weil unveränderte Dateien nicht doppelt gespeichert werden.
  • Nicht verwendete Blobs: „37 Blobs werden von keiner Paketdatei mehr verwendet.“ Solche Inhalte bleiben nach dem Löschen von Versionen oder Dateien zurück. Du entfernst sie mit Bereinigen … .
  • Fehlende Blobs (rot): „2 Paketdateien verweisen auf fehlende Blobs.“ Das sollte nie vorkommen und deutet auf einen beschädigten oder unvollständig wiederhergestellten Objektspeicher hin. Wende dich an die technische Administration.

Bucket-Inhalt durchsuchen

Unter Bucket-Inhalt kannst du den Objektspeicher wie einen Dateibaum durchsehen. Der Browser ist schreibgeschützt: Du kannst Objekte ansehen und herunterladen, aber nichts ändern oder löschen.

Bucket-Inhalt in einem Ordner unter blobs/ mit der Spalte „Verwendet von“

  1. Klick auf einen Ordner, um ihn zu öffnen. Mit der Pfadleiste über der Tabelle (beginnend mit /) oder der Zeile „‹ eine Ebene höher“ gehst du zurück.
  2. Grenz die Anzeige mit dem Feld Filtern ein. ⟳ lädt den Ordner neu.
  3. Zum Herunterladen klick auf ↓ am Zeilenende oder doppelklick auf die Zeile.

Die Tabelle zeigt Name, Größe und Geändert. In den Bereichen blobs/ und artifacts/ gibt es zusätzlich die Spalte Verwendet von:

  • Ein Link führt zur Paketversion, die das Objekt verwendet; bei Paketdateien steht der Dateipfad im Paket dahinter.
  • „+n“ heißt, dass weitere Versionen oder Dateien dasselbe Objekt verwenden. Fahr mit der Maus über die Zelle, um die Liste zu sehen.
  • nicht verwendet heißt, dass keine Paketversion das Objekt mehr braucht. Es ist ein Kandidat für die Bereinigung.

Die Objekte unter blobs/ heißen nach dem SHA-256-Hashwert ihres Inhalts, nicht nach dem Dateinamen im Paket. Welche Datei dahintersteckt, zeigt die Spalte Verwendet von.

Objektspeicher bereinigen

Wenn Versionen oder Dateien gelöscht werden, bleiben ihre Inhalte zunächst im Objektspeicher. Mit Bereinigen … entfernst du Paketdateien (blobs/) und Build-Ergebnisse (artifacts/), die nichts mehr verwendet. Die Bereinigung läuft in zwei Schritten: Ein Probelauf ermittelt, was gelöscht würde, und erst nach deiner Bestätigung wird gelöscht.

  1. Klick im Abschnitt Objektspeicher auf Bereinigen …. Ein Probelauf startet als Job; die Schaltfläche zeigt „Läuft …“.
  2. Findet der Probelauf nichts, erscheint neben der Schaltfläche „Nichts zu bereinigen“ oder „Nichts zu bereinigen, 5 nicht verwendete Objekte sind jünger als 24 Stunden“. Du bist fertig.
  3. Andernfalls öffnet sich der Dialog Objektspeicher bereinigen. Er zeigt:
    • die Gesamtzahl und -größe, etwa „Der Probelauf hat 37 nicht verwendete Objekte gefunden (1,2 GB).“
    • Anzahl und Größe je Bereich
    • eine Liste mit Beispielen; die vollständige Liste steht im Protokoll des Jobs unter Jobs
    • wie viele nicht verwendete Objekte jünger als 24 Stunden sind und erhalten bleiben
  4. Prüf die Angaben und klick auf 37 Objekte löschen. Mit Abbrechen schließt du den Dialog, ohne etwas zu löschen.
  5. Der Löschlauf startet als zweiter Job. Danach steht neben der Schaltfläche zum Beispiel „37 Objekte gelöscht, 1,2 GB freigegeben“.

Für die Bereinigung gelten mehrere Schutzregeln:

  • 24 Stunden Schonfrist: Nur Objekte, die älter als 24 Stunden sind, kommen in Frage. Frisch hochgeladene Inhalte, die gerade erst einer Version zugeordnet werden, bleiben so verschont.
  • Probelauf eine Stunde gültig: Gelöscht werden nur Objekte aus dem bestätigten Probelauf. Ist er älter als eine Stunde, lehnt oPBWeb das Löschen ab („Der Probelauf fehlt oder ist älter als eine Stunde. Bitte erneut prüfen.“). Starte dann Bereinigen … neu.
  • Erneute Prüfung beim Löschen: Jedes Objekt wird unmittelbar vor dem Löschen noch einmal geprüft. Wird es inzwischen wieder verwendet, bleibt es erhalten.
  • Nicht während Importen und Builds: Solange ein Import oder Build wartet oder läuft, startet keine Bereinigung („Es laufen gerade Importe oder Builds. Bitte nach deren Ende erneut starten.“). Beginnt während des Löschens ein Import oder Build, bricht der Löschlauf ab. Bereits gelöschte Objekte bleiben gelöscht, den Rest erwischst du beim nächsten Durchgang.

Der bestätigte Löschlauf steht im Protokoll als storage.cleanup.