Kuidas seadistada täpne aja sünkroniseerimine Ubuntus: ntpd ja NTP põhjalik juhend

目次

1. Sissejuhatus: Miks ajasünkroniseerimine on oluline?

Probleemid, mida põhjustab süsteemi kellaaja erinevus

Ubuntu ja teised Linuxi süsteemid nõuavad väga täpset kellaaega. Esmapilgul võib see tunduda vaid väike viga kellas, kuid serverite haldamisel ja rakenduste käitamisel võivad ajavead põhjustada tõsiseid probleeme.

Näiteks võivad ilmneda järgmised probleemid:

  • Logide järjepidevus kaob
    Kui süsteemi või rakenduse logide ajad ei klapi, muutub tõrgete põhjuste tuvastamine väga keeruliseks.
  • cron-tööde vale ajastus
    Ajastatud protsessid (varundused, partiitöötlus jms) ei pruugi toimuda õigel ajal, mis võib põhjustada ootamatuid olukordi.
  • SSL-sertifikaatide ja turvaautentimise tõrked
    HTTPS-ühendused ja SSH-autentimine nõuavad täpset kellaaega. Kui kellaaeg on vale, võivad sertifikaadid muutuda „aegunuks“ ning tekivad ühendusvead.

Need mõjud on eriti tõsised siis, kui mitut serverit kasutatakse võrgus sünkroniseeritult.

NTP roll ja olulisus

Selliste probleemide vältimiseks kasutatakse NTP-d (Network Time Protocol). NTP suhtleb interneti või kohaliku võrgu aja-serveritega ja korrigeerib automaatselt süsteemi kellaaega.

Ubuntus saab kasutada mitut NTP-tööriista, nagu ntpd, chrony ja systemd-timesyncd. Selles artiklis keskendume ntpd-le (Network Time Protocol daemon) ja selgitame üksikasjalikult selle seadistamist ning kasutamist Ubuntus.

Eriti olulise töökindluse tõttu soovitatakse ntpd-d kasutada serverites, mis peavad kaua töötama või kus on vaja logide täpset järjepidevust.

Järgmises peatükis tutvustame, mis on ntpd ja milline on selle roll ning millised valikud Ubuntus on saadaval.

2. Mis on ntpd? Roll ja valikud Ubuntus

ntpd ülevaade ja omadused

ntpd (Network Time Protocol Daemon) on deemonprogramm, mis kasutab NTP-d süsteemi kellaaja täpseks hoidmiseks. See suhtleb regulaarselt interneti või kohaliku võrgu NTP-serveritega ja korrigeerib automaatselt süsteemikella.

ntpd iseloomulikuks omaduseks on „sujuv sünkroniseerimine“, mis korrigeerib aega järk-järgult, vältides äkilisi kellamuudatusi ja seega mõjutamata töötavaid süsteeme või rakendusi.

Lisaks toetab ntpd ka sümmeetrilist sidet ja autentimist, võimaldades kasutada seda ka ettevõtte keskkonnas usaldusväärse aja-sünkroniseerimise teenusena.

Ajaga sünkroniseerimise tööriistad Ubuntus

Ubuntus on aja sünkroniseerimiseks mitmeid võimalusi:

  • ntpd (ntp-pakett)
    Levinud valik pikaajalise töö või detailse seadistuse vajaduse korral. Võimaldab väga täpset aega ja on stabiilne, töötades hästi avalike NTP-serveritega.
  • chrony
    Kaasaegne alternatiiv ntpd-le, suure täpsusega ja väga kiire esmasünkroniseerimisega. Sobib hästi madala ressursiga või virtuaalmasinatele ning on mitmes distributsioonis juba vaikimisi kasutusel.
  • systemd-timesyncd
    Alates Ubuntu 20.04-st on vaikimisi aktiivne kerge ajasünkroniseerija. Lihtne ja mugav, kuid piiratud võimalustega ning ei sobi keerukateks seadistusteks ega lokaalseks NTP-serveriks.

Miks valida ntpd ja selle eelised

Ubuntus ntpd kasuks otsustamise peamine põhjus on selle usaldusväärsus ja stabiilsus. Eriti sobiv on ntpd järgmistes olukordades:

  • Pikaajaliselt töötavad serverid, kus aja täpsus on oluline
  • Lokaalse NTP-serveri loomise vajadus sisevõrgus
  • Ettevõttesisene autentimine või keerukamad kontrollnõuded

