Systemprotokoll anzeigen (/ui/system/log/list)
Bildschirm zum Suchen und Prüfen der Systemprotokolle (Cassandra pe.app_system_log), die das Gateway beim Booten, während der Erfassung, der Kommunikation oder bei API-Aufrufen geschrieben hat.
Klick auf die rote Zahl in der Startseiten-Karte Systemfehler (heute) → automatischer Wechsel hierher (nur ERROR von heute), oder direkt über /ui/system/log/list.
1. Aufbau des Bildschirms
┌─────────┬──────────────────────────────────────────────────┐
│ 좌측 │ 우측 │
│ 검색폼 │ 로그 목록 (DataTables) │
│ │ │
│ [기간] │ ┌───────────┬───────┬──────────────────────────┐ │
│ [레벨] │ │ 시간 │ 레벨 │ 메세지 │ │
│ │ ├───────────┼───────┼──────────────────────────┤ │
│ [검색] │ │ ... │ INFO │ ... │ │
└─────────┴──────────────────────────────────────────────────┘
Standard-Suchzeitraum: letzte 30 Tage (00:00 – 23:59).
2. Suchformular links
| Feld | Bedeutung | Standard |
|---|---|---|
| Suchzeitraum | Bereich YYYY-MM-DD HH:mm ~ YYYY-MM-DD HH:mm | 29 Tage vor heute 00:00 ~ heute 23:59 |
| Level | 전체 / INFO / WARN / ERROR | Alle |
Aktionen links
| Schaltfläche | Funktion |
|---|---|
| ↻ Aktualisieren (oben auf der Seite) | log.search() — erneute Abfrage mit den aktuellen Formularwerten |
| 🔍 Suchen (blaue Schaltfläche, rechts unten im linken Panel) | log.search() — ruft /system/log/search mit den Formularwerten auf |
Das linke Formular besteht nur aus zwei Feldern — Suchzeitraum (Date-Range-Picker) und Level (Combo) — und nutzt dieselben Label- und abgerundeten Formularelemente im pp-cell-pill-Stil wie die übrigen Suchmasken (/ui/connect/list, /ui/point).
3. Rechts — Protokollliste (DataTables)
| # | Spalte | Anzeige |
|---|---|---|
| 1 | Zeit | timestamp.iso (bis ms) — zentriert, standardmäßig absteigend (neueste oben) |
| 2 | Level | Abgerundetes Kapsel-Badge (border-radius: 5px) — 🟦 INFO (blau, solid) / 🟧 WARN (orange, solid) / 🟥 ERROR (rot, solid). Gleicher Stil wie pp-cell-pill auf anderen Seiten, z. B. /ui/connect/list |
| 3 | Meldung | Protokolltext (lange Meldungen mit automatischem Zeilenumbruch, Klick klappt sie auf) |
Seitengröße: 10 / 20 / 50 / 100 / 1000 wählbar (Standard 100).
Aktionen rechts
| Schaltfläche | Funktion |
|---|---|
| ↻ Aktualisieren | log.list() |
| 🗑 Alle löschen | log.truncate() — Bestätigungsdialog → vollständige Löschung (pe.app_system_log truncate). Nicht rückgängig zu machen |
4. Häufig auftretende Muster
| Meldung / Level | Bedeutung / nächste Maßnahme |
|---|---|
ERROR [PLCDriverConnector] connection failed ... | PLC-Verbindung fehlgeschlagen. IP/Port/Firewall prüfen |
ERROR [PLCValueReader] read failed at TAG_* | Adresse bzw. Datentyp (format) dieses Tags überprüfen |
WARN [SchedulerStartListener] startup race detected | Sehr seltene Race-Condition beim Start — restart.sh erneut ausführen |
INFO [TAG_WRITE] OK opc_id=... tag_id=... value=... user_agent=... remote_ip=... | Normaler Schreibvorgang protokolliert — für Audit. remote_ip ist standardmäßig RemoteAddr, bei aktiviertem Reverse-Proxy-Opt-in die erste IP aus X-Forwarded-For |
INFO [API_ACCESS] method=GET path=/api/v1/... status=200 ... | Einzeiliges Audit eines REST-API-Aufrufs (ApiAccessLogFilter) — enthält alle /api/*-Aufrufe. Der apikey wird auf 4 Zeichen Präfix + Länge maskiert |
WARN [API_ACCESS] ... status=401 auth=none | Aufruf mit fehlgeschlagener Authentifizierung — Schlüssel fehlt |
WARN [API_ACCESS] ... status=401 auth=deprecated_query | Versuch der nicht mehr unterstützten Authentifizierung per ?api_key=-Query — Umstellung auf Header/Bearer erforderlich |
ERROR [Cassandra*] timeout / coordinator overload | DB-Last / Festplatte / Heap prüfen. node-info.sh |
INFO [SparkPlugSession] NBIRTH publish complete seq=0 | Normaler Sparkplug-Neustart |
INFO [SparkPlugSession] DBIRTH publish complete devices=N | Sparkplug Device Birth — N OPC haben Birth publiziert |
5. Datenquelle / aufgerufene API
| Aktion | API |
|---|---|
| Suche | GET /system/log/search (Query: s_date_range, level, ...) |
| Alle löschen | POST /system/log/truncate |
Interne Speicherung: Cassandra-Tabelle pe.app_system_log. TTL separat konfigurierbar (system.log.ttl.days in app.properties).
6. Häufige Stolperfallen
| Symptom | Ursache / Lösung |
|---|---|
| Suchergebnis leer | Außerhalb des Standardbereichs von 30 Tagen / durch Level-Filter ausgeblendet. Zeitraum auf 1 Jahr, Level auf Alle setzen |
| Bildschirm durch zu viele Protokolle träge | Seitengröße von 100 auf 20 reduzieren oder Level auf ERROR einschränken |
| Anzahl der ERROR weicht von der Zahl in der Karte Systemfehler (heute) ab | Die Karte zeigt ab heute 00:00, diese Suche den vom Benutzer gewählten Zeitraum |
| Statistik nach Alle löschen auf 0 | Normal — bleibt leer, bis neue ERROR eintreffen |
| Zu lange Protokollaufbewahrung belastet die Festplatte | system.log.ttl.days verkürzen / Kombination aus clean.sh und node-cleanup.sh |
7. Weiterführend
- Herkunft und Speicherort der Systemprotokolle selbst: Monitoring (Betreiber/REST)
- Gemeinsames Tail der Logdateien (catalina.out, cassandra/system.log): Diagnose / Inspektion
- Änderungen der Konfiguration nachverfolgen: Konfiguration