Management Console
Dies ist die Operations Console eines Data-Lake-Knotens. Über den Browser können Status, Metriken, Logs, Diagnosen, Einstellungen, Backups und Worker in einem einzigen Bildschirm eingesehen, zugelassene pd Befehle ausgeführt und über die gleiche Adresse eine Health-API für externe Überwachungssysteme (Grafana, Prometheus, Zabbix) bereitgestellt werden.
| Punkt | Wert |
|---|---|
| Backend-Modul | plantpulse-datalake-admin-api |
| Ausführungsumgebung | In plantpulse-datalake Container — sowohl Master- als auch Worker-Knoten |
| Adresse (TLS) | https://<server-ip>:4950/ |
| Adresse (Klartext) | http://<server-ip>:4949/ — Gleiche Console, gleiche API |
| Login | PP_DATALAKE_ADMIN_USER (Standard admin) / PP_DATALAKE_ADMIN_PASSWORD |
| Standardsprache | Englisch. Anhängen von ?lang=ko für Koreanisch |
Dokumente dieses Abschnitts
| Bildschirm | Funktion |
|---|---|
| Diese Seite | Allgemeine Console — Verbindung, Login, Bildaufbau |
| Batch | Status und Historie von Batch-Jobs |
| Warehouse | Ladezustand des Warehouse |
| Assistant | Aktuelle Probleme, Ursachen und Lösungen — Fragen in natürlicher Sprache und Genehmigungskarten |
Verbindung
Rufen Sie eine der zwei Adressen im Browser auf. Es handelt sich um die gleiche Console, nur das Schema unterscheidet sich.
https://<server-ip>:4950/?lang=ko # TLS — 권장
http://<server-ip>:4949/?lang=ko # 평문 — 4950 으로 리다이렉트하지 않습니다
Login-Passwörter und Session-Cookies werden unverschlüsselt übertragen. In nicht vertrauenswürdigen Netzwerken muss zwingend 4950 verwendet werden. Dass 4949 beibehalten wurde, ist eine bewusste Entscheidung, da Warnungen vor selbstsignierten Zertifikaten Administratoren in der Praxis oft an der Arbeit hindern.
Bei einer TLS-Verbindung kann eine Warnung bezüglich selbstsignierter Zertifikate erscheinen. Informationen zum Ersetzen durch echte Zertifikate finden Sie unter Sicherheitseinstellungen.
Login
Auf dem Login-Bildschirm werden der Name dieses Knotens und seine Rolle (Master / Worker) angezeigt. Prüfen Sie dies, wenn Sie mit mehreren Knoten gleichzeitig arbeiten.
| Variable | Standardwert | Beschreibung |
|---|---|---|
PP_DATALAKE_ADMIN_USER | admin | Login-Name |
PP_DATALAKE_ADMIN_PASSWORD | Für Installationen nach 2026-09-05 Standardwert für Entwicklung, davor leer | Wenn leer, öffnet sich die Console nicht |
PP_DATALAKE_ADMIN_API_KEY | Keine | X-API-Key, wenn Maschinen den Log-Endpunkt aufrufen |
Informationen zum Ändern oder erstmaligen Setzen des Passworts finden Sie unter Web-Login-Konten — Management Console.
Dies bedeutet, dass PP_DATALAKE_ADMIN_PASSWORD leer ist. Nur die Console startet nicht; der Data Lake läuft normal. Dies ist kein Defekt, sondern ein Fehler bei der Inbetriebnahme. Bitte Wert setzen und neu starten.
Bildaufbau — Rail und Sidebar

