Laika josla un NTP Linux: timedatectl un chrony
Laika joslu Linux serverī iestata ar komandu timedatectl set-timezone, bet laika precizitāti nodrošina NTP sinhronizācija — ar systemd-timesyncd vai chrony. Pareizs laiks ir kritisks žurnāliem, TLS sertifikātiem, cron uzdevumiem un datubāzēm. Zemāk — pilna konfigurācija.
Kāpēc laiks ir svarīgs
Pulksteņu nesinhronitāte lauž TLS sertifikātu pārbaudi, jauc ierakstu secību žurnālos un sabojā cron un datubāzes replikāciju. Uz VPS laiks var «aizpeldēt», tāpēc NTP sinhronizācija ir obligāta.
1. solis. Pašreizējais stāvoklis
timedatectl
Izvade parādīs vietējo laiku, UTC, laika joslu un NTP sinhronizācijas statusu (System clock synchronized: yes/no).
2. solis. Laika joslas iestatīšana
Apskatīt joslu sarakstu:
timedatectl list-timezones | grep -i riga
Iestatīt vajadzīgo:
timedatectl set-timezone Europe/Riga
Citi piemēri: Europe/Vilnius, Europe/Tallinn, UTC. Pārbaudiet:
date
Serveriem bieži atstāj UTC — tas vienkāršo darbu ar sadalītām sistēmām un žurnāliem.
3. solis. NTP sinhronizācijas ieslēgšana
Lielākajā daļā mūsdienīgu distributīvu strādā iebūvētais systemd-timesyncd:
timedatectl set-ntp true
Pārbaudiet statusu:
timedatectl show-timesync --all
systemctl status systemd-timesyncd
Rinda System clock synchronized: yes nozīmē, ka laiks tiek sinhronizēts automātiski.
NTP serveru maiņa timesyncd
Rediģējiet /etc/systemd/timesyncd.conf:
[Time]
NTP=0.pool.ntp.org 1.pool.ntp.org
FallbackNTP=2.pool.ntp.org 3.pool.ntp.org
Pārstartējiet:
systemctl restart systemd-timesyncd
Alternatīva: chrony (precīzāk)
Chrony labāk notur precizitāti nestabilā tīklā un uz VPS. Instalēšana:
apt install -y chrony
systemctl enable --now chrony
Ubuntu sistēmā serviss saucas chrony, dažās citās sistēmās — chronyd. Laika avotu pārbaude:
chronyc sources -v
chronyc tracking
chronyc tracking parādīs nobīdi (offset) un sinhronizācijas precizitāti. Serveru konfigurācija — failā /etc/chrony/chrony.conf:
pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
iburst paātrina pirmo sinhronizāciju.
Piespiest tūlītēju sinhronizāciju:
chronyc makestep
Aparatūras pulkstenis (RTC)
Ierakstīt sistēmas laiku aparatūras pulkstenī:
hwclock --systohc
Uz VPS pulkstenis parasti ir virtuāls un tiek sinhronizēts ar hipervizoru, bet komanda noder kontrolei.
systemd-timesyncd vai chrony
| Parametrs | timesyncd | chrony |
|---|---|---|
| Instalēšana | Iebūvēts | Atsevišķa pakotne |
| Precizitāte | Laba | Augstāka |
| NTP servera loma | Nē | Jā |
| Piemērots | Klientiem | Klientiem un serveriem |
Vienam VPS pietiek ar timesyncd. Ja serveris pats izplata laiku tīklā vai vajadzīga maksimāla precizitāte — chrony.
Sinhronizācijas problēmu diagnostika
Ja timedatectl rāda System clock synchronized: no, ejiet pa soļiem.
Pārbaudiet, vai NTP serveri ir sasniedzami (tie izmanto UDP portu 123):
timedatectl timesync-status
Pārliecinieties, ka ugunsmūris nebloķē izejošo UDP 123:
ufw status | grep 123
Izejošiem savienojumiem parasti neko atvērt nevajag, bet, ja politika ir deny outgoing — pievienojiet:
ufw allow out 123/udp
Apskatiet laika servisa žurnālu:
journalctl -u systemd-timesyncd -n 30
Manuāla nobīdes pārbaude
Salīdziniet servera laiku ar publisku avotu. Uzinstalējiet ntpdate vienreizējai pārbaudei:
apt install -y ntpdate
ntpdate -q pool.ntp.org
Karogs -q tikai pieprasa un parāda nobīdi, nemainot pulksteni. Vērtība offset tuvu nullei nozīmē, ka laiks ir precīzs.
Lokāle un datuma formāts
Laika josla un lokāle ir dažādas lietas. Pārbaudīt lokāli:
localectl status
Iestatīt, piemēram, korektam datuma formātam:
localectl set-locale LANG=en_US.UTF-8
Tas ietekmē date izvadi un žurnālus, bet ne pašu sistēmas laiku.
Automatizācija vairākiem serveriem
Ja serveru ir daudz, vienotu NTP pūlu labāk ierakstīt konfigurācijā caur pārvaldības sistēmu (Ansible, cloud-init). Tā visi mezgli sinhronizējas ar vieniem un tiem pašiem avotiem, un žurnāli starp mašīnām paliek salīdzināmi pēc laika — tas ir kritiski, analizējot sadalītus incidentus.
Biežāk uzdotie jautājumi
Vai timesyncd un chrony var strādāt vienlaikus?
Nē, tie konfliktē. Instalējot chrony, izslēdziet timesyncd: systemctl disable --now systemd-timesyncd.
Kāpēc laiks pēc pārstartēšanas nobīdās?
Tas nozīmē, ka NTP nav ieslēgts. Izpildiet timedatectl set-ntp true vai uzinstalējiet chrony.
Likt vietējo laika joslu vai UTC? Serveriem ērtāk ir UTC. Vietējā josla — ja to prasa lietotnes vai atskaites.
Kā pārbaudīt sinhronizācijas precizitāti?
chronyc tracking rāda nobīdi sekundēs. Milisekunžu kārtas vērtības ir norma.
Vai laiks ietekmē TLS? Jā. Pie lielas pulksteņu nobīdes sertifikāti tiek uzskatīti par nederīgiem un HTTPS pārstāj strādāt.
Stabils serveris sākas ar pamata konfigurāciju. Izvērsiet projektu uz VPS nomas vai VPS drošībai un VPN. Pilnu apkalpošanu uzņemsies Serveru administrēšana.