Het beheren van logbestanden is een essentieel onderdeel van het onderhouden van scripts en automatiseringen. Zonder goed beheer kunnen logbestanden snel groot worden, de schijfruimte opslokken en het overzicht in de automatisering belemmeren. In deze blog bespreek ik hoe je de logs bijhoudt, test en automatisch opschoont met logrotate, inclusief praktische tips en handelingen.
1. Het belang van logbestanden
Logbestanden geven inzicht in wat de scripts uitvoeren. Ze zijn nuttig om:
- Fouten op te sporen in scripts of automatiseringen
- Prestaties van de scripts te monitoren
- Historische gegevens bij te houden van uitgevoerde taken
Bijvoorbeeld, op mijn NAS houd ik logs bij van:
- API-scripts (weerdata, DMARC-monitoring)
- Video- en fotoprocessing scripts
- Site-snelheidstests
- Updates van de kaarttegels in de self-hosted versie van openstreetmap
Het is belangrijk dat deze logs gestructureerd worden opgeslagen en periodiek opgeschoond, zodat ze geen onnodige ruimte innemen.
2. Testen van logs
Voordat je automatische opschoning instelt, is het verstandig om de logs en de scripts te testen:
- Controleer of de logs correct worden geschreven:
ls -lh /volume1/cron/logs/Hier zijn mijn logbestanden, in mijn geval, zoals
log_thuisbatterij.log,log_maand_api.log, ofsitespeed.log. - Controleer de inhoud van een log:
tail -n 20 /volume1/cron/logs/log_thuisbatterij.logHiermee lees ik de meest recente logregels.
- Test een script handmatig en kijk of de logs correct worden bijgewerkt.
Door dit regelmatig te doen, weet ik zeker dat de logs betrouwbaar zijn voordat ik de automatische rotatie instelt.
3. Het gebruik van logrotate
Logrotate is een krachtig hulpmiddel om logbestanden automatisch op te schonen en te roteren. Belangrijk is dat ik het correct configureer en begrijp hoe het werkt:
- Configuratiebestanden staan in
/etc/logrotate.d/ - DSM leest standaard
/etc/logrotate.conf, dat automatisch alle bestanden in/etc/logrotate.d/verwerkt - Hierdoor hoef ik dus geen aparte taak in de DSM Taakplanner aan te maken
Mijn configuratiebestand voor scriptlogs ziet er bijvoorbeeld zo uit:
/volume1/cron/logs/*.log
/volume1/cron/logs/*.txt
{
weekly
rotate 12
missingok
notifempty
compress
delaycompress
dateext
dateformat -%Y%m%d
copytruncate
}
Uitleg van de belangrijkste opties:
weekly: rotatie gebeurt wekelijksrotate 12: maximaal 12 oude logs bewarencompressendelaycompress: oude logs worden gecomprimeerddateextendateformat: voegen de datum toe aan gearchiveerde logscopytruncate: zorgt dat het actieve logbestand niet wordt gesloten, maar de inhoud wordt gekopieerd en daarna leeggemaakt
4. Status van de rotatie controleren
Logrotate houdt bij wanneer logs voor het laatst zijn geroteerd in het bestand:
/var/log/logrotate.status
Controleer bijvoorbeeld:
grep cron-logs /var/log/logrotate.status
- Bij debug-tests (
logrotate -d) wordt geen state geschreven - Bij een geforceerde run (
logrotate -f) of de reguliere DSM-taak wordt de status (wel) bijgewerkt
Zo weet ik altijd wanneer logs voor het laatst zijn geroteerd en voorkom ik dubbele rotaties.
5. DSM Specifiek: Automatische rotatie zonder extra taak
Synology DSM voert logrotate standaard uit als root, waardoor:
- de configuratie in
/etc/logrotate.d/cron-logsautomatisch wordt meegenomen - ik geen aparte taak hoeft aan te maken in de DSM Taakplanner
- rotatie veilig en consistent gebeurt, met correcte permissies en statefile-beheer
6. Samengevat
- Locatie logs:
/volume1/cron/logs/ - Configuratie logrotate:
/etc/logrotate.d/cron-logs - Status van rotatie:
/var/log/logrotate.status - Debug-test:
logrotate -d /etc/logrotate.d/cron-logs(geen permanente wijziging) - Geforceerde rotatie:
logrotate -f /etc/logrotate.conf - DSM taakplanner: geen extra taak nodig, DSM draait standaard logrotate

Conclusie
Door het correct bijhouden van logbestanden, het testen van scripts en het gebruik van logrotate kan ik:
- Logs overzichtelijk en veilig beheren
- Schijfruimte besparen door oude logs te comprimeren
- Problemen sneller opsporen dankzij gestructureerde logregistratie
Door de configuratie in /etc/logrotate.d/ te plaatsen, integreer ik mijn automatisering netjes met die van DSM en hoef ik geen extra taken te beheren. Zo blijft mijn NAS schoon en overzichtelijk, en heb ik altijd een betrouwbaar naslagwerk voor uw logbeheer.