| Nummer | Beschreibung |
|---|---|
| ① | Icon-Rail — Navigation zwischen Gruppen. Ein Punkt im Dashboard-Icon ist die Gesamtbewertung dieses Knotens (siehe unten) |
| ② | Einzeilen-Zusammenfassung — «Alle N Komponenten normal · Dienst N/N · Keine Alarme». Wenn diese Zeile grün ist, sind keine weiteren Prüfungen nötig. Die Zeile darunter enthält Name, Rolle, Adresse und Anzahl der Knoten; [Knotenliste] führt zum Knoten-Tab der Topologie |
| ③ | Datenpfad — Stufen in Startreihenfolge (Messaging → CEP → Zeitreihe → Storage → Workflow → Analyse → Data Gateway) mit Anzahl der «ausgeführten / gesamten» Dienste pro Stufe. Die Pfeile zeigen den deklarierten Pfad, nicht den tatsächlichen Durchsatz — real gemessene Raten finden sich unten in der Inflow-Karte |
| ④ | Dienste — Zeigt die Dienste der Stufen aus ③ in derselben Reihenfolge. Leere Stufen (z. B. «Messaging 3/4») können hier identifiziert werden |
| ⑤ | Komponenten-Health — Gesamt · Anomalie · Warnung · Nicht gemessen · Normal · Gestoppt. «Nicht gemessen» ist nicht «Normal» |
| ⑥ | Timeline — Status der Komponenten auf der Zeitachse (24h / 48h). Schraffuren bedeuten fehlende Aufzeichnungen |
| ⑦ | Sprachumschaltung — EN / KO. Alternativ ?lang=ko an die Adresse anhängen |
Alarm-Karten erscheinen nur zwischen ② und ③, wenn Alarme vorliegen (nur bei dreifacher Schwellenwertüberschreitung). Ohne Alarme wird die Karte nicht gezeichnet. Unter ⑥ folgen Systemanzeigen, Inflow, Last, Storage und aktuelle Ereignisse.
Das schmale vertikale Band links ist die Rail mit 9 Gruppen-Icons. Die Rail zeigt nur Icons — Namen erscheinen als Tooltip beim Mouseover.
Die Auswahl einer Gruppe öffnet deren Bildschirme in der Sidebar. Gruppen mit nur einem Bildschirm haben keine Sidebar, da dies unnötigen Platz beansprucht.
Die Reihenfolge der Rail folgt der Logik bei Störungen: «Gibt es eine Anomalie» → «Wo» → «Was ist Fakt» → «Wen benachrichtigen» → «Was ändern» → «Befehl» → «Andere Ansichten» → «Was ist passiert».
Es gibt insgesamt 22 Bildschirme in 9 Gruppen.
| Gruppe | Bereich | Bildschirm | Beantwortete Frage |
|---|---|---|---|
| Übersicht | — | Dashboard | Gibt es aktuell eine Anomalie? |
| Topologie | — | Topologie (Tabs: Datenfluss · Knoten) | Wo im Pipeline ist eine Blockade, fließen Daten ansonsten? |
| Beobachtung | Status | Status · Metriken | Aktuelle Bewertung und Trend der letzten Stunde bis 7 Tage |
| Ressourcen | Storage · Aufbewahrung | Volumen · WAL · Replikationsslots · Speichergröße / Was wird wann gelöscht? | |
| Aktivität | Workflow · Ereignisse · Logs · Diagnose · Jobs | Liefen Nacht-Jobs, was ist passiert? — Ereignisjournal, Dienst-Logs, pd doctor, Job-Historie | |
| Alarm | — | Alarm | Wer wird wann benachrichtigt? |
| Betrieb | Konfiguration | Konfiguration · API-Key · Zertifikat | Diff von Template und Render-Ergebnis, Template-Bearbeitung und Rollback · API-Keys der Console · Zertifikate |
| Wartung | Upgrade · Worker | Versionen pro Modul, notwendige Änderungen an Cluster-Workern | |
| Backup | Backup | Backup-Sets · Zeitplanbearbeitung · Ausführung · Wiederherstellung | |
| Befehl | — | Befehl | Ausführung zugelassener pd Verben über die Oberfläche |
| Werkzeuge | — | Werkzeuge | Karten zu Web-UIs anderer Produkte |
| Aufzeichnung | — | Audit | Wer hat in dieser Console was geändert? |
| Assistant | — | Assistant | Aktuelle Probleme, Ursachen und Lösungen — inkl. Gateway-Konfiguration und Genehmigungskarten |
Legende der Rail- diversify
Der Punkt in der Rail befindet sich nur am Dashboard-Icon. Er zeigt unabhängig vom aktuellen Bildschirm an, «ob an diesem Knoten eine Anomalie vorliegt». Der Wert entspricht exakt dem status von /api/health, also der Gesamtbewertung der Komponenten durch den Server. Details sind im Dashboard einsehbar.
| Punkt | Bedeutung |
|---|---|
| OK | Gesamtbewertung des Servers: Normal |
| WARN | Gesamtbewertung des Servers: Warnung |
| FAIL | Gesamtbewertung des Servers: Fehler |
| UNKNOWN (Grau) | Bewertung nicht vertrauenswürdig — Polling gestoppt, Server-Kollektor gestoppt, keine Antwort oder unbekannte Bewertung |
Ein grauer Punkt bedeutet «Nicht gemessen», nicht «Normal». Icons anderer Gruppen haben keine Punkte. Dies bedeutet nicht, dass diese Gruppen normal sind, sondern dass deren Status nicht in der Rail gezeichnet wird.
Stille bedeutet nicht Normalität. Es gibt fünf Gründe, warum ein Alarm nicht klingt: Stummgeschaltet, Regel deaktiviert, unter Mindestpriorität, innerhalb der Unterdrückungsphase oder kein Kanal vorhanden. Die Console benennt diese fünf Gründe in unterschiedlichen Sätzen.
Besonderheiten der Bildschirme
| Bildschirm | Besonderheiten |
|---|---|
| Topologie | Die zwei Tabs zeigen ein System aus zwei Perspektiven: Datenfluss (MQTT → Kafka → Konsument) und Knoten (Master · Worker). Wenn das Dashboard «Anomalie» meldet, wird hier die betroffene Sektion geprüft |
| Status und Info → Komponente | Klick auf eine Zeile öffnet die Detailansicht. Aktualisierung erfolgt alle 15s analog zur pd status Tabelle. Ein STOPPED-Status unmittelbar nach dem Start ist ein zeitliches Fenster (Window) |
| Logs | Zeigt nur Dateien an, die in pd logs --list deklariert sind. Logs von App-Containern (Server, Batch, Warehouse) fehlen hier — nutzen Sie logs.sh auf dem Host |
| Diagnose | Ergebnis von pd doctor. «Prüfung ausführen» startet den Prozess sofort erneut. Es wird nur eine Anfrage gleichzeitig bearbeitet; bei «busy» kurz warten |
| Jobs | Historie von Backup-, Archiv- und Wartungsaufgaben an einem Ort. Der Backup-Bildschirm dient der separaten Sicht auf Backups |
| Konfiguration | «Was würde sich bei einem Render ändern»(pd config diff) und «Weicht mein Template vom Image-Standard ab»(pd config diff --templates). Änderungen am Template werden als Revisionen gespeichert und sind rückgängig machbar. Die Originalwerte (Passwörter, Adressen) liegen weiterhin auf dem Host → Konfiguration ändern |
| Upgrade | Image-Tags(/etc/plantpulse-image.env) und Versions-/Revisionen pro Modul(/etc/plantpulse-modules.json). Nur zur Ansicht, keine Upgrades durchführen → siehe unten |
| Worker | Zeigt lediglich an, welche Befehle zur Änderung der Cluster-Worker erforderlich sind, führt diese aber nicht aus. Die Ausführung erfolgt auf dem Host → Cluster-Installation |
| Backup | Set-Liste · Zeitplan · Laufende Vorgänge. «Schedule editor» ruft pd backup schedule set auf. Die Planung erfolgt via backup_schedule Tabelle + Quartz, nicht über systemd-Timer → Backup · Wiederherstellung |
| Befehl | Es werden nur pd Verben aus der serverfestgelegten Zulassungsliste ausgeführt (Liste ist rechts sichtbar). Andere Befehle über die Container-Shell → pd CLI · siehe unten |
| Werkzeuge | Öffnet Web-UIs anderer Produkte in neuen Tabs. Der Host in der Adresse entspricht dem aktuell verbundenen Host. Dienste, die auf diesem Knoten nicht existieren, werden nicht angezeigt |
| Workflow | Gemeinsame Ansicht von Temporal und Kestra. Nur Lesezugriff — keine Ausführung, Trigger, Pause oder Beendigung. «Nicht zutreffend» bedeutet, dass noch keine Ausführungsdaten vorliegen |
| Aufbewahrung | Tabelle TTL, Topic-Aufbewahrung, Cold Tier und Archiv-Jobs an einem Ort. «Keine» bedeutet eine Tabelle ohne Ablaufdatum (Counter, aktueller Wert) |
| Credentials | Kein eigener Bildschirm. Werte werden in den Detailkarten von Status und Info → Komponente einzeln eingesehen und geändert → siehe unten |
| Assistant | Ermöglicht Fragen an den Knoten und Ausführungen via Genehmigungskarten. Erfordert direkte Verbindung zu einem LLM-Gateway → Assistant |
| Audit | Aufzeichnung von Änderungen in dieser Console. Da Worker-Knoten keinen Audit-Speicher besitzen, wird dort immer «Nicht lesbar» angezeigt — dies ist kein Zeichen für eine störungsfreie Woche |
Hauptbildschirme
Topologie — Zeigt, wo die Pipeline blockiert ist. Besteht aus zwei Tabs: Datenfluss und Knoten.

