Betrieb & Wartung
- Backup & Restore
- Monitoring & Alerting
- Alerting
- Docker Betrieb
- Allgemein
- Container Standards
- Neuen Container bereitstellen
- Container Updates
- Backup-Konzept
- Netzwerke
- Lifecycle
- Updates
- Debian Updates
- Container Updates
- NAS Updates
- Netzwerkgeräte Updates
- Update Strategie
- Reboot Strategie
- Troubleshooting
Backup & Restore
Restic Architektur
QNAP Backupziel
Synology Replikation
Recovery Ablauf
Monitoring & Alerting
Überblick
Zweck
Die Infrastruktur von Hainbach 45 verwendet eine zentrale Monitoring- und Alerting-Plattform zur Überwachung kritischer Dienste und Systeme.
Ziele:
- frühzeitige Fehlererkennung
- Überwachung kritischer Dienste
- Benachrichtigung bei Ausfällen
- Kontrolle von Backupvorgängen
- Updateüberwachung
- Verfügbarkeitskontrolle
- zentrale Statusübersicht
Architekturprinzip
Die Monitoring-Plattform basiert auf mehreren spezialisierten Diensten.
Die Umgebung verwendet bewusst:
- leichtgewichtige Lösungen
- hostnahe Überwachung
- zentrale Benachrichtigungen
- systemd-basierte Integration
- möglichst geringe Komplexität
Verwendete Komponenten
| Dienst | Funktion |
|---|---|
| Uptime Kuma | Verfügbarkeitsmonitoring |
| ntfy | Push-Benachrichtigungen |
| Diun | Container-Update-Monitoring |
| Grafana | Dashboards / Visualisierung |
| InfluxDB | Zeitreihendatenbank |
Hauptfunktionen
Verfügbarkeitsüberwachung
Überwachung von:
- Infrastruktur
- DNS
- Reverse Proxy
- Produktivdiensten
- NAS-Systemen
- Smart-Home-Diensten
Backup-Überwachung
Restic-Backups werden überwacht mittels:
- systemd
- ntfy
- Success-/Failure-Benachrichtigungen
Update-Überwachung
Container- und Systemupdates werden überwacht über:
- Diun
- apt-Update-Checks
- ntfy
Push-Benachrichtigungen
Benachrichtigungen erfolgen zentral über:
ntfy
Benachrichtigungen werden auf mobile Geräte zugestellt.
Architekturübersicht
Die Monitoring-Kommunikation erfolgt typischerweise:
Dienste
→ Monitoring
→ ntfy
→ Smartphone
Sicherheitsprinzipien
Die Monitoring-Infrastruktur dient insbesondere:
- schneller Fehlererkennung
- minimierten Reaktionszeiten
- kontrollierter Betriebsüberwachung
- zentralen Alarmierungen
- besserer Infrastrukturtransparenz
Architekturentscheidung
Die Umgebung verwendet bewusst:
- zentrale Benachrichtigungen
- einfache Linux-Mechanismen
- systemd-first-Prinzip
- containerisierte Monitoringdienste
- minimierte Komplexität
Dadurch bleibt die Monitoringplattform:
- wartbar
- nachvollziehbar
- leicht erweiterbar
- stabil
Kritikalität
Folgende Dienste gelten als besonders kritisch:
| Dienst | Kritikalität |
|---|---|
| ntfy | hoch |
| Uptime Kuma | hoch |
| Grafana | mittel |
| InfluxDB | hoch |
| Diun | niedrig |
Zugehörige Seiten
- ntfy
- Uptime Kuma
- Diun
- Grafana
- InfluxDB
- Restic-Monitoring
- OS-Update-Monitoring
Restic-Backup
Zweck
Restic dient als zentrale Backup-Lösung der H45-Infrastruktur.
Die Plattform sichert insbesondere:
- Docker-Daten
- Konfigurationen
- persistente Volumes
- Infrastrukturdaten
- Monitoringdaten
- Smart-Home-Konfigurationen
Architekturprinzip
Die Backup-Strategie basiert auf folgenden Grundprinzipien:
- hostbasierte Backups
- systemd-first-Prinzip
- containerunabhängige Sicherung
- zentrale NAS-Speicherung
- zusätzliche Replikation
- geplante Offsite-Sicherung
Architekturentscheidung
Restic wird bewusst:
- als Hostinstallation
- nicht containerisiert
- systemd-basiert
betrieben.
Dadurch bleiben:
- Backups unabhängig von Docker
- Wiederherstellungen einfacher
- systemnahe Integrationen möglich
Backupziele
Primärziel
| System | Funktion |
|---|---|
| QNAP NAS | Hauptbackupziel |
Sekundärziel
| System | Funktion |
|---|---|
| Synology NAS | Replikation |
Geplante Erweiterung
Zusätzlich vorgesehen:
- externe Offsite-Sicherung
- zusätzliche Standorttrennung
- langfristige Archivierung
Gesicherte Daten
Docker-Daten
Typische Verzeichnisse:
/srv/docker/
Infrastrukturdaten
Beispiele:
- NGINX Proxy Manager
- AdGuard Home
- BookStack
- Grafana
- InfluxDB
Smart Home
Beispiele:
- ioBroker
- Homematic-Konfigurationen
- OT-nahe Konfigurationen
Architekturübersicht
Backupfluss:
Hostsystem
→ Restic
→ QNAP NAS
→ Synology-Replikation
→ Offsite (geplant)
Backupstrategie
Die Umgebung verwendet bewusst:
- regelmäßige automatische Backups
- zentrale Speicherung
- mehrere Sicherungsebenen
- reproduzierbare Restore-Prozesse
systemd-Integration
Die Backups werden automatisiert über:
- systemd Services
- systemd Timer
ausgeführt.
ntfy-Integration
Benachrichtigungen erfolgen zentral über:
ntfy
Verwendete Topics:
| Topic | Zweck |
|---|---|
H45-Backup |
erfolgreiche Backups |
H45-Alerts |
Fehler / Ausfälle |
Minimalinvasive Integration
Die ntfy-Integration erfolgt bewusst minimalinvasiv.
Bestehende Backup-Skripte bleiben unverändert.
Die Benachrichtigungen erfolgen stattdessen über:
ExecStartPost=
OnFailure=
innerhalb von systemd.
Architekturentscheidung gegen Containerbetrieb
Restic wird bewusst nicht als Docker-Container betrieben.
Gründe:
- höhere Zuverlässigkeit
- einfachere Hostintegration
- bessere systemd-Integration
- geringere Abhängigkeiten
- einfacheres Troubleshooting
Sicherheitsprinzipien
Die Backup-Architektur dient insbesondere:
- reduziertem Datenverlust
- vereinfachter Wiederherstellung
- Infrastrukturstabilität
- reproduzierbaren Restores
- kontrollierten Sicherungsprozessen
Restore-Prinzip
Typischer Wiederherstellungsprozess:
1. Zielsystem vorbereiten
2. Daten mittels Restic zurückspielen
3. Docker-Stacks deployen
4. Dienste starten
5. Funktion prüfen
Besonderheiten
Die Umgebung verwendet bewusst:
- hostbasierte Backups
- systemd-first-Prinzip
- zentrale NAS-Backups
- ntfy-Benachrichtigungen
- reproduzierbare Restore-Prozesse
Dadurch bleibt die Backupplattform:
- wartbar
- nachvollziehbar
- stabil
- recoveryfähig
Dokumentation
Restic-Repositories
Optional Screenshot der Restic-Struktur einfügen
ntfy-Backupmeldungen
Optional Screenshot der Backup-Benachrichtigungen einfügen
systemd-Services
Optional Screenshot der systemd-Units einfügen
Alerting
ntfy
Diun
OS-Updates
Push-Benachrichtigungen
Docker Betrieb
Allgemein
Zielsetzung
Die meisten Produktivdienste der Infrastruktur Hainbach 45 werden containerisiert mittels Docker betrieben.
Der Einsatz von Docker ermöglicht:
- reproduzierbare Installationen
- einfache Updates
- saubere Trennung der Anwendungen
- schnelle Wiederherstellung im Fehlerfall
- vereinfachte Migration auf neue Systeme
Die zentrale Verwaltung erfolgt über Portainer.
Architektur
Die Docker-Plattform wird ausschließlich auf dem App-Server betrieben.
| Komponente | Funktion |
|---|---|
| Docker Engine | Container Runtime |
| Portainer CE | Verwaltungsoberfläche |
| Docker Volumes | Persistente Daten |
| Docker Networks | Container-Kommunikation |
| NGINX Proxy Manager | Veröffentlichung von Diensten |
Architekturübersicht
[Abbildung: Docker-Containerlandschaft App-Server]
Grundprinzipien
Für den Betrieb gelten folgende Grundsätze:
- Ein Dienst = ein Container
- Persistente Daten niemals im Container speichern
- Nutzung von Docker Volumes
- Container werden über Portainer verwaltet
- Reverse Proxy statt Portfreigaben
- DNS-Namen statt IP-Adressen verwenden
- Produktivcontainer nur auf dem App-Server betreiben
Persistente Daten
Alle produktiven Anwendungen speichern ihre Daten außerhalb des Containers.
Beispiele:
| Anwendung | Speicherort |
|---|---|
| Nextcloud | Docker Volume |
| Vaultwarden | Docker Volume |
| Grafana | Docker Volume |
| InfluxDB | Docker Volume |
| BookStack | Docker Volume |
| ntfy | Docker Volume |
Dadurch bleiben Daten bei Container-Neuerstellung erhalten.
Netzwerkkonzept
Container kommunizieren über dedizierte Docker-Netzwerke.
Externe Zugriffe erfolgen grundsätzlich über:
Client → DNS → NGINX Proxy Manager → Container
Direkte Portfreigaben sollen vermieden werden.
Containerverwaltung
Die Administration erfolgt über Portainer.
Aufgaben:
- Container starten und stoppen
- Logs einsehen
- Images aktualisieren
- Volumes verwalten
- Netzwerke verwalten
- Stacks verwalten
Backup
Container selbst werden nicht gesichert.
Gesichert werden:
- Docker Volumes
- Konfigurationsdateien
- Stacks
- Persistente Anwendungsdaten
Die Sicherung erfolgt mittels Restic.
Updates
Verfügbare Container-Updates werden über Diun erkannt.
Ablauf:
- Diun meldet neues Image
- Update wird manuell geprüft
- Container wird aktualisiert
- Funktionstest durchführen
- Monitoring prüfen
Automatische Containerupdates werden nicht eingesetzt.
Monitoring
Folgende Bereiche werden überwacht:
- Containerstatus
- Erreichbarkeit
- Updates
- Backupstatus
- Hostsystem
Die Überwachung erfolgt über:
- Uptime Kuma
- Grafana
- ntfy
Wiederherstellung
Im Fehlerfall erfolgt die Wiederherstellung in folgender Reihenfolge:
- Debian installieren
- Docker installieren
- Portainer installieren
- Stacks wiederherstellen
- Docker Volumes wiederherstellen
- Container starten
- Funktionstest durchführen
Verantwortlichkeit
Verantwortliches System:
- App-Server
Verwaltungswerkzeug:
- Portainer CE
Container Standards
Zielsetzung
Diese Standards definieren die einheitliche Bereitstellung und Verwaltung von Docker-Containern innerhalb der Infrastruktur Hainbach 45.
Ziel ist eine konsistente, wartbare und reproduzierbare Umgebung.
Containernamen
Containernamen werden grundsätzlich klein geschrieben.
Schema:
Beispiele:
- nextcloud
- vaultwarden
- grafana
- influxdb
- uptime-kuma
- ntfy
- bookstack
Hostnamen
Server erhalten sprechende Hostnamen.
Beispiele:
- app-server
- edge-server
- iot-server
Docker Netzwerke
Netzwerke erhalten eindeutige Namen.
Beispiele:
- proxy
- backend
- monitoring
Volumes
Persistente Daten werden ausschließlich in Docker Volumes gespeichert.
Schema:
-data
Beispiele:
- nextcloud-data
- grafana-data
- vaultwarden-data
Reverse Proxy
Jeder veröffentlichte Dienst erhält:
- DNS-Eintrag
- Reverse-Proxy-Eintrag
- SSL-Zertifikat
Direkte Portfreigaben sind zu vermeiden.
Logging
Containerlogs verbleiben lokal auf dem Hostsystem.
Für Fehleranalysen wird primär Portainer verwendet.
Sicherheit
Folgende Grundsätze gelten:
- keine unnötigen Portfreigaben
- aktuelle Images verwenden
- produktive Daten niemals im Container speichern
- regelmäßige Updates durchführen
- Dienste ausschließlich über Reverse Proxy veröffentlichen
Dokumentation
Jeder Produktivcontainer wird dokumentiert.
Mindestens:
- Funktion
- Host
- URL
- Backupstatus
- Abhängigkeiten
Neuen Container bereitstellen
Zielsetzung
Neue Dienste werden standardisiert bereitgestellt.
Dadurch bleiben Betrieb, Dokumentation und Wiederherstellung nachvollziehbar.
Vorbereitung
Vor der Installation prüfen:
- Zweck des Dienstes
- Ressourcenbedarf
- Backupanforderungen
- Sicherheitsanforderungen
- Reverse-Proxy-Anforderungen
Deployment
Container werden bevorzugt als Docker Stack bereitgestellt.
Ablauf:
- Docker Compose erstellen
- Stack in Portainer anlegen
- Container starten
- Funktion prüfen
Netzwerk
Container werden in das erforderliche Docker-Netzwerk eingebunden.
Beispiele:
- proxy
- monitoring
- backend
Reverse Proxy
Falls extern oder intern erreichbar:
- DNS-Eintrag erstellen
- Proxy Host anlegen
- SSL-Zertifikat aktivieren
- Funktionstest durchführen
Monitoring
Nach Bereitstellung:
- Uptime Kuma hinzufügen
- Backup prüfen
- Dokumentation ergänzen
Abschluss
Folgende Punkte müssen erfüllt sein:
- Dienst erreichbar
- Monitoring aktiv
- Backup vorhanden
- Dokumentation erstellt
Container Updates
Zielsetzung
Container werden kontrolliert und nachvollziehbar aktualisiert.
Automatische Updates werden nicht eingesetzt.
Update-Erkennung
Verfügbare Updates werden erkannt über:
- Diun
Benachrichtigungen erfolgen über:
- ntfy
Updateprozess
- Update-Meldung prüfen
- Release Notes lesen
- Backupstatus prüfen
- Container aktualisieren
- Funktion testen
- Monitoring prüfen
Durchführung
Aktualisierung über:
- Portainer
- Stack Redeploy
Dabei wird das aktuelle Image neu geladen.
Funktionstest
Nach jedem Update prüfen:
- Weboberfläche erreichbar
- Logs fehlerfrei
- Daten vorhanden
- Reverse Proxy funktioniert
Rollback
Bei Problemen:
- Vorheriges Image verwenden
- Stack erneut deployen
- Backup nur im Ausnahmefall zurückspielen
Dokumentation
Größere Versionssprünge werden dokumentiert.
Beispiele:
- Datenbankänderungen
- Breaking Changes
- neue Konfigurationen
Backup-Konzept
Zielsetzung
Container selbst sind austauschbar.
Gesichert werden ausschließlich persistente Daten und Konfigurationen.
Backup-Prinzip
Nicht gesichert:
- Container
- Images
- Docker Engine
Gesichert:
- Docker Volumes
- Stack-Konfigurationen
- Persistente Daten
Backup-Werkzeug
Für alle Server wird Restic verwendet.
Vorteile:
- verschlüsselt
- versioniert
- dedupliziert
- automatisierbar
Backupziel
Primäres Ziel:
- QNAP NAS
Sekundäres Ziel:
- Synology NAS (Replikation)
Sicherungsumfang
Beispiele:
Nextcloud
- Daten
- Datenbank
Vaultwarden
- Datenbank
- Anhänge
Grafana
- Dashboards
- Datenquellen
InfluxDB
- Zeitreihendaten
BookStack
- Datenbank
- Uploads
Überwachung
Backupstatus wird überwacht über:
- ntfy
- Grafana
- ioBroker
Wiederherstellung
Ablauf:
- Docker installieren
- Volumes wiederherstellen
- Stack bereitstellen
- Container starten
- Funktionstest durchführen
Grundsatz
Ein Container muss jederzeit ohne Datenverlust neu erstellt werden können.
Netzwerke
Zielsetzung
Docker Netzwerke dienen der logischen Trennung und Kommunikation von Containern.
Grundprinzip
Container kommunizieren nicht direkt über das physische Netzwerk.
Die Kommunikation erfolgt über Docker-Netzwerke.
Vorteile
- Isolation
- Sicherheit
- einfache Verwaltung
- reproduzierbare Deployments
Netzwerktypen
Proxy
Enthält:
- NGINX Proxy Manager
- veröffentlichte Dienste
Monitoring
Enthält:
- Grafana
- InfluxDB
- Uptime Kuma
Backend
Interne Kommunikation zwischen Diensten.
Veröffentlichung
Externe Zugriffe erfolgen ausschließlich über:
DNS → Reverse Proxy → Container
Direkte Containerports sind zu vermeiden.
Fehleranalyse
Prüfen:
- Netzwerkzuordnung
- DNS-Auflösung
- Reverse Proxy
- Containerstatus
Lifecycle
Übersicht
Jeder Container durchläuft einen definierten Lebenszyklus.
Planung
Vor Deployment prüfen:
- Nutzen
- Sicherheit
- Ressourcenbedarf
- Backup
Bereitstellung
Deployment über:
- Docker Compose
- Portainer Stack
Betrieb
Während des Betriebs:
- Monitoring aktiv
- Backup aktiv
- Updates überwachen
Wartung
Regelmäßig:
- Images aktualisieren
- Logs prüfen
- Ressourcen prüfen
Außerbetriebnahme
Vor dem Entfernen:
- Daten sichern
- Abhängigkeiten prüfen
- Dokumentation aktualisieren
Entfernung
Löschen:
- Container
- Images
- Netzwerke
Volumes nur löschen, wenn keine Daten mehr benötigt werden.
Updates
Debian Updates
Zielsetzung
Die Linux-Server der Infrastruktur werden regelmäßig aktualisiert, um Sicherheitslücken zu schließen und die Systemstabilität zu gewährleisten.
Betroffene Systeme:
- App-Server
- Edge-Server
- IoT-Server
Updateüberwachung
Verfügbare Updates werden automatisch erkannt.
Überwachung erfolgt über:
- systemd Timer
- ioBroker Datenpunkte
- ntfy Benachrichtigungen
Prüfroutine
Vor jedem Update prüfen:
- Backup erfolgreich
- Keine kritischen Wartungsarbeiten aktiv
- Genügend Speicherplatz vorhanden
Durchführung
Aktualisierung:
sudo apt update
sudo apt upgrade
Falls erforderlich:
sudo apt full-upgrade
Neustart
Nach Kernel-Updates oder sicherheitsrelevanten Änderungen kann ein Neustart erforderlich sein.
Prüfung:
needs-restarting -r
oder
cat /var/run/reboot-required
Kontrolle
Nach dem Update prüfen:
- Docker läuft
- Dienste erreichbar
- Uptime Kuma ohne Fehler
- ntfy funktioniert
Verantwortlichkeit
Systemadministrator
Container Updates
Zielsetzung
Container werden kontrolliert aktualisiert.
Automatische Updates sind nicht aktiviert.
Update-Erkennung
Diun überwacht alle Containerimages.
Benachrichtigung erfolgt über:
- ntfy
Standardprozess
- Update-Meldung prüfen
- Changelog lesen
- Backupstatus kontrollieren
- Update durchführen
- Funktionstest durchführen
Durchführung
Portainer öffnen
Stack auswählen
Redeploy:
- Pull latest image
- Redeploy
Kontrolle
Prüfen:
- Container gestartet
- Reverse Proxy erreichbar
- Logs fehlerfrei
- Monitoring aktiv
Rollback
Falls erforderlich:
- Vorheriges Image verwenden
- Stack erneut deployen
Backups werden nur im Ausnahmefall eingespielt.
NAS Updates
Zielsetzung
NAS-Systeme werden regelmäßig aktualisiert.
Betroffene Systeme:
- Synology DS920+
- QNAP TS-431XeU
Vorbereitung
Vor Updates prüfen:
- Replikation erfolgreich
- Backups abgeschlossen
- Speicherzustand fehlerfrei
Synology
Aktualisierung über:
Systemsteuerung → Aktualisierung & Wiederherstellung
Prüfen:
- DSM Version
- Paketupdates
- Speicherpool
QNAP
Aktualisierung über:
System → Firmware Update
Prüfen:
- Firmware
- Apps
- Speicherstatus
Nachkontrolle
Prüfen:
- SMB Freigaben
- NFS Freigaben
- Backup Repository
- Replikation
- Benutzeranmeldung
Dokumentation
Größere Versionswechsel dokumentieren.
Netzwerkgeräte Updates
Zielsetzung
Router, Switche und Access Points werden regelmäßig aktualisiert.
Betroffene Systeme
- TP-Link ER605
- TP-Link SG2210MP
- TP-Link SG3428
- TP-Link SG3210
- Omada Access Points
- Omada Controller OC200
Vorbereitung
Vor Updates prüfen:
- Aktuelle Konfiguration gesichert
- Keine Wartungsarbeiten aktiv
- Netzwerk stabil
Durchführung
Verwaltung über Omada Controller.
Pfad:
Devices → Firmware → Upgrade
Reihenfolge
Empfohlene Reihenfolge:
- Controller
- Access Points
- Switche
- Router
Nachkontrolle
Prüfen:
- VLANs
- WLANs
- DHCP
- DNS
- Internetzugang
- Managementzugriff
Dokumentation
Firmwarestände regelmäßig erfassen.
Update Strategie
Grundsatz
Updates werden kontrolliert und nachvollziehbar durchgeführt.
Automatische Produktivupdates werden nicht eingesetzt.
Priorisierung
Kritisch
Sicherheitslücken
Bearbeitung:
- sofort
Hoch
Stabilitätsprobleme
Bearbeitung:
- innerhalb weniger Tage
Normal
Funktionsupdates
Bearbeitung:
- nächstes Wartungsfenster
Wartungsfenster
Empfohlen:
- Wochenende
- Abendstunden
Vermeiden:
- laufende Backups
- aktive Wartungsarbeiten
Kontrollpunkte
Nach jedem Update prüfen:
- Dienste erreichbar
- Monitoring aktiv
- Backupstatus unverändert
- DNS funktioniert
- Reverse Proxy funktioniert
Dokumentation
Größere Änderungen werden dokumentiert.
Reboot Strategie
Zielsetzung
Neustarts erfolgen kontrolliert und möglichst selten.
Reihenfolge
Einzelserver
- Backup prüfen
- Dienste stoppen
- Neustart durchführen
- Funktionstest
Infrastruktur
Falls mehrere Systeme betroffen:
- Router
- Switches
- Edge-Server
- App-Server
- IoT-Server
Nachkontrolle
Prüfen:
- DNS
- Reverse Proxy
- Docker
- ioBroker
- Monitoring
Dokumentation
Ungeplante Neustarts dokumentieren.