Kuinka synkronoida aika NTP: n kanssa Linuxissa


NTP (Network Time Protocol) on protokolla, jota käytetään tietokonejärjestelmän kellon synkronointiin automaattisesti verkon kautta. Kone voi saada järjestelmän kellon käyttämään UTC-aikaa (Coordinated Universal Time) paikallisen ajan sijasta.

Tarkan ajan ylläpito Linux-järjestelmissä, erityisesti palvelimissa, on tärkeä tehtävä monista syistä. Esimerkiksi verkkoympäristössä tarkkaa ajanottoa tarvitaan tarkkoihin aikaleimoihin paketeissa ja järjestelmälokeissa juurisyyanalyysiä varten, ongelmien havaitsemiseksi ja korrelaatioiden löytämiseksi.

Chrony on nyt oletusarvoinen NTP-toteutuspaketti Linux-käyttöjärjestelmien uusimmissa versioissa, kuten muun muassa CentOS, RHEL, Fedora ja Ubuntu/Debian, ja se on esiasennettu oletuksena. Paketti koostuu chronydista, käyttäjäalueella toimivasta daemonista, ja chronycista komentoriviohjelmasta chronydin seurantaan ja hallintaan.

Chrony on monipuolinen NTP-toteutus ja toimii hyvin monissa olosuhteissa (tutustu chrony-paketin vertailuun muihin NTP-toteutuksiin). Sitä voidaan käyttää järjestelmän kellon synkronointiin NTP-palvelinten kanssa (toimii asiakkaana), referenssikellon (esim. GPS-vastaanotin) tai manuaalisen aikatulon kanssa. Sitä voidaan käyttää myös NTPv4 (RFC 5905) -palvelimena tai vertaispalveluna aikapalvelun tarjoamiseksi verkon muille tietokoneille.

Tässä artikkelissa opit synkronoimaan palvelimen ajan NTP: n kanssa Linuxissa chrony-toiminnolla.

Chrony: n asentaminen Linux Serveriin

Useimmissa Linux-järjestelmissä chrony-komentoa ei ole asennettu oletuksena. Asenna se suorittamalla alla oleva komento.

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

Kun asennus on valmis, käynnistä chrony-palvelu ja salli se käynnistymään automaattisesti järjestelmän käynnistyksen yhteydessä ja tarkista sitten onko se käynnissä.

# systemctl enable --now chronyd
# systemctl status chronyd

Suorita seuraava chronyc-komento tarkistaaksesi, onko chrony nyt käynnissä ja toimiiko oikein, ja nähdäksesi siihen kytkettyjen palvelimien ja ikäisensä määrän.

# chronyc activity

Tarkistetaan Chrony-synkronointi

Jos haluat näyttää tietoja (luettelo käytettävissä olevista palvelimista, tila ja siirrot paikallisesta kellosta ja lähteestä) nykyisistä aikalähteistä, joita chronyd käyttää, suorita seuraava komento ja -v -lippu näyttää kuvauksen jokaiselle sarakkeelle.

# chronyc sources
OR
# chronyc sources -v

Edellisen komennon osalta voit näyttää lähdekoodit -komennolla muita hyödyllisiä tietoja kustakin chronydin parhaillaan tutkimasta lähteestä (kuten drift rate ja offset estimointiprosessi).

# chronyc sourcestats
OR
# chronyc sourcestats -v

Voit tarkistaa chrony-seurannan suorittamalla seuraavan komennon.

# chronyc tracking

Tämän komennon lähdössä viitetunnus määrittää sen palvelimen nimen (tai IP-osoitteen), johon tietokone on parhaillaan synkronoitu, kaikista käytettävissä olevista palvelimista.

Chrony-aikalähteiden määrittäminen

Pää chrony-määritystiedosto sijaitsee osoitteessa /etc/chrony.conf (CentOS/RHEL/Fedora) tai /etc/chrony/chrony.conf (Ubuntu/Debian).

Kun asennat Linux-käyttöjärjestelmää pilveen, järjestelmässäsi tulisi olla joitain oletuspalvelimia tai palvelinjoukko, jotka on lisätty asennuksen aikana. Voit lisätä tai muuttaa oletuspalvelimia avaamalla määritystiedoston muokkausta varten:

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

Voit joko lisätä useita palvelimia palvelindirektiivin avulla kuvan mukaisesti.

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

tai useimmissa tapauksissa on parasta käyttää ntppool.org -ohjelmaa NTP-palvelimen löytämiseen. Tämän avulla järjestelmä voi yrittää löytää lähimmät saatavilla olevat palvelimet sinulle. Voit lisätä poolin käyttämällä allasdirektiiviä:

pool 0.pool.ntp.org burst

Tiedostossa on monia muita asetuksia. Kun olet tehnyt muutokset, käynnistä chrony-palvelu uudelleen.

$ sudo systemctl restart chrony		
OR
# systemctl restart chronyd

Jos haluat näyttää tietoja ajankohdista, joita chronyd kysyy, suorita seuraava komento vielä kerran.

# chronyc sources

Voit tarkistaa chrony-seurannan tilan suorittamalla seuraavan komennon.

# chronyc tracking

Jos haluat näyttää nykyisen kellonajan järjestelmässäsi, tarkista onko järjestelmän kello synkronoitu ja onko NTP todella aktiivinen, suorita timedatectl-komento:

# timedatectl

Se tuo meidät tämän oppaan loppuun. Jos sinulla on kysyttävää, ota meihin yhteyttä alla olevan kommenttiosan kautta. Lisätietoja: chronian avulla voit määrittää NTP: n virallisesta Ubuntun blogista.