Hoofdstuk 11 van 12 · Serverbeheer
Monitoring en automatisering
4 lesuren
Een server is niet klaar zodra de website werkt. Je moet prestaties, diensten en fouten kunnen controleren en terugkerende taken geautomatiseerd uitvoeren.
Na dit hoofdstuk kun je
- Basisindicatoren voor servergezondheid monitoren.
- Webmin in een afgeschermd lab installeren en gebruiken.
- Een veilig Bash-script schrijven en testen.
- Een cronjob maken, controleren en verwijderen.
Waarom monitoring nodig is
De GreenLeaf-server levert Apache, PHP, MariaDB en WordPress. Een storing kan de website onbereikbaar maken. Monitoring helpt om problemen vroeg op te merken. Controleer onder andere CPU, geheugen, schijfruimte, netwerk, processen, service-status en logs.
Webmin biedt basisbeheer via een webinterface. Voor uitgebreidere monitoring gebruikt men bijvoorbeeld Zabbix, Nagios of Grafana met een passende gegevensbron. Een beheerinterface moet goed worden beveiligd.
uptime
free -h
df -h
systemctl is-active apache2
systemctl is-active mariadb
systemctl is-active ssh
sudo journalctl -b -p err --no-pager | tail -n 30
Webmin veilig installeren in het lab
Webmin is een krachtige beheeromgeving die systeemconfiguraties kan aanpassen. Gebruik alleen de officiële installatie-instructies van Webmin, controleer het installatiescript voordat je het draait en beperk TCP-poort 10000 tot je beheercomputer of een VPN.
De volgorde in de oorspronkelijke opdracht is: benodigde pakketten, repository toevoegen, pakketbronnen verversen, Webmin installeren en de service controleren.
sudo apt update
sudo apt install curl wget gnupg ca-certificates
cd /tmp
curl -fLo setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
less /tmp/setup-repos.sh
sudo sh /tmp/setup-repos.sh
sudo apt update
sudo apt install webmin
sudo systemctl status webmin
systemctl is-enabled webmin
Verbinding maken met Webmin
- Bepaal het IP-adres van de Ubuntu Server.
- Beperk Webmin-toegang in UFW tot het IP-adres van je beheercomputer, bijvoorbeeld
192.168.1.10. - Open in de browser
https://server-ip:10000. - Controleer de identiteit van de server en meld je aan met een bevoegde gebruiker.
- Bekijk de systeeminformatie, CPU, geheugen en de status van services.
sudo ufw allow from 192.168.1.10 to any port 10000 proto tcp
sudo ufw status numbered
Bash-scripts voor vaste controles
Een Bash-script is een tekstbestand met meerdere commando’s. Het begint meestal met een shebang: #!/usr/bin/env bash. Voor betrouwbare scripts zijn duidelijke foutafhandeling en veilige paden belangrijk.
Maak als eigen gebruiker een script in een map ~/scripts. Zo hoef je geen scripts met rootrechten te draaien voor eenvoudige informatiecontroles.
mkdir -p ~/scripts
nano ~/scripts/servercheck.sh
#!/usr/bin/env bash
set -euo pipefail
echo "=== GreenLeaf servercontrole ==="
date -Is
uptime
free -h
df -h /
for service in apache2 mariadb ssh; do
printf "%s: " "$service"
systemctl is-active "$service" || true
done
chmod 750 ~/scripts/servercheck.sh
~/scripts/servercheck.sh
mkdir -p ~/logs
~/scripts/servercheck.sh >> ~/logs/servercheck.log 2>&1
Met Cron periodiek uitvoeren
Cron is een planner voor terugkerende opdrachten. In een crontab geef je met vijf velden aan: minuut, uur, dag van de maand, maand en weekdag. Het oorspronkelijke GreenLeaf-scenario vraagt om periodieke servercontroles.
crontab -l
crontab -e
*/5 * * * * /home/JE_GEBRUIKERSNAAM/scripts/servercheck.sh >> /home/JE_GEBRUIKERSNAAM/logs/servercheck.log 2>&1
systemctl status cron
tail -n 50 ~/logs/servercheck.log
Praktijkopdracht
Monitor en automatiseer GreenLeaf
Lever een controleerbaar, herhaalbaar beheerproces op.
- Leg CPU-belasting, geheugengebruik, opslag en status van Apache/MariaDB vast.
- Installeer Webmin uitsluitend op een afgeschermde labserver en beperk toegang via UFW.
- Schrijf het servercheck-script en test het eerst handmatig.
- Plan met
crontab -eiedere vijf minuten een controle. - Controleer dat er nieuwe regels in het logbestand verschijnen.
- Verwijder de tijdelijke cronjob en maak een snapshot.
Bewijs voor je logboek: Screenshot van monitoring, het volledige script, crontabregel en het logfile.
Controleer je kennis
- Waarom zijn CPU en schijfruimte nuttige monitoringgegevens?
- Waarom mogen beheerders Webmin niet zomaar publiek toegankelijk maken?
- Wat betekenen de vijf velden in een cronregel?
- Waarom test je een script vóór het automatisch gaat draaien?
Begrippen
- Monitoring
- Controleren van gezondheid en beschikbaarheid.
- Webmin
- Webinterface voor Linux-systeembeheer.
- Bash
- Unix-shell en scripttaal.
- Cron
- Planner voor terugkerende taken.
- Crontab
- Tabel waarin cronopdrachten worden vastgelegd.
Hoofdstuk afgerond?
Voer eerst de praktijkopdracht uit en sla je bewijs op in je eigen logboek.
