Praktische notities, technische verdieping en lessen uit infrastructuur en homelab-experimenten.
Zeven korte troubleshootverhalen
Een NFS-mount die alles liet hangen, een flag die geaccepteerd leek, een Helm-release die Flux stil blokkeerde, een volume vol door een verwijderd bestand, verbindingen die `ss` niet ziet, een mitigatie die dotnet-dump brak en een logschijf die volliep.
Externe mail kwam aan, interne niet: een mailroute na de Exchange-migratie
Na de overstap naar Exchange Online kwamen mails van applicatieservers wel bij externe ontvangers aan, maar niet bij collega's. De oorzaak zat niet in de mailserver, maar in een vergeten instelling bij de antispamdienst, en in een herstart van de oude Exchange.
php2shell: afschermen, patchen en weer open in één dag
Een kritiek PHP-lek zonder patch voor oudere versies. Hoe ik op het werk een hostingserver met tientallen WordPress-vhosts binnen een dag afschermde, patchte en weer openzette, en wat ik in mijn homelab deed.
Groen is niet gezond: een healthcheck die 200 zegt bij Degraded
Een externe monitor meldde flapping, onze eigen monitoring zag niets. De oorzaak: een afhankelijkheid die net boven een drempel van 300 ms reageerde, en een probe die alleen naar de statuscode keek.
Als upstream niet herbouwt: geharde images in plaats van uitzonderingen
Officiële images voor Redis en Gotenberg bevatten kritieke kwetsbaarheden waarvoor Debian al een fix had. Waarom ik ze zelf herbouw in plaats van ze uit te zonderen, en hoe je dat onderhoudbaar houdt.
Eén OOM-kill, en Patroni ging mee: systemd OOMPolicy
Een PostgreSQL-backend werd door de OOM-killer gestopt, en systemd stopte daarna de hele Patroni-service. Een root cause analysis over connection pools, page tables en een standaardinstelling die je niet verwacht.
Eén van vier webservers bleef haperen: de antivirus in de kernel
Twee weken lang haperde steeds dezelfde webserver uit een pool van vier. De oorzaak: kernelmodules van een antivirusagent die alleen op die ene server actief waren. Hoe ik dat bewees, welk spoor vals bleek, en waarom een pakketinventaris je kan misleiden.
LinuxRoot cause analysisSecurityNFSLoad balancingTroubleshooting
Mijn lokale LLM draaide tien uur op de CPU zonder dat iets het meldde. Twee oorzaken van dezelfde nachtelijke update: een gewiste device-cgroup en een driver die niet meer bij de geladen module paste.
Hoe cAdvisor mijn lokale LLM vier keer zo traag maakte
Decode zakte van 27 naar 6,6 tokens per seconde, terwijl prefill gelijk bleef. Twee oorzaken: een cAdvisor-vlag die de standaardlijst overschrijft, en een VM met net te weinig geheugen voor de page cache.
Inloggen via Zitadel faalde vanaf één netwerk, terwijl de route naar huis perfect was. De oorzaak: een DNS-filter die één topleveldomein van mij als verdacht markeerde, en een OIDC-issuer die juist op dat domein stond.
Een versleutelde laptopschijf herindelen zonder herinstallatie
Twee besturingssystemen, vier partities en een EFI-partitie op de verkeerde plek, omgezet naar één LUKS-versleutelde btrfs-pool over de hele schijf. Terwijl het systeem draaide, en met hibernation die bleef werken.