Status und Info — Bewertung pro Komponente. Aktualisierung erfolgt alle 15s analog zu pd status. Die untere Tabelle «Komponentenversion» zeigt die Konfiguration dieser Instanz, nicht des Knotens — Offizielle Version, Eigene Version, Port, Lizenz, Quelle, Modul. - bedeutet «Nicht zutreffend» (Komponenten ohne eigene Version oder ohne Listening-Port). Dieselben Werte erscheinen in der Komponentendetailansicht.

Workflow — Überprüfung, ob Nacht-Archivierung und Batch-Flows rechtzeitig liefen. Zeigt zwei Engines: Temporal (Aster TSDB → Iceberg Archiv) und Kestra (Batch Flow).

Die Ausführung erfolgt durch die Engine. Dieser Bildschirm dient nur der Ansicht und bietet keine Trigger, Pausen oder Beendigungen. Zeitpläne werden im Backup-Bildschirm (oder pd backup schedule set) geändert.
Aufbewahrung — Was wird wann gelöscht? Aster TSDB Tabellen-TTL und Größe, Kafka Topic-Aufbewahrung, Cold Tier und die entsprechenden Archiv-Jobs in einer Ansicht.

Die TTL von pp.tm_tag_point wird als 3650 Tage angezeigt. Informationen zum Ändern finden Sie unter Datenaufbewahrungszeit.
Konfiguration — «Was würde sich bei einem Render ändern» und «Weicht mein Template vom Image-Standard ab».

Backup — Set-Liste · Zeitplan · Aktuell laufende Vorgänge.

Werkzeuge — Bündelt Web-UIs anderer Produkte in neuen Tabs.

Audit — Aufzeichnung von Änderungen an diesem Knoten.

Bildschirme, die noch keine Daten liefern, werden als leer gekennzeichnet, mit dem expliziten Hinweis, dass dies nicht «Keine Anomalie» bedeutet. Ein leerer Bildschirm ist nicht automatisch normal.
Die vier Bildschirme der Beobachtungsgruppe
Während die «Hauptbildschirme» die Frage «Was ist falsch?» beantworten, klären die vier Bildschirme der Beobachtungsgruppe das «Warum?». Sie sind über die Sidebar Beobachtung → Status / Ressourcen / Aktivität erreichbar.
Metriken — Messhistorie einer einzelnen Komponente

