// server management

Cum configurezi logrotate pe un VPS Linux: ghid practic pentru gestionarea fișierelor de log

August 11, 2026 · by CLIQHOST

Cum configurezi logrotate pe un VPS Linux: ghid practic pentru gestionarea fișierelor de log

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.


Ce este logrotate și de ce ai nevoie de el

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)


Verificarea și instalarea logrotate

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/.


Structura fișierului de configurare

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.


Configurarea logrotate pentru Nginx

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


Configurarea logrotate pentru Apache

/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.


Configurarea logrotate pentru MySQL/MariaDB

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.


Configurație personalizată pentru aplicații proprii

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.


Testarea configurației

Î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.


Automatizarea cu cron

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.


Greșeli frecvente și cum le eviți

1. Uiți să trimiți semnal serviciului după rotire

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.

2. Compresi fișiere care sunt încă deschise

Folosește delaycompress împreună cu compress pentru a evita această problemă.

3. Permisiuni incorecte pe fișierele noi

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

4. Nu verifici configurația după modificări

Rulează logrotate --debug după orice modificare pentru a prinde erorile înainte ca cron-ul să ruleze automat.


Monitorizarea spațiului pe disc după configurare

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.


Concluzie

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.

SHARE
// ce spun clienții

Ce spun clienții noștri

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."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău