Sunucu günlükleri (logs), sistem performansını izlemek, hataları teşhis etmek ve güvenlik olaylarını takip etmek için vazgeçilmez verilerdir.
Sunucu günlükleri (logs), sistem performansını izlemek, hataları teşhis etmek ve güvenlik olaylarını takip etmek için vazgeçilmez verilerdir. Bu günlükler, web sunucuları, veritabanları ve uygulama logları gibi çeşitli kaynaklardan oluşur. Yerel depolama alanının dolması, donanım arızaları veya siber saldırılar nedeniyle bu verilerin kaybı, işletmeniz için ciddi riskler taşır. Uzak bir sunucuya yedekleme yaparak, verilerinizi coğrafi olarak dağıtır ve felaket kurtarma (disaster recovery) stratejilerinizi güçlendirirsiniz. Bu makalede, Linux tabanlı sunucularda log yedeklemesini adım adım ele alacağız; rsync ve cron gibi araçlarla pratik bir çözüm sunacağız.
Sunucu loglarını uzak bir merkeze yedeklemek, veri bütünlüğünü korumanın en etkili yollarından biridir. Yerel sunucuda log dosyaları hızla büyür; örneğin, Apache veya Nginx gibi web sunucuları yoğun trafikte günde gigabaytlarca veri üretebilir. Bu durum, disk alanını tüketir ve sistem yavaşlamasına yol açar. Uzak yedekleme ile logları düzenli olarak aktararak yerel alanı temiz tutar, aynı zamanda yasal uyumluluk gereksinimlerini (örneğin GDPR veya KVKK) karşılayabilirsiniz. Ayrıca, merkezi bir log yönetim sistemi kurarak birden fazla sunucudan gelen verileri analiz edebilirsiniz.
Pratik bir örnekte, bir e-ticaret sitesinin erişim logları, olası DDoS saldırılarını tespit etmek için kritik öneme sahiptir. Uzak yedekleme yapılmadığında, yerel arıza durumunda bu veriler kaybolur ve soruşturma süreçleri aksar. Yedekleme stratejisi, yalnızca kopyalama değil, sıkıştırma ve şifreleme gibi katmanlarla zenginleştirilmelidir. Bu yaklaşım, işletmelerin kesintisiz hizmet sunmasını sağlar ve BT ekiplerine proaktif yönetim imkanı verir. Sonuç olarak, uzak yedekleme, riskleri minimize eder ve operasyonel verimliliği artırır.
İlk adım, güvenli dosya transferi için parola tabanlı olmayan SSH erişimi sağlamaktır. Yerel sunucuda ssh-keygen -t rsa -b 4096 komutuyla anahtar çifti oluşturun. Bu, ~/.ssh/id_rsa (özel anahtar) ve ~/.ssh/id_rsa.pub (genel anahtar) dosyalarını üretir. Ardından, ssh-copy-id user@uzak-sunucu-ip ile genel anahtarı uzak sunucuya kopyalayın. Bu işlem, rsync gibi araçların şifresiz çalışmasını sağlar. Test için ssh user@uzak-sunucu-ip komutunu çalıştırın; başarılı bağlantı, yedekleme altyapısının temelini atar. Güvenlik için, uzak sunucuda root erişimini kısıtlayın ve firewall kurallarını (örneğin UFW ile 22 portu yalnızca belirli IP’lere açın) uygulayın. Bu konfigürasyon, brute-force saldırılarına karşı koruma sağlar ve yedekleme sürecini hızlandırır.
Uzak sunucuda, loglar için özel bir dizin oluşturun: mkdir -p /backup/logs/local-sunucu-adi. Sahipliği ayarlayın: chown -R backupuser:backupuser /backup/logs ve izinleri kısıtlayın: chmod 700 /backup/logs. Bu, yalnızca yetkili kullanıcının erişmesini sağlar. Logrotate entegrasyonu için /etc/logrotate.d/ altına özel bir konfigürasyon ekleyin; örneğin, günlükleri sıkıştırarak (/var/log/*.log.gz) yedek dizinine taşıyın. Bu hazırlık, veri bütünlüğünü korur ve depolama maliyetlerini düşürür. Pratikte, birden fazla sunucu için alt dizinler (örneğin /backup/logs/web1, /backup/logs/db1) kullanarak organizasyonu kolaylaştırın.
rsync aracını kullanarak logları senkronize edin. Temel komut: rsync -avz --delete /var/log/ backupuser@uzak-sunucu-ip:/backup/logs/local-sunucu-adi/. Burada -a (arşiv modu), -v (ayrıntılı çıktı), -z (sıkıştırma) ve –delete (fazla dosyaları silme) seçenekleri verimliliği artırır. İlk çalıştırmada tam kopyalama yapar, sonraki seferlerde yalnızca değişiklikleri aktarır; bu, bant genişliğini korur. Örnek: Web logları için /var/log/apache2/ dizinini hedefleyin. Komut sonrası, uzak sunucuda dosyaları doğrulayın: ls -la /backup/logs/. Bu yöntem, delta transfer ile dakikalar içinde gigabaytlarca veriyi taşır ve kesinti yaratmaz.
Otomatikleştirmek için crontab düzenleyin: crontab -e. Günlük yedekleme için 0 2 * * * rsync -avz --delete /var/log/ backupuser@uzak-sunucu-ip:/backup/logs/local-sunucu-adi/ >> /var/log/backup.log 2>&1 satırını ekleyin (gece 02:00). Haftalık tam tarama için 0 3 * * 0 kullanın. Logrotate ile entegre edin: /etc/logrotate.conf’ta postrotate scripti rsync’i çağırın. Hata takibi için /var/log/backup.log dosyasını izleyin ve e-posta bildirimleri ekleyin (örneğin MAILTO değişkeni ile). Bu kurulum, 7/24 yedekleme sağlar ve manuel müdahaleyi ortadan kaldırır. Performans testi yapın; yoğun sunucularda –bwlimit=1m ile bant genişliğini sınırlayın.
Sunucu log yedeklemesini uzak bir sunucuya taşımak, BT altyapınızın dayanıklılığını önemli ölçüde artırır. Yukarıdaki adımları uygulayarak, verilerinizi güvenli ve erişilebilir hale getirin. Düzenli testler yapın, yedekleri geri yükleme prosedürlerini prova edin ve araçları güncel tutun. Bu strateji, işletmenizin sürekliliğini garanti altına alır ve olası krizlerde hızlı müdahale imkanı sunar.