Liigu peamise sisu juurde

Kuidas seadistada logrotate automaatseks logide arhiveerimiseks ja serveriruumi säästmiseks

· 2 min lugemine
Customer Care Engineer

Logihaldus on iga serveriadministraatori töö oluline osa. Kui logisid ei roteerita, võivad need kiiresti kogu saadaoleva kettaruumi täita, aeglustada serverit ja põhjustada ettearvamatuid vigu. Selles artiklis selgitame, kuidas konfigureerida ja kasutada logrotate'i automaatseks logide puhastamiseks ja roteerimiseks serveris.


Mis on logrotate ja miks seda on oluline kasutada?

Logrotate on tööriist, mis on loodud automaatseks logihaldamiseks. See aitab:

  • Vanade logide kustutamine – kustutab või arhiveerib vanad logifailid automaatselt.
  • Kettaruumi säästmine – tihendab ja eemaldab mittevajalikud logid.

Logide roteerimine hoiab ära logide kuhjumise ja kettaruumi ületäitumise, mis võib põhjustada krahhe ja andmete kadumist. Logrotate arhiveerib automaatselt vanad logid ja vabastab ruumi uute andmete jaoks.


Kuidas logrotate töötab?

Kui logrotate on aktiivne, täidab see automaatselt järgmisi samme:

  1. Logide roteerimine – vanad logid nimetatakse ümber ja salvestatakse, samal ajal kui nende asemele luuakse uued failid.
  2. Tihendamine – vanu logifaile saab ruumi säästmiseks tihendada .gz-vormingusse.
  3. Kustutamine – aegunud logid saab kustutada, kui neid enam ei vajata.

Näide: Logifail nimega access.log saab muuta failiks access.log.1, seejärel tihendada failiks access.log.1.gz ja lõpuks kustutada pärast määratud säilitamisperioodi.

---

Kuidas logrotate'i konfigureerida

1. Logrotate'i installimine

Enamikes Linuxi süsteemides on logrotate eelinstallitud. Et kontrollida, kas logrotate on installitud, käivitage käsk:

sudo logrotate --version

Kui logrotate pole installitud, saab selle installida paketihalduri kaudu.

  • Debian/Ubuntu puhul:
sudo apt update && sudo apt install logrotate
  • CentOS/RockyLinux/AlmaLinux puhul:
sudo yum install logrotate

2. Logrotate'i konfigureerimine

Logrotate'i konfiguratsioon salvestatakse tavaliselt faili /etc/logrotate.conf. See fail sisaldab üldisi parameetreid kõigile serveri logidele. Üksikute logide roteerimise konfigureerimiseks saate luua eraldi konfiguratsioonifailid erinevate teenuste jaoks kataloogis /etc/logrotate.d/.

Standardse Nginxi konfiguratsiooni näide:

/var/log/nginx/*.log {
daily          # Logisid roteeritakse iga päev
missingok      # Ära kuvata viga, kui logi puudub
rotate 7       # Säilita 7 arhiveeritud faili
compress       # Tihenda vanad logid
delaycompress   # Viivita tihendamist järgmise roteerimiseni
notifempty     # Ära roteeri tühjasid faile
create 0640 www-data adm  # Loo uued logid kindlate õigustega
}

3. Peamised konfiguratsiooniparameetrid

  • päevane/nädalane/kuuline – määrab, kui tihti logifaili roteeritakse (päevaselt, nädalaselt või kuus).
  • rotate [N] – määrab säilitatavate arhiveeritud logide arvu.
  • compress – võimaldab logifailide tihendamist (tavaliselt .gz-vormingusse).
  • missingok – hoiab ära vead, kui logifail puudub.
  • notifempty – jätab tühjade failide roteerimise vahele.
  • create – loob uued logid määratud õigustega.

4. Logrotate'i käivitamine

Logrotate töötab tavaliselt automaatselt croni kaudu. Kuid saate seda käsitsi käivitada, kui peate kontrollima konfiguratsiooni või tegema kohe roteerimise:

sudo logrotate -f /etc/logrotate.conf

5. Logrotate'i toimimise kontrollimine

Veendumaks, et logrotate töötab õigesti, saate kontrollida selle teenuse logi uusimaid kirjeid:

sudo journalctl -u logrotate -n 10