5.3 KiB
Onderhoudsplan — iso27diy.com VPS & analytics stack
Dagelijks (geautomatiseerd)
Niets te doen — de volgende zaken lopen automatisch:
- fail2ban monitort SSH-pogingen en blokkeert aanvallers
- Docker herstart Umami en PostgreSQL bij crashes (
restart: always) - Nginx en fail2ban herstarten automatisch na een server-reboot (
systemctl enable) - Let's Encrypt vernieuwt het SSL-certificaat automatisch via Certbot
Wekelijks (~10 minuten)
Services controleren
# Nginx en fail2ban
sudo systemctl status nginx fail2ban
# Umami en PostgreSQL
cd ~/umami && docker compose ps
Wat je wil zien: active (running) voor systemd-services, running voor Docker containers.
fail2ban activiteit bekijken
sudo fail2ban-client status sshd
Veel bans op korte tijd kan wijzen op een gerichte aanval — overweeg dan bantime te verhogen in jail.local.
Schijfruimte controleren
df -h
Let op de partitie waar / op staat. Bij meer dan 80% gebruik actie ondernemen (logs opruimen, Docker images opschonen).
Docker logs vluchtig controleren
cd ~/umami && docker compose logs --since 24h umami
Zoek naar foutmeldingen of crashes.
Maandelijks (~30 minuten)
Systeemupdates installeren
sudo apt update && apt list --upgradable
sudo apt upgrade -y
Herstart daarna de server als de kernel geüpdatet is:
sudo reboot
Controleer na herstart of alle services weer draaien (zie wekelijkse check).
Umami updaten
cd ~/umami
docker compose pull
docker compose up -d
Database backup maken
docker compose exec db pg_dump -U umami umami > \
~/umami/backup-$(date +%Y%m%d).sql
Kopieer de backup naar een externe locatie (lokale machine of cloud opslag):
# Vanaf je lokale machine:
scp deploy@<server-ip>:~/umami/backup-$(date +%Y%m%d).sql ~/backups/
Verwijder oude backups op de server (bewaar de laatste 3):
ls -t ~/umami/backup-*.sql | tail -n +4 | xargs rm -f
SSL-certificaat controleren
sudo certbot renew --dry-run
Dit simuleert vernieuwing zonder het certificaat daadwerkelijk te vervangen. Als het slaagt, is automatische vernieuwing correct ingesteld.
Vervaldatum handmatig inzien:
sudo certbot certificates
Nginx-logs bekijken op verdacht verkeer
sudo tail -n 100 /var/log/nginx/access.log
sudo tail -n 50 /var/log/nginx/error.log
Veel 404-verzoeken op vreemde paden (bijv. /wp-admin, /.env) zijn normaal scannerverkeer — fail2ban pakt dit gedeeltelijk af. Bij aanhoudend verkeer van één IP kun je dat handmatig blokkeren:
sudo ufw deny from <ip-adres>
Docker opschonen
Ongebruikte images en containers stapelen zich op en verbruiken schijfruimte:
docker system prune -f
Kwartaal (~1 uur)
UTM campagnes updaten
- Voeg nieuwe campagnewaarden toe aan het UTM-scheme (nieuwe kwartaalcodes)
- Archiveer verlopen campagnes in de UTM tracker spreadsheet (status →
archived) - Controleer in Umami welke bronnen en campagnes het meest verkeer opleveren
Wachtwoorden roteren
- Umami admin-wachtwoord wijzigen via Settings → Profile
- Overweeg het database-wachtwoord in
docker-compose.ymlte roteren (vereist herstart van de stack)
Firewall-regels reviewen
sudo ufw status verbose
Verwijder regels die niet meer nodig zijn.
Serverresources evalueren
# CPU en geheugen
htop
# Schijfruimte per map
du -sh ~/umami/*
sudo du -sh /var/log/*
Bij structureel hoog geheugen- of CPU-gebruik: overweeg een groter Hostinger-pakket.
Bij incidenten
Service ligt plat
# Herstart individuele service
sudo systemctl restart nginx
sudo systemctl restart fail2ban
cd ~/umami && docker compose restart
Umami dashboard niet bereikbaar
Controleer in volgorde:
- Draaien de Docker containers? →
docker compose ps - Luistert Nginx? →
sudo systemctl status nginx - Klopt de DNS? →
dig analytics.iso27diy.com - Is het SSL-certificaat geldig? →
sudo certbot certificates
Database herstellen vanuit backup
cd ~/umami
docker compose stop umami
docker compose exec db psql -U umami -c "DROP DATABASE umami;"
docker compose exec db psql -U umami -c "CREATE DATABASE umami;"
docker compose exec -T db psql -U umami umami < backup-YYYYMMDD.sql
docker compose start umami
Jezelf buitengesloten via fail2ban
Doe dit vanaf een andere internetverbinding (bijv. mobiel):
sudo fail2ban-client set sshd unbanip <jouw-ip>
Handige commando's — spiekbriefje
| Wat | Commando |
|---|---|
| Services checken | sudo systemctl status nginx fail2ban |
| Docker containers checken | cd ~/umami && docker compose ps |
| Schijfruimte | df -h |
| fail2ban status | sudo fail2ban-client status sshd |
| Umami logs | cd ~/umami && docker compose logs -f umami |
| Nginx logs | sudo tail -n 100 /var/log/nginx/access.log |
| Database backup | docker compose exec db pg_dump -U umami umami > backup-$(date +%Y%m%d).sql |
| Systeem updaten | sudo apt update && sudo apt upgrade -y |
| Umami updaten | cd ~/umami && docker compose pull && docker compose up -d |
| Docker opschonen | docker system prune -f |
| IP blokkeren | sudo ufw deny from <ip> |
| IP deblokkeren (fail2ban) | sudo fail2ban-client set sshd unbanip <ip> |