ntpd sobib hästi olemasolevate süsteemidega ja on laialdaselt kasutusel, mis teeb juurutamise lihtsaks ja turvaliseks.

3. ntpd paigaldamine ja esmane seadistus Ubuntus

ntpd paigaldamise sammud

Ubuntus ntpd kasutamiseks tuleb kõigepealt paigaldada ntp pakett. Seda saab teha järgmiselt:

sudo apt update
sudo apt install ntp

Selle käsuga paigaldatakse ntpd ja sellega seotud failid. Mõnes Ubuntu versioonis võivad vaikimisi olla aktiveeritud chrony või systemd-timesyncd. Sellisel juhul soovitame need eelnevalt keelata või eemaldada.

sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd

Teenuse lubamine ja käivitamise kontroll

Pärast paigaldamist aktiveerige ntpd teenus ja kontrollige selle olekut:

sudo systemctl enable ntp
sudo systemctl start ntp
sudo systemctl status ntp

Kui status käsu tulemus on „active (running)“, töötab ntpd õigesti.

Algseadete faili ülevaatus ja muutmine

ntpd seadistused on määratud failis /etc/ntp.conf. Vaikimisi seadistuses on kasutusel mitu NTP-serverit (tavaliselt pool.ntp.org aadressid).

Kontrollige failis seadistusi järgmiselt:

cat /etc/ntp.conf

Kui soovite määrata näiteks Eesti või Euroopa servereid, muutke faili nii:

server ee.pool.ntp.org iburst

iburst võimaldab kiiremat esmast sünkroniseerimist ja on soovitatav lisada.

Pärast muudatuste tegemist taaskäivitage ntpd teenus:

sudo systemctl restart ntp

Süsteemi automaatse ajasünkroniseerimise kontroll

Pärast käivitamist sünkroniseerib ntpd aja automaatselt serveriga, kuid töö kontrollimiseks on kasulik järgmine käsk:

ntpq -p

Näete aktiivsete NTP-serverite nimekirja ning viivitust, offset’i jm.

4. NTP-serverite seadistamine ja kohandamine

Soovitatavate NTP-serverite valik

Oluline on valida õiged NTP-serverid. Eesti või Euroopa servereid kasutades on sünkroniseerimine stabiilsem ja kiirem.

Näiteid:

  • ee.pool.ntp.org (Eesti NTP-klaster)
  • europe.pool.ntp.org (Euroopa NTP-klaster)
  • ntp.nict.jp (Jaapan, vajadusel rahvusvaheliselt)

Neid servereid võib /etc/ntp.conf faili lisada järgmiselt:

server ee.pool.ntp.org iburst
server europe.pool.ntp.org iburst
server ntp.nict.jp iburst

ntp.conf detailsemad seadistused

/etc/ntp.conf võimaldab veel täpsemaid sätteid. Näiteks:

  • restrict direktiiv
    Seadistab, kes tohib serveriga ühenduda. Soovitav piirata tarbetuid ühendusi. Näide – luba kohaliku võrgu klientidele:
  restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
  • driftfile
    Määrab faili, kuhu kirjutatakse süsteemi kellaaja kõrvalekalded. Tavaliselt pole vaja muuta.
  driftfile /var/lib/ntp/ntp.drift

 

Kohaliku võrgu NTP-serveri loomine

ntpd-d saab kasutada ka ettevõtte sisevõrgus NTP-serverina, jagades aega teistele masinatele. See on kasulik, kui välisühendus puudub või on vaja ühtset aega paljudel masinatel.

Peamised sammud:

  1. Lisa /etc/ntp.conf faili kohaliku võrgu piirang restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
  2. Määra klientmasinates serveriks selle masina kohalik IP server 192.168.0.10 iburst # NTP-serveri lokaalne IP
  3. Ava tulemüüris UDP port 123 sudo ufw allow 123/udp

Kui ühendus on blokeeritud, sünkroniseerimist ei toimu ja ntpq-käsk ei kuva serverit.

5. ntpd töö kontrollimine ja tõrkeotsing

Teenuse staatuse kontrollimine

Kontrolli, kas ntpd töötab:

sudo systemctl status ntp

Kui näed „active (running)“, töötab kõik korralikult. Kui „inactive“ või „failed“, võib olla seadistusviga või puuduv sõltuvus.

Detailsemat logi näeb käsuga:

journalctl -u ntp

Nii saab vaadata teenuse käivitamise ajalugu ja veateateid.