| Nummer | Position | Funktion |
|---|---|---|
| ① | Sidebar | Bildschirme der Beobachtungsgruppe — Status und Info · Metriken / Storage · Aufbewahrung / Workflow · Ereignisse · Logs · Diagnose · Jobs |
| ② | Links | Komponentenliste — Auswahl einer Komponente |
| ③ | Unter Liste | Bedeutung grauer Komponenten und Hinweis: Nur eine Komponente gleichzeitig abfragbar |
| ④ | Rechts oben | Zeitraum — 1h · 6h · 24h · 48h · 7 Tage |
| ⑤ | Hauptbereich | Nach Einheiten gruppierte Diagramme (% · B/S · BYTES · LOAD …) |
Das Dashboard ist eine Klassifizierungsansicht ohne Komponentenauswahl und bietet daher keine Zeiträume über einen Tag hinaus. Dieser Bildschirm hingegen dient dazu, eine Komponente und einen Zeitraum gezielt zu analysieren.
Zeiträume über 7 Tage hinaus sowie «Anlagendaten» (nicht Data Lake selbst) sind Aufgabe des PlantPulse Dashboards. Das Fehlen eines Links «In PlantPulse Dashboard öffnen» ist beabsichtigt — Links zu nicht verifizierten Dashboards sind kontraproduktiv.
Eine Komponente wird nur dann grau, wenn eine Antwort eingegangen ist und diese «Nicht erfasst» lautete. Bei Komponenten, die noch nie geöffnet wurden, erfolgt keine Markierung, um keine «erfundenen Bewertungen» zu suggerieren.
Es wird immer nur eine Komponente abgefragt. Die Auswahl einer anderen Komponente verschiebt die Anfrage, anstatt eine weitere zu senden.
Storage — Was liegt auf der Disk und wie lange bleibt es dort

| Nummer | Position | Funktion |
|---|---|---|
| ① | Sidebar | Ressourcen-Bereich — Storage · Aufbewahrung |
| ② | Ganz oben | Volume — Auslastung und Bewertung für Runtime Tree, Daten, Temp und Backup |
| ③ | Darunter | PostgreSQL WAL und Replikationsslots — PG_WAL · MAX_SLOT_WAL_KEEP_SIZE · MAX_WAL_SIZE · Rolle sowie Slot-Tabelle |
| ④ | Links unten | Aster TSDB Disk — Größe von Daten, Commit-Logs, Snapshots und Keyspaces |
| ⑤ | Rechts unten | Kafka Disk — Konfigurationsdateien, Log-Verzeichnis, Größe, Aufbewahrung, ältestes Segment, nächste erwartete Bereinigung |
Ein realer Vorfall vom 2026-09-03: Der Replikationsslot replica_worker_1 hielt inaktiv 1,4 GB WAL fest, während max_slot_wal_keep_size auf -1 (unbegrenzt) stand. Keiner der Bildschirme zeigte dies an; die einzige Warnung war eine volle Disk.
Die Reihenfolge ist daher: Volume (Füllt es sich?) → WAL·Slot (Was hält die Daten fest?) → Speichergröße und Aufbewahrung (Findet eine Reduktion statt?). Prüfen Sie «Aktiv» und «Gehaltenes WAL» in der Slot-Tabelle.
Ereignisse — Was ist an diesem Knoten passiert

| Nummer | Position | Funktion |
|---|---|---|
| ① | Oben | Bereich — 24h / 7 Tage |
| ② | Daneben | Typ-Filter — Alarm Start/Ende · Start/Gestartet · Stop/Gestoppt · Restart · Backup Start/Ende · Job Start/Ende · Boot · Deploy · Operator · PD |
| ③ | Kartenkopf | Ereignisse (N) — Anzahl im aktuellen Bereich |
| ④ | Tabellenkopf | Zeit · Typ · Komponente · Priorität · Nachricht |
| ⑤ | Inhalt | Fehlerhafte Backups werden rot markiert, falls ERROR vorliegt |
Audit-Aufzeichnungen werden unter derselben Ansicht angehängt. Da «Was ist passiert?» und «Was haben wir getan?» während einer Störung dieselben Fragen sind, würde ein Wechsel zwischen zwei Bildschirmen die Zeitachse unterbrechen. Durch das Zusammenführen erscheinen z. B. ein Restart um 01:25 Uhr und der verantwortliche Operator nebeneinander.
Knoten mit memory als Speicher halten nur die letzten paar hundert Einträge im RAM und verlieren diese bei Neustart. Der Bildschirm gibt dies explizit an — lesen Sie eine unvollständige Historie nicht als vollständig.
Nicht lesbare Ereignisspeicher werden nicht als «stille Nacht» dargestellt. Es wird differenziert zwischen: Laden, Ereignisse vorhanden, leerer Bereich, noch nicht bereitgestellter Endpunkt und nicht gemessen (inkl. Grund).
Alarm — Was als Alarm gilt und wohin gemeldet wird

