Linux sunucuda yanlış görünen saat her zaman NTP arızası değildir. Saat dilimi yanlış olabilir, sistem gerçek zaman kaynağıyla eşleşmemiş olabilir veya sanal makine hipervizör saatiyle yarışıyor olabilir. Önce “görüntüleme farkı” ile “gerçek saat sapması”nı ayırın.
Yerel saat, UTC ve saat dilimini birlikte okuyun
date --iso-8601=seconds
date -u --iso-8601=seconds
timedatectl status
Local time yanlış, fakat Universal time doğruysa sorun çoğunlukla saat dilimidir. Türkiye için:
sudo timedatectl set-timezone Europe/Istanbul
timedatectl status
System clock synchronized: no görünüyorsa saat kaynağına geçin. Tek bir anlık çıktıyla karar vermeyin; birkaç dakika arayla sapmanın artıp artmadığını kontrol edin.
Hangi senkronizasyon hizmetinin çalıştığını belirleyin
systemctl is-active systemd-timesyncd chrony chronyd 2>/dev/null
systemctl list-unit-files | grep -E 'timesyncd|chrony'
Ubuntu, varsayılan olarak timedatectl ve systemd-timesyncd kullanabilir. chrony kurulduğunda timedatectl zaman tutmayı ona bırakır. İki farklı NTP istemcisini aynı anda elle etkinleştirmek yerine sistemde seçili olanı teşhis edin.
systemd-timesyncd kullanılıyorsa sunucu ve logu inceleyin
timedatectl timesync-status
systemctl status systemd-timesyncd --no-pager
sudo journalctl -u systemd-timesyncd --since '-2 hours' --no-pager
Server, Offset ve Packet count alanları istemcinin bir zaman sunucusuyla konuşup konuşmadığını gösterir. “Timed out waiting for reply” kayıtlarında DNS çözümlemesini ve UDP/123 çıkışını kontrol edin.
chrony kullanılıyorsa izleme çıktısını okuyun
chronyc tracking
chronyc sources -v
chronyc sourcestats -v
chronyc tracking içindeki Leap status: Normal ve seçilmiş referans, temel sağlıklı durumu gösterir. Kaynak listesinde ^* seçili sunucuyu, ^? ise henüz kullanılamayan kaynağı belirtir. Yüksek offset sürekli artıyorsa ağ gecikmesi dışında sanal saat ve donanım saati de incelenmelidir.
DNS ve NTP erişimini ayrı sınayın
getent ahosts ntp.ubuntu.com
resolvectl query ntp.ubuntu.com
sudo tcpdump -ni any udp port 123
ping başarısızlığı NTP'nin çalışmadığını kanıtlamaz; ICMP engellenmiş olabilir. Paket yakalamada istek çıkıyor fakat yanıt dönmüyorsa host firewall, ağ ACL'si ve upstream filtreyi kontrol edin. Yanıt geliyor ancak istemci kaynağı seçmiyorsa hizmet logundaki kalite ve zaman adımı uyarılarına bakın.
Donanım saati ve sanallaştırma katmanını kontrol edin
sudo hwclock --show
systemd-detect-virt
dmesg | grep -Ei 'clocksource|timekeeping' | tail -n 30
Fiziksel sistemlerde RTC, açılışta sistem saatinin başlangıç değerini etkiler. Sanal makinelerde ise hipervizör zaman eşitlemesi ile konuk NTP istemcisi beklenmeyen düzeltmeler yapabilir. Sağlayıcının konuk araçları ve saat önerisini kontrol edin.
Ani saat değişikliğini üretimde dikkatle uygulayın
Büyük bir sapmayı elle düzeltmek veritabanı kayıtlarını, sertifika kontrollerini, günlük sırasını ve küme üyeliğini etkileyebilir. Önce sapmayı ölçün; bakım penceresi ve uygulama davranışı değerlendirilmeden date -s veya zorlayıcı zaman adımı kullanmayın. Chrony ortamında gerektiğinde uygulanabilen chronyc makestep de ani değişikliktir ve etkisi aynı şekilde planlanmalıdır.
Teşhisin sonunda saat dilimi doğru, tek bir senkronizasyon istemcisi etkin, erişilebilir bir zaman kaynağı seçilmiş ve offset kararlı biçimde küçülüyor olmalıdır. Yalnızca ekrandaki saatin doğru görünmesi yeterli kanıt değildir.
Teknik başvuru: Ubuntu Server saat senkronizasyonu.