Monitoring¶
Dokumenttyp: Developer Playbook
Status: Draft v0.2
Stand: 2026-06-30
Prinzip: Allgemeine Anleitung mit Praxisbeispiel aus Immohai
Ziel¶
Dieses Dokument erklärt, was Monitoring ist, warum es für Webprojekte wichtig ist und welche einfachen Prüfungen für private und kleinere professionelle Projekte ausreichen.
Monitoring bedeutet: regelmäßig prüfen, ob Server, Dienste und öffentliche URLs funktionieren.
Kurz erklärt¶
Monitoring beantwortet die Frage:
Läuft mein System gerade so, wie es laufen soll?
Dabei geht es zum Beispiel um:
- Ist der Server erreichbar?
- Läuft Docker?
- Laufen die Container?
- Läuft Nginx?
- Funktionieren die öffentlichen URLs?
- Funktioniert HTTPS?
- Ist genug Speicherplatz frei?
- Gibt es auffällige Fehler?
Warum Monitoring wichtig ist¶
Ohne Monitoring merkt man Fehler oft erst, wenn eine App nicht mehr erreichbar ist.
Monitoring hilft dabei:
- Ausfälle früher zu erkennen
- Fehler einzugrenzen
- Speicherprobleme zu vermeiden
- abgelaufene Zertifikate zu erkennen
- Container-Probleme zu finden
- Serverzustand nachvollziehbar zu prüfen
Für kleine Projekte muss Monitoring nicht sofort kompliziert sein. Am Anfang reicht eine einfache manuelle oder halbautomatische Prüfstruktur.
Monitoring und Logging¶
Monitoring und Logging sind verwandt, aber nicht dasselbe.
| Begriff | Bedeutung |
|---|---|
| Monitoring | Prüft Zustand und Erreichbarkeit |
| Logging | Speichert Ereignisse und Fehlermeldungen |
Einfach gesagt:
Monitoring sagt: Etwas ist kaputt.
Logging hilft zu verstehen: Warum ist es kaputt?
Beispiel:
Monitoring:
https://immohai.ohaisoft.com antwortet nicht.
Logging:
Nginx-Log zeigt 502 Bad Gateway.
Docker-Log zeigt Containerfehler.
Ebenen des Monitorings¶
Ein Webprojekt sollte auf mehreren Ebenen geprüft werden.
öffentliche URL
↓
HTTPS
↓
Nginx
↓
lokaler Port
↓
Docker-Container
↓
Server
Wenn eine Ebene nicht funktioniert, wird von außen nach innen geprüft.
1. Server-Erreichbarkeit prüfen¶
Vom lokalen Rechner:
ping <server-ip>
Beispiel:
ping 46.225.28.194
Hinweis:
Nicht jeder Server beantwortet Ping. Wenn Ping nicht funktioniert, heißt das nicht automatisch, dass der Server offline ist.
Besser ist zusätzlich ein SSH-Test:
ssh <server-alias>
Oder direkt:
ssh fober@46.225.28.194
2. Systemstatus prüfen¶
Auf dem Server:
uptime
Zeigt:
- wie lange der Server läuft
- wie viele Benutzer angemeldet sind
- grobe Systemlast
Speicher prüfen:
free -h
Festplatte prüfen:
df -h
Prozesse anzeigen:
top
Alternativ, falls installiert:
htop
3. Docker prüfen¶
Docker-Dienst prüfen:
sudo systemctl status docker
Container prüfen:
docker ps
Übersichtlicher:
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
Docker Compose im Projekt prüfen:
docker compose ps
4. Lokale Dienste prüfen¶
Bevor die öffentliche URL geprüft wird, sollte der lokale Dienst auf dem Server getestet werden.
Beispiele:
curl -I http://127.0.0.1:8100
curl -I http://127.0.0.1:8200
curl -I http://127.0.0.1:8201
Erwartung:
HTTP/1.1 200 OK
oder ein anderer erfolgreicher Status.
Wenn der lokale Dienst nicht funktioniert, liegt das Problem wahrscheinlich bei Docker oder der App.
5. Nginx prüfen¶
Status prüfen:
sudo systemctl status nginx
Konfiguration prüfen:
sudo nginx -t
Erwartung:
syntax is ok
test is successful
Nginx neu laden:
sudo systemctl reload nginx
Nur nach erfolgreichem nginx -t neu laden.
6. Öffentliche URLs prüfen¶
Öffentliche App prüfen:
curl -I https://app.example.com
Praxisbeispiel:
curl -I https://playbook.ohaisoft.com
curl -I https://immohai.ohaisoft.com
curl -I https://docs.immohai.ohaisoft.com
Erwartung:
HTTP/2 200
oder:
HTTP/1.1 200 OK
Eine Weiterleitung von HTTP auf HTTPS prüfen:
curl -I http://immohai.ohaisoft.com
Erwartung:
301 Moved Permanently
oder eine vergleichbare Weiterleitung auf HTTPS.
7. HTTPS-Zertifikate prüfen¶
Certbot-Zertifikate anzeigen:
sudo certbot certificates
Automatische Erneuerung testen:
sudo certbot renew --dry-run
Erwartung:
Congratulations, all simulated renewals succeeded
Dieser Test sollte nach der Einrichtung und nach größeren Nginx-Änderungen durchgeführt werden.
8. Speicherplatz prüfen¶
Speicherplatz ist bei kleinen Servern ein häufiger Engpass.
Prüfen:
df -h
Docker-Speicher prüfen:
docker system df
Wenn Docker viel Speicher belegt:
docker images
docker ps -a
Aufräumen nur bewusst durchführen.
Nicht blind ausführen, wenn produktive Daten oder Volumes betroffen sein könnten.
9. Logs prüfen¶
Monitoring zeigt den Zustand. Logs helfen bei der Ursache.
Wichtige Befehle:
docker compose logs --tail=100
sudo journalctl -u nginx --no-pager -n 100
sudo tail -n 100 /var/log/nginx/error.log
Das Thema Logging wird im nächsten Kapitel separat beschrieben.
Einfacher Prüfblock¶
Für kleine Projekte reicht am Anfang ein manueller Prüfblock.
Praxisbeispiel:
cd /home/fober/workspace/developer-playbook
git status
docker compose ps
curl -I http://127.0.0.1:8100
curl -I https://playbook.ohaisoft.com
cd /home/fober/projects/immohai
git status
docker compose ps
curl -I http://127.0.0.1:8200
curl -I http://127.0.0.1:8201
curl -I https://immohai.ohaisoft.com
curl -I https://docs.immohai.ohaisoft.com
sudo nginx -t
sudo systemctl status nginx
sudo certbot renew --dry-run
df -h
docker system df
Praxisbeispiel Immohai¶
Aktuell zu prüfende Dienste:
| Dienst | Öffentliche URL | Lokaler Port | Container |
|---|---|---|---|
| Developer Playbook | https://playbook.ohaisoft.com |
127.0.0.1:8100 |
developer-playbook-docs |
| Immohai App | https://immohai.ohaisoft.com |
127.0.0.1:8200 |
immohai-web |
| Immohai Dokumentation | https://docs.immohai.ohaisoft.com |
127.0.0.1:8201 |
immohai-docs |
Prüfen:
curl -I https://playbook.ohaisoft.com
curl -I https://immohai.ohaisoft.com
curl -I https://docs.immohai.ohaisoft.com
Einfache Monitoring-Routine¶
Für kleine Projekte reicht am Anfang eine regelmäßige manuelle Prüfung.
Empfehlung:
| Häufigkeit | Prüfung |
|---|---|
| nach jeder Änderung | docker compose ps, curl -I, nginx -t |
| wöchentlich | Speicherplatz, Docker-Status, Zertifikate |
| monatlich | Updates, Backups, Logs grob prüfen |
| nach Nginx-/DNS-Änderungen | öffentliche URLs und Certbot Renewal testen |
Später mögliche Monitoring-Werkzeuge¶
Für größere oder professionellere Setups können später Werkzeuge ergänzt werden.
Beispiele:
| Werkzeug | Zweck |
|---|---|
| Uptime Kuma | einfache Weboberfläche für Uptime-Monitoring |
| Netdata | Servermetriken in Echtzeit |
| Prometheus | Metriken sammeln |
| Grafana | Metriken visualisieren |
| Healthchecks.io | geplante Tasks überwachen |
| Better Stack | Uptime, Logs und Alerts als Dienst |
Für den Anfang ist ein manuelles Prüfkonzept ausreichend.
Typische Fehler¶
| Fehler | Ursache | Lösung |
|---|---|---|
| öffentliche URL nicht erreichbar | DNS, Nginx oder Containerproblem | von außen nach innen prüfen |
| lokaler Port nicht erreichbar | Container läuft nicht | docker compose ps und Logs prüfen |
| HTTPS funktioniert nicht | Zertifikat oder Nginx falsch | Certbot und Nginx prüfen |
| Nginx zeigt 502 | lokaler Dienst nicht erreichbar | proxy_pass und Container prüfen |
| Server langsam | CPU, RAM oder Disk voll | top, free -h, df -h prüfen |
| Docker belegt viel Speicher | alte Images oder Container | Docker-Speicher prüfen |
| Zertifikat läuft ab | Renewal funktioniert nicht | certbot renew --dry-run prüfen |
Best Practices¶
- Monitoring immer von außen nach innen denken.
- Nach jeder Änderung öffentliche URLs testen.
- Lokale Ports separat testen.
- Docker-Status regelmäßig prüfen.
- Speicherplatz regelmäßig prüfen.
- Certbot Renewal testen.
- Logs nicht ignorieren.
- Monitoring-Befehle dokumentieren.
- Für kleine Projekte einfach starten.
- Später bei Bedarf automatisiertes Monitoring ergänzen.
Checkliste¶
- [ ] Server erreichbar
- [ ] Docker läuft
- [ ] Container laufen
- [ ] lokale Ports erreichbar
- [ ] Nginx läuft
- [ ]
sudo nginx -terfolgreich - [ ] öffentliche HTTP/HTTPS-URLs geprüft
- [ ] Certbot Renewal getestet
- [ ] Speicherplatz geprüft
- [ ] Docker-Speicher geprüft
- [ ] Logs bei Fehlern geprüft
- [ ] Monitoring-Routine festgelegt