| Nummer | Position | Funktion |
|---|---|---|
| ① | Ganz oben | Aktive Alarme — Aktuelle Alarme. Falls keine: «Keine aktiven Alarme vorhanden» |
| ② | Mitte | Regel-Karte |
| ③ | Tabellenkopf | Komponente · Benachrichtigung · Folge · Unterdrückung (Sek) · Bei Anomalie · Quelle · Aktion |
| ④ | Zeile | Regel einer Komponente. Änderung via [Bearbeiten] nur für diese Zeile |
| ⑤ | Unten | Kanal-Karte + [Kanal hinzufügen] — «N aktive Kanäle» |
| ⑥ | Darunter | Hinweis bei fehlenden Kanälen |
Die drei Karten auf einem Bildschirm beantworten eine Kernfrage in drei Teilen: Gibt es eine Anomalie? (Aktiv) → Was wurde als Anomalie definiert? (Regel) → Wer hört zu? (Kanal).
Es gibt fünf Gründe, warum ein aktiver Alarm nicht klingt; der Bildschirm benennt diese in unterschiedlichen Sätzen:
| Text | Bedeutung |
|---|---|
| Stummgeschaltet | Alarm wurde manuell deaktiviert |
| Regel deaktiviert | «Benachrichtigung» in der Regel-Tabelle ist aus |
| Unter Mindestpriorität | Kriterium «Bei Anomalie» nicht erreicht |
| In Unterdrückungsphase | Innerhalb des Zeitfensters von «Unterdrückung (Sek)» |
| Kein Kanal vorhanden | Kein Ziel für den Versand definiert |
Zusätzlich erscheint die Meldung «Davon sind N stummgeschaltet». Dies wird nicht in einem einzigen «Stumm»-Badge zusammengefasst, da die fünf Fälle unterschiedliche Gegenmaßnahmen erfordern.
Nicht lesbare Einstellungen werden nicht als «Keine Einstellungen» dargestellt. Wenn der Server einen Fehler wie store: "NA" meldet, wird dieser Satz über der Tabelle angezeigt — kein leeres Bild, das eine Neuinstallation suggeriert. In Knoten, in denen Einstellungen nicht gespeichert werden können, verschwinden die Bearbeitungstasten komplett.
Die vier Bildschirme der Aktivitätsgruppe — Was ist passiert
Jobs — Alle langlaufenden Vorgänge in einem Journal

| Nummer | Position | Funktion |
|---|---|---|
| ① | Ganz oben | Aktuell laufend — Wird explizit als «keine» angegeben, falls leer |
| ② | Darunter | Typ · Status-Filter — Backup · Wiederherstellung · Wiederherstellungsplan · Dump · Diagnose · Start · Stop · Restart · Config-Render · PD / Laufend · Erfolg · Fehler · Unbekannt |
| ③ | Kartenkopf | Historie (N) |
| ④ | Tabellenkopf | Status · Typ · Ziel · Start · Dauer · Urheber · Quelle · Nachricht |
| ⑤ | Fehlerzeile | Fehlerursache in einer Zeile — Bsp: «exit 0, aber Storage ist nicht gewachsen — nichts geschrieben» |
| ⑥ | Unbekannt-Zeile | «pd restart schreibt keine Abschlusszeile — Ergebnis fehlt im Journal» |
| ⑦ | Quellenspalte | Backup-Journal / pd-Journal — Herkunft der Zeile |
Backup, Wiederherstellung, Dump, pd doctor und Dienstoperationen dauern Minuten, hinterlassen Aufzeichnungen aber an verschiedenen Orten: Job-Journal der Console, Backup-Journal und das eigene Journal von pd für externe Starts. Zuvor konnte die Frage «Was lief heute auf diesem Knoten?» nur über Audit-Logs beantwortet werden, welche jedoch keine HTTP-Aufrufe oder Ergebnisse aufzeichnen.
Wird als separates Ergebnis dargestellt. Wenn beispielsweise pd restart keine Abschlusszeile hinterlässt, fehlt das Ergebnis im Journal. Dies als Erfolg oder Fehler zu markieren, wäre irreführend.
Hier wird nichts gestartet, abgebrochen oder wiederholt. Diese Aktionen finden auf den Bildschirmen statt, die bereits Bestätigungsschritte und Auswirkungsanalysen enthalten (Backup · Diagnose). Dass es keinen Abbrechen-Button gibt, liegt daran, dass es keinen entsprechenden Endpunkt am Server gibt.
Logs — In diesem Knoten «vorhandene» Logs

| Nummer | Position | Funktion |
|---|---|---|
| ① | Links Kopf | Logliste |
| ② | Erste Zeile | Boot-Log mit Start-Badge |
| ③ | Liste | Komponente · Dateiname · Größe · Letzte Aktualisierung |
| ④ | Rechts Kopf | Loginhalt |
| ⑤ | Suche | Zeichenfolge — Literal, kein Regex · Level-Chips (TRACE · DEBUG · INFO · WARN · ERROR) |
| ⑥ | Zeitraum | Von ~ Bis · [Suchen] · [Löschen] |
| ⑦ | Rechts oben | Zeilenumbruch-Toggle |
Der Client übermittelt keine Pfade. Er sendet die vom Server vergebene ID; der Pfad liegt beim Server. Es gibt keine Parameter wie ?path=, die ausbrechen könnten.
Log-Inhalte werden nur als Text dargestellt. Da eine Logzeile <script> enthalten kann, wird der Log-Viewer als isoliertes Fenster in der Operations Console implementiert.
Es gibt drei Zustände: Gelesen / Server konnte pd nicht abfragen / Deklariert, aber Datei fehlt. Letztere zwei werden als «Nicht gemessen» dargestellt, nicht als «Keine Logs» oder «Leere Datei».
In der Liste erscheinen nur Dateien, die in pd logs --list deklariert wurden. Logs von App-Containern (Server, Batch, Warehouse) fehlen hier — nutzen Sie logs.sh auf dem Host.
Diagnose — Messungen von pd doctor

