Ga naar inhoud
CursussenLinuxHoofdstuk 11

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.

Controleer belasting en capaciteit
uptime
free -h
df -h
Controleer belangrijkste services
systemctl is-active apache2
systemctl is-active mariadb
systemctl is-active ssh
Bekijk recente foutmeldingen
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.

Installeer benodigde hulpmiddelen
sudo apt update
sudo apt install curl wget gnupg ca-certificates
Haal de officiële repo-helper op in de tijdelijke map
cd /tmp
curl -fLo setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
Bekijk het script vóór uitvoeren
less /tmp/setup-repos.sh
Voeg na controle de repository toe en installeer Webmin
sudo sh /tmp/setup-repos.sh
sudo apt update
sudo apt install webmin
Controleer of de service draait
sudo systemctl status webmin
systemctl is-enabled webmin

Verbinding maken met Webmin

  1. Bepaal het IP-adres van de Ubuntu Server.
  2. Beperk Webmin-toegang in UFW tot het IP-adres van je beheercomputer, bijvoorbeeld 192.168.1.10.
  3. Open in de browser https://server-ip:10000.
  4. Controleer de identiteit van de server en meld je aan met een bevoegde gebruiker.
  5. Bekijk de systeeminformatie, CPU, geheugen en de status van services.
Sta poort 10000 alleen toe vanaf de beheercomputer
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.

Maak een eigen scriptmap en bestand
mkdir -p ~/scripts
nano ~/scripts/servercheck.sh
Volledig Bash-script voor GreenLeaf
#!/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
Maak uitvoerbaar en voer uit
chmod 750 ~/scripts/servercheck.sh
~/scripts/servercheck.sh
Bewaar de uitvoer in een logbestand
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.

Bekijk bestaande cronjobs
crontab -l
Open de gebruikerscrontab
crontab -e
Voorbeeldregel: elke 5 minuten
*/5 * * * * /home/JE_GEBRUIKERSNAAM/scripts/servercheck.sh >> /home/JE_GEBRUIKERSNAAM/logs/servercheck.log 2>&1
Controleer of de cron-service draait
systemctl status cron
Bekijk recente uitvoer
tail -n 50 ~/logs/servercheck.log

Praktijkopdracht

Monitor en automatiseer GreenLeaf

Lever een controleerbaar, herhaalbaar beheerproces op.

  1. Leg CPU-belasting, geheugengebruik, opslag en status van Apache/MariaDB vast.
  2. Installeer Webmin uitsluitend op een afgeschermde labserver en beperk toegang via UFW.
  3. Schrijf het servercheck-script en test het eerst handmatig.
  4. Plan met crontab -e iedere vijf minuten een controle.
  5. Controleer dat er nieuwe regels in het logbestand verschijnen.
  6. 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

  1. Waarom zijn CPU en schijfruimte nuttige monitoringgegevens?
  2. Waarom mogen beheerders Webmin niet zomaar publiek toegankelijk maken?
  3. Wat betekenen de vijf velden in een cronregel?
  4. 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.