Reorganized some notes
This commit is contained in:
parent
0b4734927a
commit
0f1efefc1d
25 changed files with 35 additions and 66 deletions
228
vps@hostinger/VPS administration.md
Normal file
228
vps@hostinger/VPS administration.md
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
cd ~/umami && docker compose logs --since 24h umami
|
||||
```
|
||||
|
||||
Zoek naar foutmeldingen of crashes.
|
||||
|
||||
---
|
||||
|
||||
## Maandelijks (~30 minuten)
|
||||
|
||||
### Systeemupdates installeren
|
||||
|
||||
```bash
|
||||
sudo apt update && apt list --upgradable
|
||||
sudo apt upgrade -y
|
||||
```
|
||||
|
||||
Herstart daarna de server als de kernel geüpdatet is:
|
||||
|
||||
```bash
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
Controleer na herstart of alle services weer draaien (zie wekelijkse check).
|
||||
|
||||
### Umami updaten
|
||||
|
||||
```bash
|
||||
cd ~/umami
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Database backup maken
|
||||
|
||||
```bash
|
||||
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):
|
||||
|
||||
```bash
|
||||
# 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):
|
||||
|
||||
```bash
|
||||
ls -t ~/umami/backup-*.sql | tail -n +4 | xargs rm -f
|
||||
```
|
||||
|
||||
### SSL-certificaat controleren
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
sudo certbot certificates
|
||||
```
|
||||
|
||||
### Nginx-logs bekijken op verdacht verkeer
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
sudo ufw deny from <ip-adres>
|
||||
```
|
||||
|
||||
### Docker opschonen
|
||||
|
||||
Ongebruikte images en containers stapelen zich op en verbruiken schijfruimte:
|
||||
|
||||
```bash
|
||||
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.yml` te roteren (vereist herstart van de stack)
|
||||
|
||||
### Firewall-regels reviewen
|
||||
|
||||
```bash
|
||||
sudo ufw status verbose
|
||||
```
|
||||
|
||||
Verwijder regels die niet meer nodig zijn.
|
||||
|
||||
### Serverresources evalueren
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# Herstart individuele service
|
||||
sudo systemctl restart nginx
|
||||
sudo systemctl restart fail2ban
|
||||
cd ~/umami && docker compose restart
|
||||
```
|
||||
|
||||
### Umami dashboard niet bereikbaar
|
||||
|
||||
Controleer in volgorde:
|
||||
|
||||
1. Draaien de Docker containers? → `docker compose ps`
|
||||
2. Luistert Nginx? → `sudo systemctl status nginx`
|
||||
3. Klopt de DNS? → `dig analytics.iso27diy.com`
|
||||
4. Is het SSL-certificaat geldig? → `sudo certbot certificates`
|
||||
|
||||
### Database herstellen vanuit backup
|
||||
|
||||
```bash
|
||||
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):
|
||||
|
||||
```bash
|
||||
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>` |
|
||||
Loading…
Add table
Add a link
Reference in a new issue