Skip to main content

Kā iestatīt logrotate automātiskai žurnālu arhivēšanai un servera vietas taupīšanai

· 2 min read
Customer Care Engineer

Žurnālu pārvaldība ir ļoti svarīga jebkura servera administratora darba sastāvdaļa. Žurnāli, kas netiek rotēti, var ātri aizņemt visu pieejamo diska vietu, palēnināt servera darbību un radīt neparedzētas kļūdas. Šajā rakstā mēs izskaidrosim, kā konfigurēt un izmantot logrotate automātiskai žurnālu tīrīšanai un rotācijai serverī.


Kas ir logrotate un kāpēc ir svarīgi to lietot?

Logrotate ir rīks, kas paredzēts automātiskai žurnālu pārvaldībai. Tas palīdz:

  • Notīrīt vecos žurnālus — automātiski dzēš vai arhivē vecus žurnālu failus.
  • Ietaupīt diska vietu — saspiež un noņem nevajadzīgos žurnālus.

Žurnālu rotācija novērš žurnālu uzkrāšanos un diska pārplūšanu, kas varētu radīt krasas kļūmes un datu zudumu. Logrotate automātiski arhivē vecos žurnālus un atbrīvo vietu jaunai informācijai.


Kā darbojas logrotate?

Kad logrotate ir aktīvs, tas automātiski veic šādas darbības:

  1. Žurnālu rotācija — vecie žurnāli tiek pārdēvēti un saglabāti, savukārt to vietā tiek izveidoti jauni faili.
  2. Saspiešana — vecos žurnālus var saspiest .gz formātā, lai ietaupītu vietu.
  3. Dzēšana — novecojušus žurnālus var dzēst, ja tie vairs nav nepieciešami.

Piemērs: žurnāla fails access.log var tikt pārdēvēts par access.log.1, pēc tam saspiests par access.log.1.gz un galu galā dzēsts pēc noteikta saglabāšanas perioda.

---

Kā konfigurēt logrotate

1. Logrotate instalēšana

Lielākajā daļā Linux sistēmu logrotate ir iepriekš instalēts. Lai pārbaudītu, vai logrotate ir instalēts, palaidiet komandu:

sudo logrotate --version

 Ja logrotate nav instalēts, to var instalēt, izmantojot pakešu pārvaldnieku.

  • Debian/Ubuntu sistēmai:
sudo apt update && sudo apt install logrotate
  • CentOS/RockyLinux/AlmaLinux sistēmai:
sudo yum install logrotate

2. Logrotate konfigurēšana

Logrotate konfigurācija parasti tiek glabāta /etc/logrotate.conf. Šis fails satur vispārīgus parametrus visiem žurnāliem serverī. Lai konfigurētu atsevišķu žurnālu rotāciju, varat izveidot atsevišķus konfigurācijas failus dažādiem pakalpojumiem direktorijā /etc/logrotate.d/.

Standarta Nginx konfigurācijas piemērs:

/var/log/nginx/*.log {
daily           # Žurnāli tiek apgriezti katru dienu
missingok       # Netiek radīta kļūda, ja žurnāls trūkst
rotate 7       # Saglabāt 7 arhivētos failus
compress       # Saspiest vecos žurnālus
delaycompress   # Atdelat saspiešanu līdz nākamajai apgriešanai
notifempty     # Neapgriezt tukšus failus
create 0640 www-data adm   # Izveidot jaunus žurnālus ar specifiskām atļaujām
}

3. Galvenie konfigurācijas parametri

  • daily/weekly/monthly — nosaka, cik bieži tiks rotēts žurnāla fails (katru dienu, nedēļu vai mēnesi).
  • rotate [N] — norāda saglabājamo arhivēto žurnālu skaitu.
  • compress — iespējo žurnālu failu saspiešanu (parasti .gz formātā).
  • missingok — novērš kļūdas, ja žurnāla fails trūkst.
  • notifempty — izlaiž rotāciju tukšiem failiem.
  • create — izveido jaunus žurnālus ar norādītām atļaujām.

4. Logrotate palaišana

Logrotate parasti darbojas automātiski, izmantojot cron. Tomēr varat to palaist manuāli, ja jums ir jāpārbauda konfigurācija vai nekavējoties jāveic rotācija:

sudo logrotate -f /etc/logrotate.conf

5. Logrotate darbības pārbaude

Lai pārliecinātos, ka logrotate darbojas pareizi, varat pārbaudīt jaunākos ierakstus tā pakalpojumu žurnālā:

sudo journalctl -u logrotate -n 10