Sünkroniseerimise olukorra kontroll ntpq -p käsuga

Kasuta ntpq -p, et näha, kas sünkroniseerimine toimub:

ntpq -p

Näide väljundist:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ee.pool.ntp.org     .POOL.           2 u   25   64  377    1.123   -0.345   0.024

Olulised väljad:

  • remote: ühendatud NTP-serveri nimi
  • st: stratum ehk serveri tase
  • reach: ühenduse edukus
  • delay: võrgu viivitus (ms)
  • offset: aja nihe (ms)
  • jitter: kõikumine

* tähistab, et see server on hetkel valitud sünkroniseerimiseks.

Levinud vead ja lahendused

Allpool on ntpd seadistamisel sagedamini esinevad vead ja nende lahendused.

1. ntpq -p ei kuva midagi / reach on 0

  • Põhjus: tulemüür või ruuter blokeerib UDP porti 123
  • Lahendus: kontrolli tulemüüri nii serveris kui kliendis ja luba NTP-liiklus.
sudo ufw allow 123/udp

2. Ilmub teade „System clock not synchronized“

  • Põhjus: ntpd ei tööta või konkureerib mõne muu sünkroonimisteenusega (nt systemd-timesyncd)
  • Lahendus: Keela muud ajateenused ja taaskäivita ntpd.
sudo systemctl disable systemd-timesyncd
sudo systemctl restart ntp

3. NTP-serveri nime ei leita

  • Põhjus: DNS seaded valed või võrguühendus puudub
  • Lahendus: Proovi pingida ntp-serverit ja vajadusel muuda DNS-i seadistust.

4. Kellaaeg on tugevalt vale ja ei sünkroniseeru

  • Põhjus: ntpd ei korrigeeri suurt kellavea automaatselt
  • Lahendus: Sea aeg käsitsi õigeks ja taaskäivita ntpd.
sudo ntpd -gq  # teostab kohese ühekorra sünkroniseerimise
sudo systemctl restart ntp

Pidev monitooring

Soovitav on automatiseerida ntpq -p väljundi logimine ja häirete tuvastamine. Näiteks kui reach jääb mitmel korral nulliks, saad teavituse ja saad võimalikele tõrgetele kiirelt reageerida.

6. ntpd ja teiste ajasünkroniseerimise tööriistade võrdlus

Peamised ajasünkroniseerimise tööriistad Ubuntus

Ubuntus saab ajasünkroniseerimiseks kasutada mitmeid tööriistu. Kõigil on omad eelised ning sobiv valik sõltub süsteemi eesmärgist ja vajadustest. Kolm levinumat on:

  • ntpd (ntp-pakett)
  • chrony
  • systemd-timesyncd

Olles kursis nende erinevustega, saab valida parima lahenduse just enda süsteemile.

ntpd omadused

  • Plussid
  • Pikaajaline kasutusajalugu ja stabiilsus, väga usaldusväärne
  • Rohked funktsioonid (kohalik NTP-server, autentimine, sümmeetriline töö jne)
  • Lai ühilduvus avalike NTP-serveritega, palju infot ja kogemusi kogukonnas
  • Miinused
  • Aeglane esmasünkroniseerimine
  • Mitte kõige sobivam kaasaegsetele virtuaalvõrkudele

chrony omadused

  • Plussid
  • Väga kiire esmane sünkroniseerimine
  • Sobib virtuaalmasinatele, sülearvutitele ja muutuvatele võrkudele
  • Automaatsed õppimisfunktsioonid, sageli parem täpsus kui ntpd-l
  • Miinused
  • Kohaliku NTP-serveri seadistamine keerukam
  • Vähem dokumentatsiooni ja kogemusi kui ntpd-l

systemd-timesyncd omadused

  • Plussid
  • Ubuntu 20.04-st vaikimisi lubatud, väga lihtne paigaldada ja hallata
  • Väga väike ressursikulu
  • Tihe integratsioon systemd-ga, Ubuntu standardpaigalduses mugav
  • Miinused
  • Vähe funktsioone, puudub tugi lokaalsele NTP-serverile
  • Pigem lihtsakoeline ja ei sobi suurematele süsteemidele

Tööriistade võrdlustabel

