Ana içeriğe geç

Otomatik günlük arşivlemesi ve sunucu alanından tasarruf etmek için logrotate nasıl kurulur

· 2 dakikalık okuma
Customer Care Engineer

Günlük yönetimi, herhangi bir sunucu yöneticisinin işinin çok önemli bir parçasıdır. Döndürülmeyen günlükler, mevcut disk alanının tamamını hızla kaplayabilir, sunucuyu yavaşlatabilir ve öngörülemeyen hatalara neden olabilir. Bu makalede, logrotate'ı bir sunucuda otomatik günlük temizliği ve döndürmesi için nasıl yapılandıracağınızı ve kullanacağınızı açıklayacağız.


Logrotate nedir ve neden kullanmak önemlidir?

Logrotate, otomatik günlük yönetimi için tasarlanmış bir araçtır. Aşağıdakilere yardımcı olur:

  • Eski günlükleri temizle — eski günlük dosyalarını otomatik olarak siler veya arşivler.
  • Disk alanından tasarruf et — gereksiz günlükleri sıkıştırır ve kaldırır.

Günlük döndürme, günlüklerin birikmesini ve disk taşmasına neden olmasını önler, bu da çökmelere ve veri kaybına yol açabilir. Logrotate eski günlükleri otomatik olarak arşivler ve yeni veri için yer açar.


Logrotate nasıl çalışır?

Logrotate aktif olduğunda, aşağıdaki adımları otomatik olarak gerçekleştirir:

  1. Günlük döndürme — eski günlükler yeniden adlandırılır ve saklanır, yerlerine yeni dosyalar oluşturulur.
  2. Sıkıştırma — alan tasarrufu için eski günlükler .gz formatında sıkıştırılabilir.
  3. Silme — artık ihtiyaç duyulmayan eski günlükler silinebilir.

Örnek: access.log adlı bir günlük dosyası access.log.1 haline getirilebilir, ardından access.log.1.gz olarak sıkıştırılabilir ve sonunda belirtilen saklama süresi sonunda silinebilir.

---

Logrotate nasıl yapılandırılır

1. Logrotate kurma

Çoğu Linux sisteminde logrotate önceden yüklenmiş olarak gelir. Logrotate'ın kurulu olup olmadığını kontrol etmek için şu komutu çalıştırın:

sudo logrotate --version

 Eğer logrotate kurulu değilse, bir paket yöneticisi aracılığıyla kurulabilir.

  • Debian/Ubuntu için:
sudo apt update && sudo apt install logrotate
  • CentOS/RockyLinux/AlmaLinux için:
sudo yum install logrotate

2. Logrotate yapılandırma

Logrotate yapılandırması genellikle /etc/logrotate.conf dosyasında saklanır. Bu dosya, sunucudaki tüm günlükler için genel parametreleri içerir. Tek tek günlüklerin döndürmesini yapılandırmak için, /etc/logrotate.d/ dizininde farklı hizmetler için ayrı yapılandırma dosyaları oluşturabilirsiniz.

Standart bir Nginx yapılandırması örneği:

/var/log/nginx/*.log {
daily          # Günlükler günlük olarak döndürülür
missingok      # Günlük eksikse hata gösterme
rotate 7       # 7 arşivlenmiş dosya sakla
compress       # Eski günlükleri sıkıştır
delaycompress  # Bir sonraki döndürmeye kadar sıkıştırmayı geciktir
notifempty     # Boş dosyaları döndürme
create 0640 www-data adm  # Belirtilen izinlerle yeni günlükler oluştur
}

3. Anahtar yapılandırma parametreleri

  • daily/weekly/monthly — günlük dosyasının ne sıklıkla döndürüleceğini (günlük, haftalık veya aylık) tanımlar.
  • rotate [N] — saklanan arşivlenmiş günlük sayısını belirtir.
  • compress — günlük dosyası sıkıştırmasını etkinleştirir (genellikle .gz'ye).
  • missingok — günlük dosyası eksikse hataları önler.
  • notifempty — boş dosyalar için döndürmeyi atlar.
  • create — belirtilen izinlerle yeni günlükler oluşturur.

4. Logrotate çalıştırma

Logrotate genellikle cron aracılığıyla otomatik olarak çalışır. Ancak, yapılandırmayı kontrol etmeniz veya hemen bir döndürme gerçekleştirmeniz gerekirse bunu manuel olarak çalıştırabilirsiniz:

sudo logrotate -f /etc/logrotate.conf

5. Logrotate'ın çalışmasını doğrulama

Logrotate'ın doğru çalıştığından emin olmak için hizmet günlüğündeki en son girişleri kontrol edebilirsiniz:

sudo journalctl -u logrotate -n 10