📝 "Update documentation: Refine FEHLERRESILIENZ_WARTUNGSFREIER_BETRIEB and IHK_DOKUMENTATION"
This commit is contained in:
parent
b1937d7979
commit
db6baad83d
@ -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.
|
Loading…
x
Reference in New Issue
Block a user