Omadusntpdchronysystemd-timesyncd
Täpsuskõrgeväga kõrgekeskmine
Esmasünkroniseerimise kiirusvõib olla aeglaneväga kiirekeskmine
Kohaliku NTP-serveri võimalus○ (keerulisem)× (puudub)
Seadistuste paindlikkuskõrgekeskminemadal
Virtuaalvõrkude tugi
Kogemus ja dokumentatsioon
Soovitatav kasutusserver, organisatsioonisisesed süsteemidvirtuaalkeskkonnad, sülearvutidüksikmasinad, algajad

Soovitused kasutusjuhtude kaupa

  • Serverid (eriti pidevalt töötavad)
    ntpd või chrony – stabiilsus ja täpsus on tähtis.
  • Pilvekeskkonnad, virtuaalmasinad, sülearvutid
    chrony – kõige paindlikum ja täpsem.
  • Üksikmasinad või lihtne sünkroniseerimine
    systemd-timesyncd on piisav.

7. Korduma kippuvad küsimused (KKK)

K1. Kas ntpd on Ubuntu 22.04-s vaikimisi paigaldatud?

V1.
Ei, Ubuntu 22.04-s pole ntpd vaikimisi kaasas. Standardis on aktiivne systemd-timesyncd, mis pakub lihtsat sünkroniseerimist. Kui soovite kasutada ntpd-d, peate ntp paketi käsitsi paigaldama.

sudo apt install ntp

Pärast paigaldamist tasub systemd-timesyncd keelata, et vältida konflikte.

K2. ntpq -p ei kuva korralikult tulemusi?

V2.
Põhjuseid võib olla mitu.

  • Teenust pole käivitatud: kontrolli käsuga sudo systemctl status ntp ja vajadusel käivita
  • Pole ühendust NTP-serveriga: tulemüür võib blokeerida UDP porti 123
  • Viga seadistusfailis: kontrolli /etc/ntp.conf võimalikke vigu

Kontrolli alati põhitööd järgmise käsuga:

ntpq -p

Kui väljund on tühi või reach on 0, võib põhjus olla ühenduse puudumine serveriga.

K3. Kumba valida – ntpd või chrony?

V3.
See sõltub kasutuskeskkonnast.

  • Pikaajalised füüsilised serverid või lokaalse NTP-serveri vajadusntpd on stabiilsem
  • Virtuaalkeskkonnad, sülearvutid või muutuv võrkchrony on täpsem ja kiirem
  • Lihtne ajasünkroniseeriminesystemd-timesyncd on piisav

K4. Mida teeb ntpd -gq käsk?

V4.
ntpd -gq sünkroniseerib aja ühe korra NTP-serveriga ja lõpetab töö.

  • -g: lubab suure ajavea parandamist
  • -q: sünkroniseerib ühe korra ja väljub

Kui kell on väga valesti ja tavaline ntpd ei suuda seda parandada, võib seda käsku kasutada käsitsi algsünkroniseerimiseks.

K5. Kas on kasu mitme NTP-serveri määramisest?

V5.
Jah, see tagab töökindluse ja varunduse. Kui üks server on maas, kasutatakse teisi ning ajasünkroniseerimine püsib stabiilsena.

Seadistusnäide (/etc/ntp.conf):

server ee.pool.ntp.org iburst
server europe.pool.ntp.org iburst
server ntp.nict.jp iburst

8. Kokkuvõte: Stabiilne ajasünkroniseerimine suurendab süsteemi usaldusväärsust

ntpd peamised eelised üle

Ubuntu puhul pole täpne ajasünkroniseerimine pelgalt mugavus – see mõjutab otseselt turvalisust, tõrkeotsingut, logide haldamist ja automatiseeritud protsesside täpsust.

Käesolevas artiklis vaatasime läbi NTP (Network Time Protocol) põhitõed, ntpd-põhise sünkroniseerimise tööpõhimõtted, paigaldamise, seadistamise, töö kontrollimise ning võrdluse teiste tööriistadega.

Soovitused lugejale

Millist ajasünkroniseerimise tööriista kasutada, sõltub Ubuntu süsteemi eesmärgist ja ülesehitusest.
Küll aga kehtib alati põhimõte – ilma täpse ajata pole stabiilset tööd.

  • Serverid, kus logihaldus on oluline → seadista kindlasti ntpd või chrony
  • Lihtsate vajaduste korralsystemd-timesyncd on lihtne ja piisav

Aja täpsus võib igapäevases töös märkamata jääda, kuid probleemide korral osutub see sageli otsustavaks.

Loodan, et see artikkel aitab teil leida parima lahenduse Ubuntu ajasünkroniseerimiseks.