Stel, je wordt ineens server-beheerder. Dat wil je helemaal niet, maar toevallig woon jij vlakbij die server. En als er wat is…
Welke commando’s moet je kennen en wat doen die dan eigenlijk? De top-10.
Systeem: Ubuntu server met cloudpanel, nginx. Raid device. Hardware: Dell Poweredge tower van Serverzaak
Login, user
Je zou een user account moeten hebben. Alle onderstaande commando’s zijn beter om met sudo
uit te voeren vanaf je normale user account. Het werken vanuit root
is afgeraden, zeker voor newbies.
Voorbeeld met sudo
Niet:
htop
maar
sudo htop
Algemene health
top en htop
top
htop
Met top
krijg je een overzicht van de processen. Hoeveel %CPU ze vreten. In top controleer je:
- load average. Nu:0,08 – 0,19 – 0,20.
- is er een proces met een CPU > 80%? Dat kan niet goed zijn. Noteer het procesnummer in de eerste kolom. En zie Status van je Services.
- is er een proces met een %MEM van > 80%.
Load average is de wachttijd voor een nieuw proces. Hoeveel processen moeten eindigen voordat een nieuwe kan starten? De 3 getallen zijn in de timeframes: gemiddelde laatste minuut, laatste 5, laatste 15. Op een server is de belansting typisch heel laag behalve tijdens backups en soortgelijke grote processen.
Een te hoge CPU? Dat kan niet goed zijn. Hangt dit proces? Op de server is het waarschijnlijk als service gestart. Dat kan niet goed zijn. Noteer het procesnummer in de eerste kolom.
Een te hoge MEM? Dat kan niet goed zijn. Hangt dit proces? Op de server is het waarschijnlijk als service gestart. Noteer het procesnummer in de eerste kolom.
htop
Een mooier scherm waarbij je per core (wiel van je CPU) kunt zien hoe hard ze werken.
clear
Wis het terminal scherm zodat je passwords of vorige commando’s niet meer ziet.
clear
Disk Health
Volgende bron van fouten zijn disk-gerelateerd. Deze commando’s helpen je.
df -h
cd /
du -sh *
df -h
geeft je de info voor disk free (human output).
Per device zie je hoeveel % disk er in gebruik is. Komt er een getal op 100, dan loopt je systeem vast. De /
en de /home
zijn in het bijzonder kwetsbaar om vol te lopen. Backups, logfiles en oude versies van software zijn daar vaak een oorzaak van. Typisch kan mysql
niet starten als de disk 100% vol is.
du
geeft disk usage. Dan kun je in de map waar je nu bent (met cd / ging je naar /) zien welke mappen de meeste space nemen. Zo kom je erachter welke map te vol is.
Het zoeken van bestanden doe je met ls. Varieer met de asterisk *
en -alrt
parameters voor het juiste beeld. Verwijder met rm. Gebruik de tab om bestandsnamen aan te vullen
Raid health
Je zag ‘m al staan: /dev/mdo
is een RAID device. Dat betekent dat het meerdere disks zijn die samenwerken om samen een beter betrouwbaar device te maken. Er zijn meerdere RAID configuraties. Daar gaan we nu niet op in. Het gaat om de health van je device. Met het volgende commando vraag je dat op:
cat /proc/mdstat
Bovenstaand raid device /dev/md0
heeft dus 2 devices, nummer 0 is /dev/sdb
en nummer 1 is /dev/sdc.
Als er iets mis is, zie je er maar 1 of nul.
Networking
Zijn je processen onder controle en is de disk in orde, dan kijken we naar het netwerk. je moet natuurlijk weten hoe de boel is aangelegd. Je hebt genoteerd (en we nemen five.voeten.com) als voorbeeld:
five.voeten.com | commando voor opvragen | |
ipv4 | 192.168.178.27 | ifconfig |
ipv6 | 2a10:3781:3db9:1:3ed9:2bff:fe70:7a1d | |
ns | 192.168.178.1 | resolvectl status |
gateway | 192.168.178.1 | ip route show default |
Status van je netwerk
Gebruik de volgende commando’s om de status van je server en website te achterhalen. Gebruik evt een andere naam om mee te testen.
ping voeten.com
nslookup voeten.com
tracepath voeten.com
Installeer eventueel eerst de packages met
apt install iputils-ping
apt install iputils-tracepath
Status van je services
Het moeilijkste gedeelte is natuurlijk als een van de services faalt terwijl het systeem eigenlijk in orde lijkt. Je moet een goed beeld hebben van welke services je server eigenlijk draait. Met het gebruik van cloudpanel ligt dat grotendeels vast. Je kunt sowieso beter via cloudpanel zelf de services herstellen, maar als dat niet gaat…
Per service gaan we nu te werk:
gewenste output | Start op met | |||
webserver | nginx | sudo systemctl status nginx | active | sudo systemctl start nginx |
database | mysql | sudo systemclt status mysql | active | sudo systemclt start mysql |
Als een van de php-frm of redis eruit liggen kun je beter rebooten. |
Inloggen via het scherm
Als er niks anders op zit, omdat je niet via het netwerk kunt, moet je wel achter dat ding kruipen.
Soms staat er een melding. Die kan al dagen oud zijn. Deze bijvoorbeeld. De cloud-init melding. Negeer die melding. Het gaat om login:
Druk op enter om op een nieuwe login: prompt in te loggen.
Rebooten en ander lomp doen
Uitzetten met de power-button is niet goed voor je RAID device. Schakel uit of reboot met het volgende:
reboot
halt
Check de logs
In een aantal mappen vind je logbestanden. Dat verschilt per systeem. Als je gebruik maakt van Cloudpanel zul je handiger per website binnen cloudpanel zelf kunnen zoeken. De logfiles staan dan op /home/vhostzoveel/logs
Met de volgende commando’s
cd /home
ls
cd websitezes
ls
ls -alrt
less bestandsnaam
zless bestandsnaam.gz