Ana içeriğe geç
Kategoriye Dön

Zaman Dilimi ve NTP Ayarları: Sunucu Saati Senkronizasyonu

timedatectl ile zaman dilimi ayarlama, chrony ve systemd-timesyncd ile NTP yapılandırması, sunucu saati senkronizasyonu ve doğrulama adımları. Linux sunucu saat yönetimi rehberi.

Okuma süresi: 10 dk Sunucu Yönetimi
ntpzaman dilimitimedatectlchronytimesyncdsaatsenkronizasyon

İçindekiler

Zaman Dilimi ve NTP Ayarları: Sunucu Saati Senkronizasyonu

Sunucu saatinin doğru ayarlanması, log dosyalarının tutarlılığı, SSL sertifika doğrulaması, veritabanı işlemleri ve zamanlanmış görevlerin düzgün çalışması için kritik öneme sahiptir. Yanlış saat ayarları, güvenlik açıklarına ve uygulama hatalarına yol açabilir. Bu rehberde Linux sunucularda zaman dilimi ve NTP yapılandırmasını öğreneceksiniz.

Mevcut Saat Durumunu Kontrol Etme

hljs bash
# Sistem saati, donanım saati ve NTP durumunu görüntüle
timedatectl

# Örnek çıktı:
# Local time: Tue 2024-01-15 14:30:00 TRT
# Universal time: Tue 2024-01-15 11:30:00 UTC
# RTC time: Tue 2024-01-15 11:30:00
# Time zone: Europe/Istanbul (TRT, +0300)
# System clock synchronized: yes
# NTP service: active

# Sadece tarih ve saati görüntüle
date

# UTC saatini görüntüle
date -u

# Donanım saatini görüntüle
sudo hwclock --show

Zaman Dilimi Ayarlama

timedatectl ile Zaman Dilimi Değiştirme

hljs bash
# Mevcut zaman dilimini görüntüle
timedatectl | grep "Time zone"

# Tüm kullanılabilir zaman dilimlerini listele
timedatectl list-timezones

# Belirli bir bölgeyi filtrele
timedatectl list-timezones | grep Europe
timedatectl list-timezones | grep Turkey
timedatectl list-timezones | grep Istanbul

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

# Diğer yaygın zaman dilimleri
sudo timedatectl set-timezone UTC
sudo timedatectl set-timezone Europe/Berlin
sudo timedatectl set-timezone America/New_York
sudo timedatectl set-timezone Asia/Dubai
hljs bash
# Alternatif yöntem (eski sistemler için)
sudo ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime

# /etc/timezone dosyasını güncelle
echo "Europe/Istanbul" | sudo tee /etc/timezone

# Değişikliği doğrula
date

REXE sunucuları varsayılan olarak UTC zaman diliminde gelir. Türkiye için Europe/Istanbul (UTC+3) kullanın. Log analizi için UTC'de bırakmak da iyi bir pratiktir.

NTP ile Saat Senkronizasyonu

NTP (Network Time Protocol), sunucu saatini internet üzerindeki zaman sunucularıyla senkronize eder.

systemd-timesyncd (Hafif Çözüm)

Ubuntu ve Debian'da varsayılan olarak gelen hafif NTP istemcisidir.

hljs bash
# Durumu kontrol et
sudo systemctl status systemd-timesyncd

# NTP senkronizasyon durumunu görüntüle
timedatectl show-timesync --all

# NTP'yi etkinleştir
sudo timedatectl set-ntp true

# NTP'yi devre dışı bırak
sudo timedatectl set-ntp false

timesyncd Yapılandırması

hljs bash
# Yapılandırma dosyasını düzenle
sudo nano /etc/systemd/timesyncd.conf
hljs ini
[Time]
# Birincil NTP sunucuları
NTP=0.tr.pool.ntp.org 1.tr.pool.ntp.org 2.tr.pool.ntp.org
# Yedek NTP sunucuları
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org time.cloudflare.com
# Maksimum saat farkı (saniye)
RootDistanceMaxSec=5
# Anket aralığı
PollIntervalMinSec=32
PollIntervalMaxSec=2048
hljs bash
# Servisi yeniden başlat
sudo systemctl restart systemd-timesyncd

# Senkronizasyon durumunu kontrol et
timedatectl

Chrony (Gelişmiş Çözüm)

Chrony, özellikle aralıklı bağlantılı veya sanallaştırılmış ortamlar için daha iyi performans sunar.

hljs bash
# Chrony kurulumu (Ubuntu/Debian)
sudo apt install chrony -y

# Chrony kurulumu (RHEL/CentOS/AlmaLinux)
sudo dnf install chrony -y

# Servisi başlat ve etkinleştir
sudo systemctl enable --now chronyd

