Kako sinhronizirati čas z NTP v Linuxu


Network Time Protocol (NTP) je protokol, ki se uporablja za samodejno sinhronizacijo ure računalniškega sistema prek omrežij. Naprava lahko uporablja sistemsko uro za usklajen univerzalni čas (UTC) in ne za lokalni čas.

Ohranjanje natančnega časa na sistemih Linux, zlasti na strežnikih, je pomembna naloga iz več razlogov. V omrežnem okolju je na primer potrebno natančno merjenje časa za natančne časovne žige v paketih in sistemskih dnevnikih za analizo vzrokov, ugotavljanje, kdaj so se pojavile težave, in iskanje korelacij.

Chrony je zdaj privzeti izvedbeni paket NTP za najnovejše različice operacijskih sistemov Linux, kot so med drugim CentOS, RHEL, Fedora in Ubuntu/Debian, privzeto pa je vnaprej nameščen. Paket je sestavljen iz chronyda, demona, ki se izvaja v uporabniškem prostoru, in chronyc iz programa ukazne vrstice za spremljanje in nadzor chronyda.

Chrony je vsestranska izvedba NTP in se dobro obnese v številnih pogojih (preverite primerjavo paketa chrony z drugimi izvedbami NTP). Uporablja se lahko za sinhronizacijo sistemske ure s strežniki NTP (deluje kot odjemalec), z referenčno uro (na primer sprejemnik GPS) ali z ročnim vnosom časa. Uporablja se lahko tudi kot strežnik NTPv4 (RFC 5905) ali enakovreden za zagotavljanje časovne storitve drugim računalnikom v omrežju.

V tem članku se boste naučili, kako sinhronizirati čas strežnika z NTP v Linuxu s pomočjo chronyja.

Namestitev Chronyja v strežnik Linux

V večini sistemov Linux ukaz chrony ni privzeto nameščen. Če ga želite namestiti, izvedite spodnji ukaz.

$ sudo apt-get install chrony    [On Debian/Ubuntu]
$ sudo yum  install chrony       [On CentOS/RHEL]
$ sudo dnf install chrony        [On Fedora 22+]

Ko je namestitev končana, zaženite storitev chrony in ji omogočite samodejni zagon ob zagonu sistema, nato preverite, ali je zagnana in deluje.

# systemctl enable --now chronyd
# systemctl status chronyd

Če želite navzkrižno preveriti, ali je chrony zdaj v redu in deluje, ter videti število strežnikov in vrstnikov, ki so z njim povezani, zaženite naslednji ukaz chronyc.

# chronyc activity

Preverjanje Chrony sinhronizacije

Za prikaz informacij (seznam razpoložljivih strežnikov, stanje in odmiki od lokalne ure in vira) o trenutnih časovnih virih, do katerih dostopa chronyd, zaženite naslednji ukaz z zastavico -v , ki prikazuje opis za vsak stolpec.

# chronyc sources
OR
# chronyc sources -v

Kar zadeva prejšnji ukaz, za prikaz drugih uporabnih informacij za vsak vir, ki ga trenutno pregleduje chronyd (na primer postopek ocenjevanja hitrosti odmika in odmika), uporabite ukaz sourcestats.

# chronyc sourcestats
OR
# chronyc sourcestats -v

Če želite preveriti chrony sledenje, zaženite naslednji ukaz.

# chronyc tracking

Referenčni ID v izhodu tega ukaza podaja ime (ali naslov IP) strežnika, na katerega je računalnik trenutno sinhroniziran, od vseh razpoložljivih strežnikov.

Konfiguriranje Chrony časovnih virov

Glavna konfiguracijska datoteka chrony se nahaja na /etc/chrony.conf (CentOS/RHEL/Fedora) ali /etc/chrony/chrony.conf (Ubuntu/Debian).

Ko nameščate operacijski sistem Linux v oblak, bi moral imeti vaš sistem med namestitvijo dodane nekaj privzetih strežnikov ali skupino strežnikov. Če želite dodati ali spremeniti privzete strežnike, odprite konfiguracijsko datoteko za urejanje:

# vim /etc/chrony.conf
OR
# vim /etc/chrony/chrony.conf

S strežniško direktivo lahko dodate več strežnikov, kot je prikazano.

server 0.europe.pool.ntp.org iburst
server 1.europe.pool.ntp.org iburst
server 2.europe.pool.ntp.org ibusrt
server 3.europe.pool.ntp.org ibusrt

ali v večini primerov je najbolje uporabiti ntppool.org za iskanje strežnika NTP. To sistemu omogoča, da poišče najbližje razpoložljive strežnike za vas. Če želite dodati bazen, uporabite direktivo pool:

pool 0.pool.ntp.org burst

V datoteki lahko konfigurirate še veliko drugih možnosti. Po spremembah znova zaženite storitev chrony.

$ sudo systemctl restart chrony		
OR
# systemctl restart chronyd

Če želite prikazati informacije o trenutnih časovnih virih, ki jih poizveduje chronyd, znova zaženite naslednji ukaz.

# chronyc sources

Če želite preveriti stanje sledenja chrony, zaženite naslednji ukaz.

# chronyc tracking

Če želite prikazati trenutni čas v sistemu, preverite, ali je sistemska ura sinhronizirana in ali je NTP res aktiven, zaženite ukaz timedatectl:

# timedatectl

S tem smo prišli do konca tega vodnika. Če imate kakršna koli vprašanja, nam pišite v spodnjem razdelku za komentarje. Za več informacij si oglejte: uporabo chronyja za konfiguracijo NTP iz uradnega spletnega dnevnika Ubuntu.