Nginx ve Günlük Yönetimi
Nginx, yüksek performanslı bir web sunucusu ve ters proxy sunucusu olarak bilinir. İnternet trafiğinin yönetimi ve performansı açısından önemli bir rol oynar. Nginx, her isteği kaydeden iki ana günlük dosyası oluşturur: `access.log` ve `error.log`. Bu günlük dosyaları, sunucunun performansını değerlendirmek ve hataları tespit etmek için kritik öneme sahiptir. Ancak, günlük dosyaları zamanla büyüyebilir ve disk alanını doldurabilir. Bu durumu önlemek için günlük rotasyonu uygulamak önemlidir.
Logrotate Aracı
`logrotate`, sistemdeki günlük dosyalarının yönetimi için kullanılan bir araçtır. Bu araç, günlük dosyalarını belirli periyotlarla döndürerek eski günlükleri arşivleyebilir, silebilir veya yeni günlük dosyaları oluşturabilir. Günlük rotasyonu işlemleri, sistem yöneticilerine günlük dosyalarının boyutunu kontrol etme ve sistemin genel performansını artırma imkanı sağlar. `logrotate` kullanılarak Nginx günlüklerinin otomatik rotasyonu ayarlanabilir.
Logrotate Yapılandırması
`logrotate` yapılandırma dosyaları genellikle `/etc/logrotate.conf` dosyasından ve `/etc/logrotate.d/` dizinindeki özel dosyalardan oluşur. Nginx için günlük rotasyonunu ayarlamak amacıyla, `/etc/logrotate.d/` dizinine özel bir yapılandırma dosyası oluşturmak gerekir. Bu dosya, Nginx günlük dosyalarının nasıl döndürüleceğini tanımlar.
Yapılandırma Dosyasının Oluşturulması
Nginx için bir `logrotate` yapılandırma dosyası oluşturmak için, aşağıdaki adımlar izlenebilir:
1. `/etc/logrotate.d/` dizinine geçilir.
2. `nginx` adında bir yapılandırma dosyası oluşturulur:
“`bash
sudo nano /etc/logrotate.d/nginx
“`
3. Aşağıdaki örnek yapılandırma içerikleri eklenir:
“`
/var/log/nginx/.log {
daily Günlük rotasyon
missingok Eğer dosya yoksa hata verme
rotate 14 14 tarihli günlük saklanır
compress Rotasyondan sonra günlük dosyalarını sıkıştır
delaycompress Son döngüdaki dosyayı sıkıştırma
notifempty Eğer günlük dosyası boşsa döndürme
create 0640 www-data adm Yeni günlük dosyasını bu izinlerle oluştur
sharedscripts Komut dosyası paylaşımını etkinleştir
postrotate Rotasyondan sonra çalıştırılacak komutlar
/usr/sbin/nginx -s reopen Nginx’i yeniden aç
endscript
}
“`
Yapılandırmanın Açıklaması
Yapılandırma dosyasında belirtilen seçenekler şunlardır:
– `daily`: Günlük rotasyonun her gün yapılacağını belirtir.
– `missingok`: Günlük dosyası mevcut değilse hata üretmez.
– `rotate 14`: En fazla 14 gün boyunca günlük dosyalarının saklanacağını belirtir.
– `compress`: Rotasyondan sonra eski günlük dosyalarının sıkıştırılacağını belirtir.
– `delaycompress`: Sadece bir önceki döngüde oluşturulan günlük dosyasını sıkıştırır; bu, eski dosyanın daha kolay erişilir olmasını sağlar.
– `notifempty`: Eğer günlük dosyası boşsa döndürme işlemi yapılmayacak şekilde ayarlanmıştır.
– `create`: Yeni günlük dosyasının izinlerini ayarlamak için kullanılır.
– `sharedscripts`: Rotasyonun birden fazla günlük dosyası varsa, her zaman aynı komut dosyalarının paylaşılmasını sağlar.
– `postrotate`: Günlük dosyası döndürüldükten sonra çalıştırılacak komutları belirtir. Burada, Nginx’in yeniden başlatılarak yeni günlük dosyalarının kullanıma alınması sağlanır.
Günlük Rotasyonunun Test Edilmesi
Yapılandırma ayarlarının doğruluğunu kontrol etmek için `logrotate` komutu ile test yapılabilir:
“`bash
sudo logrotate -d /etc/logrotate.conf
“`
Bu komut, günlük rotasyonu işlemlerini gerçekleştirmeden nelerin döneceğini simüle eder. Eğer öğretici bir bakış açısından test etmek istenirse, `logrotate`’ı gerçek rotasyon yapacak şekilde başlatmak için şu komut kullanılabilir:
“`bash
sudo logrotate -f /etc/logrotate.conf
“`
Sonuç
Nginx günlük rotasyonu için `logrotate` aracı, sistem yöneticilerine günlük dosyalarının etkili bir şekilde yönetilmesi konusunda büyük kolaylık sağlar. Yapılandırma dosyasının doğru şekilde ayarlanması, sistemdeki disk alanının verimli kullanımı ve günlük dosyalarının düzenli bir şekilde tutulması açısından kritik öneme sahiptir. `logrotate` kullanarak, Nginx günlük dosyalarının boyutunu kontrol altında tutmak ve sistem performansını optimize etmek mümkündür.