AlmaLinux 9'da Zaman/Saat Senkronizasyonu: Chrony (NTP) Rehberi

Doğru zaman senkronizasyonu; log tutarlılığı, sertifika/geçerlilik kontrolleri, Kerberos/SSO ve dağıtık sistemlerde kritik öneme sahiptir. AlmaLinux 9, varsayılan olarak NTP istemcisi/sunucusu için Chrony kullanır.

Bu rehberde Chrony kurulumu, temel/ileri ayarlar, iç ağda NTP sunucusu olarak çalışma ve sorun giderme adımlarını bulacaksınız.

1) Ön kontrol: tarih, saat ve NTP durumu

# Sistem tarih/saat ve NTP durumu
timedatectl

# Chrony servis durumu
systemctl status chronyd --no-pager

# Etkin NTP eşleşmeleri (kaynaklar ve ofsetler)
chronyc sources -v
chronyc tracking

Beklenen: NTP yes/active ve en az bir kaynakta ^* veya ^+ gibi bir işaret görmeniz.

2) Zaman dilimi ayarlama

# Mevcut saat dilimini listele
timedatectl list-timezones | grep Europe/Istanbul

# Saat dilimini ayarla
sudo timedatectl set-timezone Europe/Istanbul

# Doğrula
timedatectl

3) Chrony kurulumu ve servis yönetimi

sudo dnf install -y chrony
sudo systemctl enable --now chronyd
sudo systemctl status chronyd --no-pager

4) NTP sunucularını yapılandırma

Ana yapılandırma dosyası /etc/chrony.conf konumundadır. Varsayılan olarak rhel.pool.ntp.org havuzları gelir. Kurum içi NTP kullanacaksanız bunları özelleştirin.

sudo cp /etc/chrony.conf /etc/chrony.conf.bak.$(date +%F)
sudo nano /etc/chrony.conf

Örnek minimal içerik:

# /etc/chrony.conf

# Kurum içi NTP sunucuları (örnek)
server ntp1.example.local iburst
server ntp2.example.local iburst

# DNS çözümlenemeyecekse IP yazın
# server 192.168.10.10 iburst

# Donanım saati ile uyum
rtcsync

# Boot sonrası büyük sapmayı hızlı düzelt
makestep 1.0 3

driftfile /var/lib/chrony/drift
logdir /var/log/chrony

Değişiklik sonrası yeniden başlatın ve doğrulayın:

sudo systemctl restart chronyd
sleep 3
chronyc sources -v
chronyc tracking

5) Sistem saati ve donanım saati (RTC)

# Donanım saatini sistem saatine yaz
sudo hwclock --systohc

# RTC'nin UTC tutulması önerilir
sudo timedatectl set-local-rtc 0
timedatectl

6) Firewall ayarları (NTP sunucusu olarak hizmet verecekseniz)

Yalnızca bu sunucu diğer cihazlara NTP dağıtacaksa UDP/123 açın.

sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-services | grep ntp || echo "ntp service not listed"

7) İç ağda NTP sunucusu olarak çalıştırma (opsiyonel)

/etc/chrony.conf dosyanıza aşağıdaki satırları ekleyin:

# Yerel ağ istemcilerine izin verin (CIDR bloğunu kendi ağınıza göre değiştirin)
allow 192.168.0.0/16

# Kaynaklar geçici olarak yoksa yerel referans kullan (stratum 10)
local stratum 10

Ardından servisi yeniden başlatın ve dinleme portunu doğrulayın:

sudo systemctl restart chronyd
sudo ss -ulpn | grep ":123"

İstemci tarafta test:

chronyc sources -n
chronyc tracking

8) Sanal makineler, konteynerlar ve bulut notları

  • Hypervisor (VMware/Proxmox/KVM) düzeyinde zaman senkronu açıksa ikili senkronizasyon çakışmaları olabilir. Ya hypervisor senkronunu ya da guest NTP'yi tercih edin.
  • Kubernetes node'larında host saat doğruluğu pod'lar için kritiktir; node düzeyinde Chrony çalışmalıdır.
  • Bulut sağlayıcılarında (AWS/Azure/GCP) sağlayıcının önerdiği NTP uç noktalarını kullanın.

9) Sorun giderme

# Kaynak listesi ve ofsetler
chronyc sources -v

# Senkron durumu ve ofset tahmini
chronyc tracking

# Son 10 ölçüm
chronyc sourcestats -v

# Hata ayıklama logları
sudo grep -iE "chrony|ntp|step" /var/log/messages /var/log/chrony/* 2>/dev/null | tail -n 100

# NTP trafiği (UDP/123)
sudo tcpdump -ni any udp port 123 -c 20

Yaygın problemler ve çözümler:

  • "Not synchronized" veya kaynak yok: Ağ/Firewall kontrol edin, DNS çözümünü test edin (dig ntp.org).
  • Büyük saat farkı nedeniyle eşitleme yavaş: makestep satırının etkin olduğundan emin olun ve servisi yeniden başlatın.
  • Proxy arkasında NTP: NTP UDP/123'tür; HTTP proxy üzerinden çalışmaz. Ağ kuralı gereklidir.

10) İyi uygulamalar (Best Practices)

  • En az 2-3 upstream NTP sunucu tanımlayın; mümkünse coğrafi olarak yakın.
  • İç ağ için tek bir authoritative NTP sunucusu konumlandırıp istemcileri ona yönlendirin.
  • Log/metric takibi için chronyc tracking çıktısını izleyin; ofset sapmaları için uyarı eşikleri belirleyin.
  • Saat dilimi ve RTC ayarlarını standardize edin (UTC önerilir, uygulama ihtiyaçlarına göre görüntüleme katmanında dönüştürün).

Her ortam farklıdır. Değişiklikleri production'a almadan önce test ortamında doğrulamanız önerilir.

Bu Yazıyı Paylaş: