August 11, 2026 · by CLIQHOST
Fișierele de log sunt indispensabile pentru orice administrator de server: îți spun ce se întâmplă cu serviciile tale, unde apar erori și cine încearcă să acceseze sistemul. Problema? Dacă le lași nesupravegheate, aceste fișiere pot crește până ocupă tot spațiul de pe disc — un scenariu clasic care poate doborî un server în producție.
Soluția elegantă se numește logrotate — un utilitar Linux care automatizează rotirea, comprimarea și ștergerea fișierelor de log vechi. În acest ghid vei afla cum să-l configurezi corect pe VPS-ul tău Linux, indiferent că rulezi Nginx, Apache, MySQL sau aplicații proprii.
Logrotate este un instrument standard pe distribuțiile Linux (Ubuntu, Debian, CentOS, AlmaLinux), preinstalat în majoritatea cazurilor. Funcționează pe baza unui fișier de configurare central și a unor fișiere de configurare specifice fiecărui serviciu.
Fără logrotate, /var/log/nginx/access.log poate ajunge la zeci de gigabytes în câteva luni pe un server cu trafic moderat. Pe un VPS SSD cu spațiu limitat, asta înseamnă downtime.
Cu logrotate, definești reguli simple:
- rotește log-urile zilnic/săptămânal/lunar
- păstrează ultimele N copii
- comprimă fișierele vechi
- trimite semnale serviciilor după rotire (ex. reload la Nginx)
Pe majoritatea serverelor logrotate este deja instalat. Verifică:
logrotate --version
Dacă nu este instalat:
# Ubuntu/Debian
sudo apt update && sudo apt install logrotate -y
# CentOS/AlmaLinux
sudo yum install logrotate -y
Fișierul principal de configurare se află la /etc/logrotate.conf, iar configurațiile per-serviciu în directorul /etc/logrotate.d/.
Deschide fișierul principal:
sudo nano /etc/logrotate.conf
Conținut tipic:
# Rotire săptămânală implicită
weekly
# Păstrează 4 săptămâni de log-uri
rotate 4
# Creează fișiere de log noi după rotire
create
# Comprimă log-urile vechi
compress
# Include configurații specifice serviciilor
include /etc/logrotate.d
Aceste valori sunt globale — se aplică tuturor serviciilor care nu au opțiuni proprii.
Fișierul /etc/logrotate.d/nginx există de obicei după instalarea Nginx. Iată cum ar trebui să arate o configurație optimă:
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
Explicații opțiuni:
- daily — rotire zilnică
- rotate 14 — păstrează 14 zile de log-uri
- compress — comprimă fișierele vechi cu gzip
- delaycompress — amână compresia cu o rotire (util pentru servicii care scriu asincron)
- notifempty — nu rotește dacă fișierul e gol
- missingok — nu afișează eroare dacă fișierul lipsește
- postrotate — comandă executată după rotire; aici trimitem USR1 la Nginx pentru a redeschide fișierele de log
/var/log/apache2/*.log {
weekly
missingok
rotate 8
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
if invoke-rc.d apache2 status > /dev/null 2>&1; then
invoke-rc.d apache2 reload > /dev/null 2>&1
fi
endscript
}
Aceeași logică — după rotire, Apache primește semnalul de reload pentru a scrie în noul fișier de log.
Log-urile MySQL pot crește rapid pe servere cu multe interogări. Configurație recomandată:
/var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log /var/log/mysql/error.log {
daily
rotate 7
missingok
compress
delaycompress
notifempty
sharedscripts
postrotate
test -x /usr/bin/mysqladmin || exit 0
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
if [ -f `$MYADMIN variables 2>/dev/null | awk '/pid_file/ { print $4 }'` ]; then
$MYADMIN flush-logs
fi
endscript
}
Pe un server dedicat managed, această configurație este de obicei deja optimizată de echipa de administrare. Dacă rulezi un server unmanaged, responabilitatea configurării îți aparține.
Dacă ai o aplicație care scrie propriile log-uri (de exemplu /var/log/myapp/app.log), creează un fișier nou:
sudo nano /etc/logrotate.d/myapp
/var/log/myapp/*.log {
weekly
rotate 12
compress
delaycompress
missingok
notifempty
create 0644 appuser appgroup
dateext
dateformat -%Y-%m-%d
}
Opțiunea dateext și dateformat adaugă data la numele fișierului rotit, în loc de sufixul numeric standard (.1, .2 etc.) — mult mai ușor de identificat.
Înainte de a lăsa logrotate să ruleze automat, testează configurația:
# Simulare (dry-run) — nu modifică nimic
sudo logrotate --debug /etc/logrotate.conf
# Forțează rotirea pentru un fișier specific
sudo logrotate --force /etc/logrotate.d/nginx
Verifică log-ul de stare al logrotate:
cat /var/lib/logrotate/status
Aici vei vedea data ultimei rotiri pentru fiecare fișier de log monitorizat.
Logrotate rulează de obicei automat printr-un job cron zilnic. Verifică:
cat /etc/cron.daily/logrotate
Dacă vrei să programezi rotirea la o oră specifică (nu în intervalul aleatoriu al cron.daily), adaugă un job explicit:
sudo crontab -e
# Rotire log-uri la 02:00 în fiecare noapte
0 2 * * * /usr/sbin/logrotate /etc/logrotate.conf
Acest lucru este util mai ales pe servere dedicate cu trafic intens, unde vrei să controlezi precis momentul în care se face rotirea.
Dacă Nginx sau Apache continuă să scrie în fișierul vechi (redenumit), log-urile noi nu ajung în fișierul curent. Mereu include blocul postrotate.
Folosește delaycompress împreună cu compress pentru a evita această problemă.
Opțiunea create trebuie să specifice permisiunile și utilizatorul corect, altfel serviciul nu va putea scrie în noul fișier:
create 0640 www-data adm
Rulează logrotate --debug după orice modificare pentru a prinde erorile înainte ca cron-ul să ruleze automat.
După ce configurezi logrotate, verifică periodic spațiul ocupat de log-uri:
du -sh /var/log/*
Sau sortează după dimensiune:
du -sh /var/log/* | sort -rh | head -20
Dacă folosești serviciile noastre de administrare server, echipa CLIQHOST poate configura logrotate, monitoriza spațiul pe disc și alerta proactiv în caz de probleme.
Logrotate este un utilitar simplu dar esențial pentru orice server Linux în producție. O configurație corectă îți garantează că fișierele de log nu îți vor consuma tot spațiul de stocare și că informațiile importante sunt păstrate organizat pentru perioada de care ai nevoie.
Pe scurt:
- Verifică și personalizează fișierele din /etc/logrotate.d/
- Testează cu --debug înainte de a pune în producție
- Asigură-te că serviciile primesc semnalul de reload după rotire
- Monitorizează periodic /var/lib/logrotate/status
Dacă ai nevoie de un mediu Linux stabil și performant pe care să aplici aceste configurații, explorează oferta de VPS NVMe de la CLIQHOST — cu SSD-uri rapide, IPv4 dedicat și acces root complet. Ai întrebări? Contactează echipa noastră — suntem aici să te ajutăm.
Recenzii reale de la clienți care au ales CLIQHOST pentru performanță, fiabilitate și suport tehnic.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."