Systemprotokoll
Dies ist der Bildschirm zum Suchen und Anzeigen von Systemprotokollen (Cassandra pe.app_system_log), die das Gateway während Boot / Erfassung / Kommunikation / API-Aufrufen hinterlässt.

Klick auf die rote Zahl in der Home-Karte Systemfehler (heute) → automatische Navigation (nur heute ERROR), oder direkt /ui/system/log/list.
1. Bildschirmaufbau
┌─────────┬──────────────────────────────────────────────────┐
│ 좌측 │ 우측 │
│ 검색폼 │ 로그 목록 (DataTables) │
│ │ │
│ [기간] │ ┌───────────┬───────┬──────────────────────────┐ │
│ [레벨] │ │ 시간 │ 레벨 │ 메세지 │ │
│ │ ├───────────┼───────┼──────────────────────────┤ │
│ [검색] │ │ ... │ INFO │ ... │ │
└─────────┴──────────────────────────────────────────────────┘
Standard-Suchzeitraum: letzte 30 Tage (00:00 ~ 23:59).
2. Linkes Suchformular
| Feld | Bedeutung | Standard |
|---|---|---|
| Suchzeitraum | YYYY-MM-DD HH:mm ~ YYYY-MM-DD HH:mm-Bereich | von 29 Tagen vor heute 00:00 bis heute 23:59 |
| Stufe | 전체 / INFO / WARN / ERROR | Alle |
Linke Aktionen
| Schaltfläche | Aktion |
|---|---|
| ↻ Neu laden (oben auf der Seite) | log.search() — erneute Abfrage mit aktuellen Formularwerten |
| 🔍 Suchen (blaue Schaltfläche, unten rechts im linken Panel) | log.search() — /system/log/search mit Formularwerten aufrufen |
Das linke Formular enthält nur zwei Felder: Suchzeitraum (Date-Range-Picker) + Stufe (Combo) — gleiche pp-cell-pill-Optik mit Label / runder Formulargestaltung wie andere Suchbildschirme (/ui/connect/list, /ui/point).
3. Rechts — Protokollliste (DataTables)
| # | Spalte | Anzeige |
|---|---|---|
| 1 | Zeit | timestamp.iso (bis ms) — zentriert, Standard absteigend (neueste zuerst) |
| 2 | Stufe | Runde Kapsel-Badges (border-radius: 5px) — 🟦 INFO (blau solid) / 🟧 WARN (orange solid) / 🟥 ERROR (rot solid). Gleiche Optik wie pp-cell-pill auf anderen Seiten, z. B. /ui/connect/list |
| 3 | Nachricht | Protokolltext (lange Nachrichten automatisch umgebrochen, Klick zum Aufklappen) |
Seitengröße: 10 / 20 / 50 / 100 / 1000 auswählbar (Standard 100).
Rechte Aktionen
| Schaltfläche | Aktion |
|---|---|
| ↻ Neu laden | log.list() |
| 🗑 Alle löschen | log.truncate() — Bestätigungsdialog → vollständiges Löschen (pe.app_system_log truncate). Nicht rückgängig zu machen |
4. Häufige Muster
| Nachricht / Stufe | Bedeutung / nächste Schritte |
|---|---|
ERROR [PLCDriverConnector] connection failed ... | PLC-Verbindung fehlgeschlagen. IP/Port/Firewall prüfen |
ERROR [PLCValueReader] read failed at TAG_* | Tag-Adresse / Datentyp (Format) überprüfen |
WARN [SchedulerStartListener] startup race detected | Sehr seltener Start-Race — restart.sh noch einmal |
INFO [TAG_WRITE] OK opc_id=... tag_id=... value=... user_agent=... remote_ip=... | Normaler Schreibvorgang — für Audit. remote_ip ist standardmäßig RemoteAddr, bei opt-in Reverse Proxy wird die X-Forwarded-For-erste IP verwendet |
INFO [API_ACCESS] method=GET path=/api/v1/... status=200 ... | Einzeiliges Audit für REST-API-Aufrufe (ApiAccessLogFilter) — alle /api/*-Aufrufe werden erfasst. apikey wird auf 4 Zeichen Präfix + Länge maskiert |
WARN [API_ACCESS] ... status=401 auth=none | Fehlgeschlagener Authentifizierungs-Aufruf — Schlüssel fehlt |
WARN [API_ACCESS] ... status=401 auth=deprecated_query | Nicht mehr unterstützter ?api_key=-Abfrage-Authentifizierungsversuch — Umstellung auf Header/Bearer erforderlich |
ERROR [Cassandra*] timeout / coordinator overload | DB-Last / Disk / Heap prüfen. node-info.sh |
INFO [SparkPlugSession] NBIRTH publish complete seq=0 | Sparkplug normal neu gestartet |
INFO [SparkPlugSession] DBIRTH publish complete devices=N | Sparkplug-Geräte-Geburt — N OPC-Geräte haben birth veröffentlicht |
5. Datenquelle / Aufgerufene API
| Aktion | API |
|---|---|
| Suchen | GET /system/log/search (Query: s_date_range, level, ...) |
| Alle löschen | POST /system/log/truncate |
Interne Speicherung: Cassandra pe.app_system_log-Tabelle. TTL separat konfigurierbar (app.properties der system.log.ttl.days).
6. Häufige Fallstricke
| Symptom | Ursache / Lösung |
|---|---|
| Suche ergibt keine Ergebnisse | Außerhalb des Standardbereichs von 30 Tagen / durch Stufenfilter ausgeschlossen. Zeitraum auf 1 Jahr, Stufe auf Alle setzen |
| Zu viele Protokolle, Bildschirm wird langsam | Seitengröße von 100 auf 20 reduzieren oder Stufe auf ERROR eingrenzen |
| ERROR-Anzahl weicht von der Zahl auf der Karte Systemfehler (heute) ab | Karte zählt ab heute 00:00 / diese Bildschirmsuche nutzt den vom Benutzer gewählten Zeitraum |
| Nach Alle löschen Statistik 0 | Normal — leerer Zustand bis neuer ERROR eingeht |
| Protokollaufbewahrung zu lang, Disk-Belastung | system.log.ttl.days verkürzen / Kombination aus clean.sh und node-cleanup.sh |
7. Weitere Informationen
- Quelle/Speicherort der Systemprotokolle: Monitoring (Betreiber/REST)
- Integriertes Tail der Log-Dateien (catalina.out, cassandra/system.log): Diagnose und Inspektion
- Änderungsverfolgung der Umgebungskonfiguration: Web-UI-Umgebungskonfiguration