Thread Starter
#1
Linux'ta uygulama günlüklerini logrotate ile yönetme
Linux sistemleri, günlükleri (log dosyaları) sayesinde sistem ve uygulama durumu hakkında kritik bilgiler sağlar. Ancak, bu günlüklerin sürekli büyümesi disk alanı sorunlarına yol açabilir. Bu noktada, logrotate aracı devreye girer ve günlükleri otomatik olarak döndürerek, arşivleyerek ve silebilir. Logrotate'un temel mantığı, belirli kurallar ve zamanlamalar çerçevesinde günlük dosyalarını yönetmek ve sistem performansını korumaktır.
İlk olarak, logrotate'un yapılandırma dosyaları genellikle /etc/logrotate.conf ve /etc/logrotate.d/ dizininde bulunur. Ana yapılandırma dosyası, genel ayarları belirlerken, /etc/logrotate.d/ dizinindeki dosyalar ise belirli uygulama veya servisler için özelleşmiş kuralları içerir. Örneğin, bir uygulama günlükleri için özel bir yapılandırma eklemek istiyorsanız, bu dizine yeni bir dosya oluşturmanız gerekir.
Örneğin, bir uygulamanın günlüklerini yönetmek için şu temel kuralları kullanabilirsiniz:
Aşağıdaki örnek, /var/log/myapp.log dosyasını haftalık döndürür ve 4 eski dosyayı saklar, ardından uygulamayı yeniden başlatır:
Bu yapılandırmayla, günlükler haftalık olarak döndürülür, dört eski log dosyası saklanır ve yeni log dosyası oluşturulur. Ayrıca, loglar sıkıştırılır ve günlük boşsa döndürme yapılmaz. Günlük döndürme sonrası, uygulama yeniden başlatılır veya başka bir komut çalıştırılır.
Son olarak, logrotate’un otomatik çalışmasını sağlamak için genellikle günlük cron görevi kullanılır. Bu sayede, belirli aralıklarla logrotate devreye girerek günlükleri otomatik yönetir.
Logrotate, Linux sistemlerde günlük yönetimini otomatikleştirerek disk alanını koruma ve logların düzenli tutulmasını sağlar. Bu mekanizma, sistem güvenilirliği ve bakım açısından kritik öneme sahiptir. Logrotate yapılandırmalarını dikkatle düzenlemek ve uygulamaların ihtiyaçlarına göre uyarlamak, sistem yöneticilerinin temel görevlerinden biridir.
Linux sistemleri, günlükleri (log dosyaları) sayesinde sistem ve uygulama durumu hakkında kritik bilgiler sağlar. Ancak, bu günlüklerin sürekli büyümesi disk alanı sorunlarına yol açabilir. Bu noktada, logrotate aracı devreye girer ve günlükleri otomatik olarak döndürerek, arşivleyerek ve silebilir. Logrotate'un temel mantığı, belirli kurallar ve zamanlamalar çerçevesinde günlük dosyalarını yönetmek ve sistem performansını korumaktır.
İlk olarak, logrotate'un yapılandırma dosyaları genellikle /etc/logrotate.conf ve /etc/logrotate.d/ dizininde bulunur. Ana yapılandırma dosyası, genel ayarları belirlerken, /etc/logrotate.d/ dizinindeki dosyalar ise belirli uygulama veya servisler için özelleşmiş kuralları içerir. Örneğin, bir uygulama günlükleri için özel bir yapılandırma eklemek istiyorsanız, bu dizine yeni bir dosya oluşturmanız gerekir.
Örneğin, bir uygulamanın günlüklerini yönetmek için şu temel kuralları kullanabilirsiniz:
- Günlük dosyasının yolu ve adı
- Döndürme sıklığı (günlük, haftalık, aylık)
- Döndürme sonrası yapılacak işlemler (sıkıştırma, silme, yeniden başlatma)
Aşağıdaki örnek, /var/log/myapp.log dosyasını haftalık döndürür ve 4 eski dosyayı saklar, ardından uygulamayı yeniden başlatır:
CODE
123456789101112
/var/log/myapp.log {
weekly
rotate 4
compress
missingok
notifempty
create 640 root adm
postrotate
systemctl restart myapp
endscript
}
Bu yapılandırmayla, günlükler haftalık olarak döndürülür, dört eski log dosyası saklanır ve yeni log dosyası oluşturulur. Ayrıca, loglar sıkıştırılır ve günlük boşsa döndürme yapılmaz. Günlük döndürme sonrası, uygulama yeniden başlatılır veya başka bir komut çalıştırılır.
Son olarak, logrotate’un otomatik çalışmasını sağlamak için genellikle günlük cron görevi kullanılır. Bu sayede, belirli aralıklarla logrotate devreye girerek günlükleri otomatik yönetir.
Logrotate, Linux sistemlerde günlük yönetimini otomatikleştirerek disk alanını koruma ve logların düzenli tutulmasını sağlar. Bu mekanizma, sistem güvenilirliği ve bakım açısından kritik öneme sahiptir. Logrotate yapılandırmalarını dikkatle düzenlemek ve uygulamaların ihtiyaçlarına göre uyarlamak, sistem yöneticilerinin temel görevlerinden biridir.