| Nummer | Position | Funktion |
|---|---|---|
| ① | Neben Titel | Modus — MASTER / Worker |
| ② | Hinweis | Information «Letzte Ausführung» und [Prüfung ausführen] Button |
| ③ | Darunter | Diagnoseergebnis (Zeitpunkt der Messung) |
| ④ | Zusammenfassung | Fehler · Nicht zutreffend · Bestanden · Anzahl Prüfungen |
| ⑤ | Gruppenkarten | Unterteilung in Gruppen wie inputs · tools … |
| ⑥ | Tabellenkopf | Bewertung · Prüfung · Inhalt |
pd doctor dauert etwa 3 Sekunden, weshalb kein zyklisches Polling erfolgt. Die Ergebnisse entsprechen der letzten Ausführung. Für neue Messungen klicken Sie auf [Prüfung ausführen]. Bei «busy» kurz warten, da nur ein Durchlauf gleichzeitig möglich ist.
Es gibt fünf Antwortzustände: Endpunkt noch nicht vorhanden / Session unterbrochen / Anfrage fehlgeschlagen / Befehl konnte nicht gestartet werden (Grund zwingend) / Befehl lief, aber 0 Prüfungen.
Besonders die letzten zwei sind kritisch. Wenn der Dokumentstatus na ist, bedeutet dies nicht «Alle bestanden», sondern dass nichts gemessen wurde (Grund erforderlich). Eine leere Prüfungsliste ist ein dritter Fall. Würde beides als leeres Panel dargestellt, könnte ein Administrator «Keine Anomalie» lesen, obwohl nichts gemessen wurde.
Für «Nicht zutreffend»-Einträge wird pro Zeile ein Grund angegeben.
Worker — Zeigt Befehle nur «an»

| Nummer | Position | Funktion |
|---|---|---|
| ① | Kartenkopf | Worker (Messzeitpunkt) |
| ② | Tabellenkopf | Worker · Adresse · Namensliste · Ring · POSTGRESQL · Slot · REDIS · Health · Status |
| ③ | Zeile | Einzelner Worker. Replikationsslot-Name und Lag-Wert in einer Zeile |
| ④ | Darunter | Worker Health — Details beim Aufklappen |
| ⑤ | Nächste Karte | Was wurde gemessen? |
| ⑥ | Bestanden | Worker-Namensliste(/etc/kopens/workers.roster) · Aster TSDB Ring · PostgreSQL · Redis Replika · Worker Health Agent · Eigene Adresse dieses Knotens |
| ⑦ | Nicht zutreffend | Worker-Container · Worker-Volume — Grund wird explizit genannt |
Befehle zum Hinzufügen/Entfernen von Workern (worker-add.sh · worker-decommission.sh · worker-remove.sh) betreffen den Docker-Daemon, Namenslisten und Compose-Overlays. Diese befinden sich alle auf dem Host. Die API hinter diesem Bildschirm läuft im Data-Lake-Container und hat keinen Zugriff auf den Docker-Socket.
Um Missverständnisse zu vermeiden, gilt:
- Keine verb-basierten Steuerelemente. Der einzige Button auf dem Bildschirm ist Kopieren.
- Jeder Befehl wird mit dem Titel «Auf dem Host ausführen» und dem Arbeitsverzeichnis angezeigt.
- Solange ein Befehl sichtbar ist, erscheint ein Lesezugriff-Hinweis, der direkt vom Server stammt.
- Bei Verletzung dieser Regeln schlägt der Build fehl.
Wenn keine Änderungen anstehen, erscheint die Befehlskarte nicht.
Siehe im Bild Worker-Container · Worker-Volume. Der Grund wird explizit genannt — dass der Docker-Socket nicht in diesen Container gemountet wurde und daher hier nicht eingesehen werden kann, bedeutet nicht, dass alles in Ordnung ist.
Betrieb, Befehl und Credentials
Diese Bereiche dienen der Änderung. Hier ist «Was wird nicht getan?» wichtiger als «Was wird gezeigt?».
Upgrade — Nur Ansicht

| Nummer | Position | Funktion |
|---|---|---|
| ① | Sidebar | Betriebsgruppe — Konfiguration / Upgrade · Worker / Backup |
| ② | Kartenkopf | Aktuell dieser Knoten |
| ③ | Image-Tag | Build-Name · build.version · Bake-Commit · Build-Datum · Gelesen von(/etc/plantpulse-image.env) · Bewertung |
| ④ | Darunter | Hinweis, dass Image-Digests auf dem Host geprüft werden müssen — innerhalb des Images nicht sichtbar |
| ⑤ | Nächste Karte | Projekte, die dieses Image bilden — «M von N Projekten geben hier ihre Revision an» |
| ⑥ | Tabelle | Projekt · Bewertung · Version · Revision · Gelesen von(MANIFEST · build-info.json · dist.env … variiert je nach Projekt) |
Der einzige Button, der eine Serveranfrage auslöst, ist die Vorabprüfung, welche eine Lesezugriffs-Diagnose(pd doctor) ist. Im Befehlsblock gibt es nur eine Steuerung: Kopieren. In keiner Sprache heißt dieser Button «Ausführen» oder «Anwenden».
Sätze wie «Aktuell» kommen nicht im Bundle vor. Dieser Knoten kann weder sein eigenes Image-Tag sehen noch verfügbare Versionen abfragen. Eine beruhigende Nachricht wäre eine Erfindung, die den Administrator daran hindern könnte, tiefer zu suchen — ein Risiko, das wir nicht eingehen.
pd doctordauert etwa 3 Sekunden und wird nicht zyklisch ausgeführt. Bei Klick startet ein Job, der per Polling überwacht wird.
Befehl — Keine Shell

