Zum Inhalt springen

Betrieb, Protokolle und Diagnose

Im laufenden Betrieb interessieren drei Fragen: Läuft der Dienst? Was sagt er? Und was tut er, wenn etwas fehlt?

GET /health -> {"ok":true}

Lesen Sie diese Antwort genau so, wie sie gemeint ist: sie beweist, dass der Prozess antwortet — mehr nicht. Sie prüft nicht die Datenbank und nicht die Verbindungen zur Anlage. Für einen Neustart durch die Container-Aufsicht reicht sie; als Aussage „alles in Ordnung” reicht sie nicht.

Ob es der Anlage gut geht, sehen Sie an anderer Stelle: unter Einstellungen › Verbindungen steht je Verbindung ihr Zustand.

Der Dienst schreibt strukturierte Zeilen im JSON-Format nach stdout. In einem Container heißt das: das Protokoll holt sich Ihre gewohnte Container-Protokollierung ab. TrakState schreibt keine eigenen Protokolldateien.

Jede Zeile trägt, wo sie herkommt: Mandant, Benutzer, Plugin, Herkunft (Oberfläche oder Server), Vorgangskennung und — bei Skripten — den Skriptpfad.

LOG_LEVEL steuert, wie viel geschrieben wird. Ohne Angabe gilt info. Für die Fehlersuche ist debug der richtige Wert; er ist gesprächig, also nicht dauerhaft.

Am unteren Rand der Oberfläche kann eine Diagnoseleiste sitzen. Sie ist ausgeblendet, bis Sie sie zur Fehlersuche einschalten, und zwar in dem Browser, in dem Sie suchen: Hängen Sie ?diagnostics=on an die Adresse, etwa /settings/scripts?diagnostics=on (steht dort schon ein ?, dann &diagnostics=on). Der Browser merkt sich das; ?diagnostics=off blendet sie wieder aus. Mit ihr erscheinen auch die Wege dorthin: Live in der Diagnose im Dock der Skriptseite und In Diagnose anzeigen im Menü eines Plugins.

Eingeschaltet ist sie zunächst eingeklappt und kostet in diesem Zustand nichts: erst beim Aufklappen mit Diagnose einblenden wird überhaupt ein Datenstrom geöffnet.

Aufgeklappt zeigt sie die Protokollzeilen live, filterbar nach Stufe, Plugin und Herkunft. Zu sehen sind die eigenen Zeilen; je nach Berechtigung lassen sich auch die aller Benutzer einblenden. Das entscheidet der Server, nicht die Oberfläche.

Zwei Grenzen, die Sie kennen sollten:

Grenze Voreinstellung Bedeutung
LOG_HISTORY_LINES_PER_TENANT 1000 Zeilen Der Verlauf liegt im Arbeitsspeicher und ist nach einem Neustart weg.
LOG_INGEST_LINES_PER_MINUTE 100 Zeilen So viel darf ein Browser pro Minute in das Protokoll schreiben.

Die Diagnoseleiste ist damit ein Werkzeug für jetzt, keine Ablage. Was Sie aufbewahren wollen, muss aus dem Container-Protokoll kommen.

Unter Einstellungen › Audit steht, wer wann was geändert hat. Das ist etwas anderes als das Protokoll: das Protokoll ist technisch und flüchtig, der Audit-Verlauf ist fachlich und liegt in der Datenbank. Einzelheiten stehen im Kapitel Audit.

TrakState startet lieber nicht, als still falsch zu laufen. Wenn eine Instanz nicht hochkommt, steht die Ursache in der ersten Fehlerzeile. Die häufigsten:

Meldung dreht sich um Ursache
JWT_SECRET Im Produktivbetrieb kürzer als 32 Zeichen.
Die Laufzeitrolle Sie könnte den Zeilenschutz umgehen. Das würde die Mandantentrennung aushebeln.
Ein fehlendes Kennwort in der Verbindungszeichenfolge Im eigenen Netz und im Mietbetrieb muss die Datenbankverbindung eines tragen.
Die Betriebsdatenverbindung Sie ist nicht von der Anwendungsdatenbank getrennt.
Produktionsanzeichen im Profil local-dev Das Entwicklungsprofil ist in einer echten Umgebung gestartet worden.

Umgekehrt gilt: Fehlt etwas Optionales, läuft die Instanz, und nur der davon abhängige Vorgang scheitert — mit einer Meldung, die ihn benennt.

Fehlt Folge
Vertrauensanker Pakete mit Server-Anteil lassen sich nicht installieren. Alles andere läuft.
Install-Verbindung Pakete mit eigenen Tabellen lassen sich nicht installieren, aktualisieren oder entfernen.
Paketspeicher Es lässt sich überhaupt kein Paket installieren.
Schlüsseldatei für Zugangsdaten Betroffene Verbindungen bleiben unten, namentlich im Protokoll benannt.
Broker-Startwert Die Instanz startet ohne Konnektor; Verbindungen legen Sie in der Oberfläche an.
  1. Verbindungen — steht jede auf dem erwarteten Zustand?
  2. Das Protokoll auf Fehlerstufe — besonders nach einem Neustart.
  3. Freier Plattenplatz der Datenbank und der Dateiablage.
  4. Dass die Sicherung tatsächlich läuft — TrakState überwacht das nicht für Sie.