Skip to content
Back to blog
Rehber Linux Sistem Yönetimi NTP Zaman Yönetimi Sunucu Yapılandırması

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:

  1. timedatectl ile sistem zaman dilimini doğrulayın.
  2. chronyc tracking komutu ile sistem saatinin sunucu saatine göre ne kadar sapma gösterdiğini kontrol edin.
  3. Log kayıtlarını inceleyin: journalctl -u chronyd ile servis üzerindeki hata mesajlarını okuyun.
  4. Donanım saatiyle sistem saatini eşitlemek için: sudo hwclock -w komutunu 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.