Sunucu Zaman Yönetimi: Linux Sistemlerde Zaman Dilimi ve Senkronizasyon Rehberi
Sunucu hatalarının gizli sebebi genellikle yanlış yapılandırılmış zaman ayarlarıdır. NTP, chrony ve timedatectl araçlarıyla Linux sunucularınızda zaman hassasiyetini nasıl sağlayacağınızı öğrenin.
Caner Serbest
Sistem ve Altyapı
3 min read
Sunucu Zaman Yönetimi: Linux Sistemlerde Zaman Dilimi ve Senkronizasyon Rehberi
Sistem yöneticileri olarak günlük rutinimizde log dosyalarını incelemek, veritabanı senkronizasyonlarını takip etmek veya kritik cron job’ları planlamak oldukça sıradan görevlerdir. Ancak tüm bu süreçlerin merkezinde yatan “zaman” kavramı, çoğu zaman göz ardı edilen ancak yanlış yapılandırıldığında ciddi felaketlere yol açabilen bir unsurdur. Dağıtık sistemlerde, logların birbirine göre zaman damgalarının tutarsız olması, bir güvenlik ihlalinin kök nedenini bulmayı imkansız hale getirebilir.
Bu yazıda, modern Linux dağıtımlarında zaman yönetiminin nasıl çalıştığını, zaman dilimi yapılandırmalarını ve ağ üzerinden zaman senkronizasyonunun (NTP) nasıl kurulacağını adım adım inceleyeceğiz.
1. Zamanın Anatomisi: Donanım ve Sistem Saati
Linux sunucularında iki temel saat türü bulunur:
- Donanım Saati (RTC/BIOS Clock): Anakart üzerinde, genellikle küçük bir pil ile beslenen ve bilgisayar kapalıyken bile çalışmaya devam eden saattir.
- Sistem Saati (Kernel Clock): İşletim sisteminin açılışıyla başlayan ve kernel tarafından yönetilen saattir.
Sunucu açıldığında kernel, donanım saatini okur ve sistem saatini bu referansla başlatır. Ancak zamanla donanım saati sapmalar yapabilir. İşte burada senkronizasyon araçları devreye girer.
2. timedatectl ile Temel Ayarlar
Systemd tabanlı dağıtımlarda (Ubuntu, Debian, CentOS 7+, RHEL) timedatectl komutu, zaman yönetimindeki “İsviçre çakısı” gibidir.
Zaman Dilimini Değiştirme
Sunucunuzun fiziksel konumu ile işletim sisteminin zaman dilimi farklı olabilir. Bunu kontrol etmek için:
timedatectl status
Eğer zaman dilimini örneğin ‘Europe/Istanbul’ olarak değiştirmek isterseniz:
sudo timedatectl set-timezone Europe/Istanbul
Bu komut hem /etc/localtime sembolik bağını günceller hem de sistemin yeni zaman dilimine uyum sağlamasını tetikler.
3. Zaman Senkronizasyonu: NTP ve Chrony
Eskiden ntpd yaygın olarak kullanılırken, modern sistemlerde artık Chrony standart haline gelmiştir. Chrony, ağ bağlantısı kesintilerinden daha hızlı kurtulur ve sistem saatini daha kararlı bir şekilde tutar.
Chrony Kurulumu
Ubuntu/Debian üzerinde kurulum:
sudo apt update
sudo apt install chrony
Kurulumdan sonra servis otomatik olarak başlar ve yapılandırma dosyası olan /etc/chrony/chrony.conf üzerinden varsayılan zaman sunucularını (pool.ntp.org) kullanmaya başlar.
Senkronizasyon Durumunu Kontrol Etme
Sunucunuzun hangi zaman sunucularıyla haberleştiğini görmek için şu komutu çalıştırın:
chronyc sources -v
Burada gördüğünüz * işareti, mevcut senkronize olunan kaynağı; + işareti ise yedek adayları temsil eder.
4. Kritik Uygulamalar ve Zaman Hassasiyeti
Özellikle finansal uygulamalar veya yüksek erişilebilirlik (HA) kümeleri yönetiyorsanız, varsayılan NTP ayarları yeterli olmayabilir. Bu durumda aşağıdakilere dikkat etmelisiniz:
- Firewall İzinleri: NTP protokolü 123 numaralı UDP portunu kullanır. Sunucunuzun dış dünyaya saat bilgisi almak için bu porta erişebildiğinden emin olun.
- Sıçrama Saniyeleri (Leap Seconds): Bazen dünyanın dönüş hızındaki değişimler nedeniyle sisteme eklenen saniyeler uygulamalarda hata verebilir. Modern çekirdekler bunu
ntpüzerinden otomatik yönetir ancak eski yazılımlar kullanıyorsanız dikkatli olmalısınız. - Sanal Sunucular (VM): Sanal makineler zamanı hipervizörden (VMware, Hyper-V, Proxmox) devralma eğilimindedir. Eğer bir VM üzerinde zaman sapması yaşıyorsanız, önce hipervizör düzeyindeki zaman ayarlarını kontrol etmelisiniz.
5. Sorun Giderme Stratejileri
Eğer date komutu yanlış bir değer döndürüyorsa şu adımları izleyin:
timedatectlile sistem zaman dilimini doğrulayın.chronyc trackingkomutu ile sistem saatinin sunucu saatine göre ne kadar sapma gösterdiğini kontrol edin.- Log kayıtlarını inceleyin:
journalctl -u chronydile servis üzerindeki hata mesajlarını okuyun. - Donanım saatiyle sistem saatini eşitlemek için:
sudo hwclock -wkomutunu kullanarak sistem saatini donanım saatine yazın.
Sonuç
Sunucu zaman yönetimi, sistemin güvenilirliğini belirleyen temel taşlardan biridir. Doğru bir zaman dilimi yapılandırması ve kararlı çalışan bir NTP/Chrony servisi, gün sonunda log analizlerinden veritabanı tutarlılığına kadar pek çok alanda başınızın ağrımasını engeller. Bu ayarları sadece kurulum aşamasında değil, sunucunun yaşam döngüsü boyunca periyodik olarak kontrol etmek, profesyonel bir sistem yöneticisinin en önemli görevlerinden biridir.
Bu yazı Gemini ile otomatik oluşturulmuştur.