| Nummer | Position | Funktion |
|---|---|---|
| ① | Ganz oben | Ständiger Hinweis — «Es werden nur definierte Befehle ausgeführt» |
| ② | Terminal-Kopf | Console-Name und Statuspunkt — Bereit · Sendung · Streaming · Unterbrochen |
| ③ | Inhalt | Ausgabe (Scrollback · ANSI-Farben) |
| ④ | Unterste Zeile | Prompt — Tab-Vervollständigung · ↑↓ Historie · Ctrl+L Löschen |
| ⑤ | Rechts Kopf | «N Lesezugriffe, M Knotenänderungen» |
| ⑥ | Rechts | Lesezugriff-Verben (help version status storage flow env doctor config list config diff node status logs --list backup list backup status backup schedule) |
| ⑦ | Darunter | Ändert Knoten — Durch roten Rahmen abgetrennt (config render) |
Das Erscheinungsbild imitiert ein Terminal (Historie, Scrollback, ANSI-Farben, Tab-Vervollständigung). Tatsächlich werden nur die vom Server erzwungenen pd Zulassungslisten ausgeführt.
Wer dies für eine Shell hält, interpretiert eine Ablehnung als «Bug». Deshalb ist der Hinweis ein festes Element auf dem Bildschirm, kein farbiger Text im Scrollback, der nach oben verschwinden könnte.
Die Zulassungsliste wird bei jedem Aufruf vom Server bezogen. Es gibt keine Kopien in Dokumentation oder Code, da diese veralten würden. Wenn die Liste nicht bezogen werden kann, wird die Autovervollständigung deaktiviert, anstatt eine vermutete Liste anzuzeigen.
Befehle, die den Knoten ändern, werden erst nach Bestätigung ausgeführt. Bei einer Ablehnung wird der vom Server gelieferte Grund exakt so angezeigt — eine Verallgemeinerung als «Fehler» würde Sicherheitsmechanismen als unbekannte Fehler erscheinen lassen.
Wie im Hinweis: «Credentials in dieser Ausgabe werden maskiert, bevor sie den Server verlassen». Der Browser verbirgt sie nicht, sie kommen erst gar nicht an.
Credentials — Karte in der Komponentendetailansicht
Credentials werden auf der Seite der Komponente, die den Wert nutzt, eingesehen und geändert. Es gibt keinen separaten Credentials-Bildschirm. Klick auf eine Komponentenzeile in «Status und Info» öffnet die Details; dort befindet sich die Karte Credentials. Wenn der Server für diese Komponente keine Credentials zuweist, erscheint die Karte nicht.
| Spalte | Inhalt |
|---|---|
| Punkt | Was der Wert ist — Administrator-Konto, interner API-Key etc. |
| Umgebungsvariable | Name der Variable |
| Konto | Konto-Name. Nur Lesezugriff |
| Passwort / Key | Maskiert durch Punkte, ein einzelner Wert wird über Wert anzeigen aufgedeckt |
| Verbindungsprüfung | Verbunden · Wert falsch · Nicht prüfbar (Keine Verbindung) · Nicht prüfbar |
| Letzte Änderung | Zeitpunkt der letzten Änderung |
| Ende | [Ändern] oder Grund für Sperre (Gesperrt) |
Unter der Karte erscheinen die letzten drei Änderungsanfragen dieser Komponente; fehlgeschlagene Anfragen können über [Erneut ausführen] wiederholt werden. Die gesamte Historie findet sich im Audit-Bildschirm.
In der Liste werden keine sensitiven Werte übertragen. «Wert anzeigen» sendet eine separate Anfrage nur für diesen Variablennamen. Diese Anfrage ist ein POST und wird im Audit protokolliert; der Name erscheint nicht in der URL.
[Ändern] ändert den Wert nicht sofort. Ein Panel zeigt die Reihenfolge; nach Auswahl von Erstellen (32 Zeichen) oder Wert eingeben müssen das Console-Passwort und der Variablenname erneut eingegeben werden.
- Neuer Wert wird verschlüsselt gespeichert und in die Queue eingereiht.
- Anwendung der Werte an allen Stellen innerhalb des Data Lakes.
- Neustart aller Data-Lake-Dienste mit neuen Werten — Unterbrechung für mehrere Minuten. Andere Produkte erhalten neue Werte beim Neustart ihrer Container.
- Prüfung der Konnektivität jeder Komponente. Bei Fehler wird die Anfrage als fehlgeschlagen markiert und mit demselben Wert erneut ausgeführt.
Da die Console nur ein Konto ohne Rollen hat, können alle angemeldeten Personen alle Credentials ändern. Die erneute Abfrage von Passwort und Variablenname dient als Sicherheitsmechanismus. Da Passwort und neuer Wert übertragen werden, nutzen Sie 4950(TLS).
Ein generierter Wert wird bei der Anfrage nur einmal angezeigt und kann nicht erneut aufgerufen werden.
Ein leeres Feld bedeutet wirklich leer; «Hier nicht lesbar» bedeutet, dass die Console den Wert nicht lesen konnte. Gesperrte Zeilen enthalten einen Grund — Kontoname wird nicht geändert, berechnet aus anderem Wert, kein aktueller Wert zum Ändern vorhanden, kein Änderungswerkzeug vorhanden.
Das Verfahren zur Änderung auf dem Host finden Sie unter Passwort ändern.
Karten im Werkzeuge-Bildschirm
| Karte | Adresse | Beschreibung |
|---|---|---|
| CEP | https://<호스트>:7401/ | EQL-Regeln und gematchte Ereignisse |
| PlantPulse Dashboard | https://<호스트>:3000/ | Dashboard für Zeitreihendaten |
| Timeseries Engine | https://<호스트>:7801/ | Management-Ansicht der Engine selbst, nicht der Daten |
| Spark | http://<호스트>:4440/ | Spark Master · Worker · Laufende Anwendungen |
| Temporal | http://<호스트>:8233/ | Workflow-Ausführungen und Historie |
| Kestra | https://<호스트>:8380/ | Daten-Pipelines — Flows · Ausführungen · Logs |
| RustFS | http://<호스트>:9001/ | Object Storage — Buckets · Objekte · Access-Keys |
| Data Gateway | https://<호스트>:5501/ | SQL-Ausführungsconsole. Alte SQL-Werkzeugkarte wurde hier integriert (2026-09-07) |
Für drei dieser Werkzeuge gibt es separate Anleitungen — Data Gateway Console · TSE Analyzer · CEP Console.
Bildschirme mit TLS-Zwillingsports verlinken auf die TLS-Seite, um Klartext-Adressen zu vermeiden, da diese Console über TLS(4950) läuft.
Abfragehäufigkeit der Console zu pd
Die Console führt bei jedem Request keinen vollständigen pd aus. Der Backend-Kollektor-Loop läuft einzeln und lade die letzte Dokumentation in den Cache; die Oberfläche liest diesen Cache.
| Verb | Intervall |
|---|---|
pd status --json · pd logs --list | 15s |
pd node status --json · pd storage --json | 30s |
pd flow --json · pd config diff --json · pd env --json | 60s |
pd doctor --json · pd retention --json · pd config diff --templates --json | 300s |
In einem 60s-Zyklus werden etwa 46s für pd aufgewendet. Daher ist es normal, dass pd status auf dem Host, auf dem die Console läuft, gelegentlich langsam reagiert.
Health API
Alle von der Console gezeichneten Ansichten basieren auf /api/*. Die vollständige Liste und das Schema werden durch das Lesen von /api/openapi.json als API-Tabelle in der Console angezeigt.
curl -kfsS https://<server-ip>:4950/api/health | jq # TLS
curl -fsS http://<server-ip>:4949/api/health | jq # 평문 — 같은 API
docker exec plantpulse-datalake curl -kfsS https://127.0.0.1:4950/api/health | jq # 컨테이너 안 — 어떤 구성에서도
curl -kfsS https://<server-ip>:4950/api/services | jq # 서비스 목록과 상태
Die Host-Prozesse status.sh · ops-check.sh · doctor.sh · stack-verify-boot.sh lesen alle dieses /api/health. /api/health antwortet ohne Authentifizierung; alle anderen APIs benötigen eine Login-Session oder X-API-Key (Log-Endpunkt).
Prometheus-Integration
Prometheus scrapet https://<server-ip>:4950/metrics. Bei selbstsignierter CA muss insecure_skip_verify aktiviert werden. Verbindung als Datenquelle über das mitgelieferte PlantPulse Dashboard(3000) oder ein externes Grafana.
Häufige Probleme
| Symptom | Ursache | Maßnahme |
|---|---|---|
| Console öffnet nicht · «Nicht konfiguriert» | PP_DATALAKE_ADMIN_PASSWORD ist leer | Web-Login-Konten |
| 4949 funktioniert, 4950 nicht | Zertifikatsproblem | Browser-Warnung prüfen oder Zertifikat unter Sicherheitseinstellungen ersetzen |
| Health-Endpunkt antwortet nicht | Data-Lake-Container gestört | Auf Host: status.sh → logs.sh plantpulse-datalake |
| Ganzer Bildschirm «Not measured» | Polling gestoppt oder altes Image | Prüfen Sie IMAGE_BUILT_AT von pd env. Vor 2026-09-04 gab admin-api häufig «Another job is already running» aus |
| Werkzeug-Karten fehlen | Dienst nicht auf diesem Knoten (Worker) oder Polling-Timeout | Master-Knoten-Console nutzen |
| Prometheus Scrape 5xx | Backend-Modul abgestürzt | Abhängige Module über status.sh prüfen |
| Audit-Bildschirm «Nicht lesbar» | Worker-Knoten | Normal — Auf Master prüfen |
Verwandte Dokumente
- Web-Login-Konten
pdCLI — Originalquelle der Console-Daten- Systemüberwachung — Readiness-Healthchecks der Web-Apps
- Port- und Dienstmanagement