Chrony Yapılandırması

hljs bash
# Yapılandırma dosyasını düzenle
sudo nano /etc/chrony/chrony.conf  # Ubuntu/Debian
# veya
sudo nano /etc/chrony.conf  # RHEL/CentOS
hljs bash
# Türkiye NTP havuzu
pool 0.tr.pool.ntp.org iburst
pool 1.tr.pool.ntp.org iburst
pool 2.tr.pool.ntp.org iburst
pool 3.tr.pool.ntp.org iburst

# Cloudflare NTP (yüksek hassasiyet)
server time.cloudflare.com iburst

# Google NTP
server time.google.com iburst

# Drift dosyası
driftfile /var/lib/chrony/drift

# Güvenli log
logdir /var/log/chrony

# Makefile senkronizasyonu
makestep 1.0 3

# RTC senkronizasyonu
rtcsync
hljs bash
# Servisi yeniden başlat
sudo systemctl restart chronyd

# Chrony durumunu kontrol et
chronyc tracking

# NTP kaynaklarını listele
chronyc sources -v

# Kaynak istatistiklerini görüntüle
chronyc sourcestats

Chrony Çıktısını Anlamak

hljs bash
# chronyc tracking çıktısı örneği:
# Reference ID    : CF400064 (time.cloudflare.com)
# Stratum         : 4
# Ref time (UTC)  : Tue Jan 15 11:30:00 2024
# System time     : 0.000012345 seconds fast of NTP time
# Last offset     : +0.000012345 seconds
# RMS offset      : 0.000023456 seconds
# Frequency       : 12.345 ppm fast
# Residual freq   : +0.001 ppm
# Skew            : 0.123 ppm
# Root delay      : 0.012345678 seconds
# Root dispersion : 0.000234567 seconds
# Update interval : 64.2 seconds
# Leap status     : Normal

NTP Sunucuları

Önerilen NTP Sunucuları

SunucuAçıklamaKullanım
pool.ntp.orgKüresel NTP havuzuGenel kullanım
tr.pool.ntp.orgTürkiye NTP havuzuTürkiye sunucuları
time.cloudflare.comCloudflare NTPYüksek hassasiyet
time.google.comGoogle NTPYüksek güvenilirlik
time.windows.comMicrosoft NTPWindows uyumlu

Stratum Seviyeleri

  • Stratum 0: Atom saatleri, GPS (doğrudan bağlantı yok)
  • Stratum 1: Stratum 0'a doğrudan bağlı sunucular
  • Stratum 2: Stratum 1'e senkronize sunucular (pool.ntp.org)
  • Stratum 3+: Daha düşük hassasiyet

Donanım Saati (RTC) Senkronizasyonu

hljs bash
# Sistem saatini donanım saatine yaz
sudo hwclock --systohc

# Donanım saatini sistem saatine oku
sudo hwclock --hctosys

# Donanım saatini UTC olarak ayarla
sudo hwclock --systohc --utc

# Donanım saatini görüntüle
sudo hwclock --show

Senkronizasyon Doğrulama

hljs bash
# NTP senkronizasyon durumunu kontrol et
timedatectl | grep synchronized

# Chrony ile senkronizasyon kontrolü
chronyc tracking | grep "System time"

# ntpdate ile anlık kontrol (kurulu ise)
ntpdate -q pool.ntp.org

# Saat farkını ölç
ntpdate -d time.cloudflare.com

Chrony ve systemd-timesyncd'yi aynı anda çalıştırmayın. Chrony kurduğunuzda timesyncd'yi devre dışı bırakın: sudo systemctl disable --now systemd-timesyncd

Sorun Giderme

Saat Senkronize Olmuyor

hljs bash
# NTP portunu kontrol et (UDP 123)
sudo ufw allow 123/udp

# Chrony log dosyasını incele
sudo tail -f /var/log/chrony/tracking.log

# Bağlantıyı test et
ntpdate -q pool.ntp.org

# Chrony'yi zorla senkronize et
sudo chronyc makestep

Büyük Saat Farkı

hljs bash
# Saati manuel olarak ayarla (NTP devre dışıyken)
sudo timedatectl set-ntp false
sudo timedatectl set-time "2024-01-15 14:30:00"
sudo timedatectl set-ntp true

# Chrony ile hızlı düzeltme
sudo chronyc makestep

Sonuç

Doğru zaman dilimi ve NTP yapılandırması, güvenilir bir sunucu altyapısının temel gereksinimlerinden biridir. REXE sunucularında chrony veya systemd-timesyncd kullanarak saatinizi her zaman senkronize tutabilir, log tutarlılığını ve uygulama güvenilirliğini sağlayabilirsiniz.