📝 "Update documentation: Refine FEHLERRESILIENZ_WARTUNGSFREIER_BETRIEB and IHK_DOKUMENTATION"

This commit is contained in:
Till Tomczak 2025-06-02 16:00:32 +02:00
parent b1937d7979
commit db6baad83d

View File

@ -1 +1,294 @@
# Fehlerresilienz und wartungsfreier Produktionsbetrieb
## Übersicht
Diese Dokumentation beschreibt die implementierten Systeme für absolute Fehlerresilienz und wartungsfreien Produktionsbetrieb der MYP-Druckerverwaltung.
## 🛡️ Implementierte Systeme
### 1. System-Control-Manager (`utils/system_control.py`)
**Zweck**: Robuste Kontrolle aller System-Operationen mit Sicherheitsprüfungen
**Features**:
- Sichere System-Neustarts und -Shutdowns
- Kiosk-spezifische Restart-Funktionen
- Umfassende Sicherheitsprüfungen vor Operationen
- Geplante Operationen mit konfigurierbaren Verzögerungen
- Automatische Cleanup-Routinen vor System-Änderungen
**API-Endpunkte**:
- `POST /api/admin/system/restart` - System-Neustart planen
- `POST /api/admin/system/shutdown` - System-Shutdown planen
- `POST /api/admin/kiosk/restart` - Kiosk-Neustart ohne System-Restart
- `GET /api/admin/system/status` - Umfassender System-Status
- `GET /api/admin/system/operations` - Geplante und vergangene Operationen
### 2. Error-Recovery-Manager (`utils/error_recovery.py`)
**Zweck**: Automatische Fehlererkennung, -behebung und -prävention
**Features**:
- Kontinuierliche Überwachung von Log-Dateien
- Vordefinierte Fehlermuster mit automatischen Recovery-Aktionen
- Eskalations-Mechanismen bei wiederholten Fehlern
- Real-time System-Metriken-Überwachung
- Service-Status-Monitoring
**Erkannte Fehlermuster**:
- Datenbank-Sperrungen → Automatisches Database-Reset
- Speicher-Erschöpfung → Cache-Clearing + Service-Restart
- Netzwerk-Fehler → Komponenten-Restart
- Kiosk-Crashes → Display-Neustart
- Service-Ausfälle → Service-Restart
- Festplatten-Vollauslastung → Emergency-Stop
**Recovery-Aktionen**:
- `LOG_ONLY` - Nur Logging
- `RESTART_SERVICE` - Service-Neustart
- `RESTART_COMPONENT` - Komponenten-Neustart (z.B. Kiosk)
- `CLEAR_CACHE` - Cache-Clearing
- `RESET_DATABASE` - Datenbank-Reset
- `RESTART_SYSTEM` - System-Neustart
- `EMERGENCY_STOP` - Notfall-Stopp
### 3. Optimierter Kiosk-Service (`systemd/myp-kiosk.service`)
**Zweck**: Wartungsfreier Kiosk-Betrieb mit absoluter Stabilität
**Verbesserungen**:
- Robuste Backend-Wartung mit API-Verfügbarkeitsprüfung
- Verbesserte Browser-Kompatibilität (Chromium, Firefox)
- Optimierte Startup-Sequenz mit X11-Prüfung
- Umfassende Display-Konfiguration
- Ressourcen-Management und Limits
- Erweiterte Restart-Logik
- Detailliertes Logging
**Browser-Argumente optimiert für**:
- Stabilität (Crash-Reporter deaktiviert)
- Performance (Hardware-Beschleunigung)
- Sicherheit (Sandbox-Konfiguration)
- Kiosk-Verhalten (Vollbild, keine UI-Elemente)
## 🔧 Konfiguration
### System-Control-Manager
```python
# Konfigurationsoptionen
config = {
"restart_delay": 60, # Standard-Verzögerung für Restarts
"shutdown_delay": 30, # Standard-Verzögerung für Shutdowns
"kiosk_restart_delay": 10, # Verzögerung für Kiosk-Restarts
"safety_checks": True, # Sicherheitsprüfungen aktiviert
"require_confirmation": True # Bestätigungen erforderlich
}
```
### Error-Recovery-Manager
```python
# Monitoring-Konfiguration
config = {
"check_interval": 30, # Überwachungsintervall in Sekunden
"max_history_size": 1000, # Maximale Anzahl gespeicherter Fehler
"auto_recovery_enabled": True, # Automatische Recovery aktiviert
"log_file_paths": [ # Überwachte Log-Dateien
"logs/app/app.log",
"logs/errors/errors.log",
"logs/database/database.log"
]
}
```
## 🖥️ Frontend-Funktionen
### Admin-Panel Erweiterungen
**Neue System-Control-Buttons**:
- **Kiosk neustarten**: Startet nur das Display neu (10s)
- **System neustarten**: Vollständiger System-Restart (konfigurierbar)
- **System herunterfahren**: Sicherer Shutdown (mehrfache Bestätigung)
- **System-Status**: Detaillierte Status-Anzeige
- **Fehlerresilienz**: Toggle für Error-Recovery-Monitoring
**Features**:
- Bestätigungsdialoge mit Sicherheitswarnungen
- Countdown-Timer für geplante Operationen
- Echtzeit-Status-Updates
- Detaillierte System-Metriken-Anzeige
- Error-Recovery-Statistiken
## 🔄 Automatische Initialisierung
### App-Startup-Sequence
1. **Shutdown-Manager** initialisiert (45s Timeout)
2. **Error-Recovery-Monitoring** gestartet
3. **System-Control-Manager** aktiviert
4. **Kiosk-Service-Verfügbarkeit** geprüft
5. **Integration** aller Systeme in Shutdown-Manager
### Automatische Registrierung
```python
# Error-Recovery wird automatisch in Shutdown-Manager integriert
shutdown_manager.register_cleanup_function(
func=stop_error_monitoring,
name="Error Recovery Monitoring",
priority=2,
timeout=10
)
```
## 📊 Monitoring und Logging
### System-Status-Überwachung
- **Services**: Alle systemd-Services (myp-https, myp-kiosk, watchdog)
- **System-Metriken**: Speicher, Festplatte, CPU-Last
- **Error-Recovery**: Fehlerstatistiken, Erfolgsraten
- **Operations**: Geplante und abgeschlossene System-Operationen
### Logging-Struktur
```
logs/
├── app/app.log # Haupt-Anwendungslog
├── errors/errors.log # Fehler-spezifische Logs
├── system_control/ # System-Control-Operationen
├── error_recovery/ # Error-Recovery-Aktivitäten
└── kiosk/ # Kiosk-spezifische Logs
```
### Kiosk-Service-Logging
- **Systemd Journal**: `journalctl -u myp-kiosk.service`
- **Dedizierte Log-Datei**: `/var/log/myp-kiosk.log`
- **Rate-Limiting**: 1000 Nachrichten/30s
## 🚨 Sicherheitsfeatures
### Sicherheitsprüfungen vor Operationen
- **Systemlast-Prüfung**: Keine Operationen bei hoher Last
- **Speicher-Prüfung**: Warnung bei niedrigem verfügbarem Speicher
- **Aktive Jobs**: Keine Restarts während laufender Druckjobs
- **Kritische Prozesse**: Überwachung von CPU-intensiven Prozessen
### Benutzer-Berechtigungen
- **Admin-Only**: Alle System-Control-Funktionen nur für Administratoren
- **Doppelte Bestätigung**: Kritische Operationen (Shutdown) benötigen mehrfache Bestätigung
- **Audit-Trail**: Alle Operationen werden mit User-ID und Zeitstempel geloggt
## 🔧 Fehlerbehebung
### Häufige Probleme
#### Kiosk startet nicht
```bash
# Service-Status prüfen
sudo systemctl status myp-kiosk.service
# Detaillierte Logs anzeigen
journalctl -u myp-kiosk.service -f
# X11-Display prüfen
sudo -u kiosk DISPLAY=:0 xset q
# Backend-Verfügbarkeit testen
curl -k https://localhost:443/api/kiosk/status
```
#### Error-Recovery funktioniert nicht
```bash
# Error-Recovery-Status prüfen
curl -H "X-CSRFToken: <token>" https://localhost:443/api/admin/error-recovery/status
# Manuell aktivieren
curl -X POST -H "Content-Type: application/json" \
-H "X-CSRFToken: <token>" \
-d '{"enable": true}' \
https://localhost:443/api/admin/error-recovery/toggle
```
#### System-Control-Operationen schlagen fehl
```bash
# System-Status überprüfen
curl -H "X-CSRFToken: <token>" https://localhost:443/api/admin/system/status
# Aktuelle Operationen anzeigen
curl -H "X-CSRFToken: <token>" https://localhost:443/api/admin/system/operations
# Sicherheitsprüfungen bypass (nur bei Notfällen)
curl -X POST -H "Content-Type: application/json" \
-H "X-CSRFToken: <token>" \
-d '{"force": true, "reason": "Notfall"}' \
https://localhost:443/api/admin/system/restart
```
## 📈 Performance-Optimierungen
### Kiosk-Service
- **Hardware-Beschleunigung**: Optimierte GPU-Nutzung
- **Speicher-Management**: Begrenzte Browser-Speichernutzung
- **CPU-Limits**: Maximum 80% CPU-Nutzung
- **Prozess-Cleanup**: Automatische Bereinigung alter Browser-Prozesse
### Error-Recovery
- **Efficient Pattern Matching**: Optimierte Regex-Verarbeitung
- **Batch-Processing**: Log-Dateien in Chunks verarbeitet
- **Memory-Conscious**: Begrenzte History-Größe
- **Thread-Safe**: Sichere Parallel-Verarbeitung
## 🎯 Wartungsfreier Betrieb
### Automatische Wartung
1. **Log-Rotation**: Automatische Bereinigung alter Logs
2. **Cache-Management**: Periodische Cache-Bereinigung
3. **Database-Maintenance**: Automatische DB-Optimierung
4. **Service-Health-Checks**: Kontinuierliche Service-Überwachung
### Präventive Maßnahmen
1. **Resource-Monitoring**: Frühwarnung bei Ressourcen-Engpässen
2. **Predictive-Recovery**: Probleme erkennen bevor sie kritisch werden
3. **Self-Healing**: Automatische Problembehebung ohne menschlichen Eingriff
4. **Graceful-Degradation**: System bleibt auch bei Teilausfällen funktional
## 🔮 Zukünftige Erweiterungen
### Geplante Features
1. **Machine Learning**: Predictive Error-Detection
2. **Remote-Monitoring**: Zentrale Überwachung mehrerer Systeme
3. **Advanced-Analytics**: Detaillierte Performance-Analysen
4. **Auto-Scaling**: Dynamische Ressourcen-Anpassung
### Erweiterungsmöglichkeiten
1. **Custom Error-Patterns**: Benutzer-definierte Fehlermuster
2. **Integration APIs**: Anbindung an externe Monitoring-Systeme
3. **Mobile Alerts**: Push-Benachrichtigungen bei kritischen Fehlern
4. **Cloud-Backup**: Automatische Backup-Synchronisation
---
## 📞 Support
Bei Fragen oder Problemen:
1. **Logs prüfen**: Immer zuerst die relevanten Log-Dateien überprüfen
2. **System-Status**: Admin-Panel → System-Status für Übersicht
3. **Error-Recovery**: Statistiken und Recent-Errors überprüfen
4. **Manual-Recovery**: Bei kritischen Problemen manuelle Recovery-Aktionen
**Wichtig**: Das System ist für wartungsfreien Betrieb ausgelegt. Die meisten Probleme werden automatisch erkannt und behoben.