Dans ce tutoriel, nous verrons comment installer et configurer Chrony , un client et serveur NTP alternatif pour les systèmes de type Unix. Chrony peut synchroniser l'horloge système plus rapidement avec une meilleure précision de l'heure et cela peut être particulièrement utile pour les systèmes qui ne sont pas en ligne tout le temps. Chrony est gratuit, open source et prend en charge les variantes GNU/Linux et BSD telles que FreeBSD, NetBSD, macOS et Solaris.
Installer Chrony
Chrony est disponible dans les dépôts par défaut de la plupart des distributions Linux. Si vous utilisez Arch Linux, exécutez la commande suivante pour l'installer :
$ sudo pacman -S chrony
Sur Debian, Ubuntu, Linux Mint :
$ sudo apt-get install chrony
Sur Fedora :
$ sudo dnf install chrony
Une fois installé, démarrez chronyd.service démon s'il n'est pas déjà lancé :
$ sudo systemctl start chronyd.service
Faites en sorte qu'il démarre automatiquement à chaque redémarrage à l'aide de la commande :
$ sudo systemctl enable chronyd.service
Pour vérifier si le service Chronyd.service a été démarré, exécutez :
$ sudo systemctl status chronyd.service
Si tout est OK, vous verrez une sortie comme ci-dessous.
● chrony.service - chrony, an NTP client/server Loaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: ena Active: active (running) since Wed 2018-10-17 10:34:53 UTC; 3min 15s ago Docs: man:chronyd(8) man:chronyc(1) man:chrony.conf(5) Main PID: 2482 (chronyd) Tasks: 1 (limit: 2320) CGroup: /system.slice/chrony.service └─2482 /usr/sbin/chronyd Oct 17 10:34:53 ubuntuserver systemd[1]: Starting chrony, an NTP client/server... Oct 17 10:34:53 ubuntuserver chronyd[2482]: chronyd version 3.2 starting (+CMDMON Oct 17 10:34:53 ubuntuserver chronyd[2482]: Initial frequency -268.088 ppm Oct 17 10:34:53 ubuntuserver systemd[1]: Started chrony, an NTP client/server. Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 85.25.84.166 Oct 17 10:35:03 ubuntuserver chronyd[2482]: Source 85.25.84.166 replaced with 2403 Oct 17 10:35:03 ubuntuserver chronyd[2482]: Selected source 91.189.89.199 Oct 17 10:35:06 ubuntuserver chronyd[2482]: Selected source 106.10.186.200
Comme vous pouvez le voir, le service Chrony est démarré et fonctionne !
Configurer Chrony
Les clients NTP doivent savoir quels serveurs NTP ils doivent contacter pour obtenir l'heure actuelle. Nous pouvons spécifier les serveurs NTP dans le serveur ou pool directive dans le fichier de configuration NTP. Habituellement, le fichier de configuration par défaut est /etc/chrony/chrony.conf ou /etc/chrony.conf selon la version de la distribution Linux. Pour une meilleure fiabilité, il est recommandé de spécifier au moins trois serveurs.
Les lignes suivantes ne sont qu'un exemple tiré de mon serveur Ubuntu 18.04 LTS.
[...] # About using servers from the NTP Pool Project in general see (LP: #104525). # Approved by Ubuntu Technical Board on 2011-02-08. # See http://www.pool.ntp.org/join.html for more information. pool ntp.ubuntu.com iburst maxsources 4 pool 0.ubuntu.pool.ntp.org iburst maxsources 1 pool 1.ubuntu.pool.ntp.org iburst maxsources 1 pool 2.ubuntu.pool.ntp.org iburst maxsources 2 [...]
Comme vous le voyez dans la sortie ci-dessus, Projet de pool NTP a été défini comme serveur de temps par défaut. Pour ceux qui se demandent, le projet de pool NTP est le cluster de serveurs de temps qui fournit un service NTP à des dizaines de millions de clients à travers le monde. C'est le serveur de temps par défaut pour Ubuntu et la plupart des autres principales distributions Linux.
Ici,
- l'explosion est utilisée pour accélérer la synchronisation initiale.
- les maxsources fait référence au nombre maximum de sources NTP.
Veuillez vous assurer que les serveurs NTP que vous avez choisis sont bien synchronisés, stables et proches de votre emplacement pour améliorer la précision de l'heure avec les sources NTP.
Gérer Chronyd depuis la ligne de commande
Chrony a un utilitaire de ligne de commande nommé chronyc pour contrôler et surveiller le chrony démon (chronyd).
Pour vérifier si chrony est synchronisé, nous pouvons utiliser le suivi commande comme indiqué ci-dessous.
$ chronyc tracking Reference ID : 6A0ABAC8 (t1.time.sg3.yahoo.com) Stratum : 3 Ref time (UTC) : Wed Oct 17 11:48:51 2018 System time : 0.000984587 seconds slow of NTP time Last offset : -0.000912981 seconds RMS offset : 0.007983995 seconds Frequency : 23.704 ppm slow Residual freq : +0.006 ppm Skew : 1.734 ppm Root delay : 0.089718960 seconds Root dispersion : 0.008760406 seconds Update interval : 515.1 seconds Leap status : Normal
Nous pouvons vérifier les sources de temps actuelles utilisées par chrony avec la commande :
$ chronyc sources 210 Number of sources = 8 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^- chilipepper.canonical.com 2 10 377 296 +102ms[ +104ms] +/- 279ms ^- golem.canonical.com 2 10 377 302 +105ms[ +107ms] +/- 290ms ^+ pugot.canonical.com 2 10 377 297 +36ms[ +38ms] +/- 238ms ^- alphyn.canonical.com 2 10 377 279 -43ms[ -42ms] +/- 238ms ^- dadns.cdnetworks.co.kr 2 10 377 1070 +40ms[ +42ms] +/- 314ms ^* t1.time.sg3.yahoo.com 2 10 377 169 -13ms[ -11ms] +/- 80ms ^+ sin1.m-d.net 2 10 275 567 -9633us[-7826us] +/- 115ms ^- ns2.pulsation.fr 2 10 377 311 -75ms[ -73ms] +/- 250ms
L'utilitaire Chronyc peut trouver les statistiques de chaque source, telles que le taux de dérive et le processus d'estimation du décalage, en utilisant sourcestats commande.
$ chronyc sourcestats 210 Number of sources = 8 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== chilipepper.canonical.com 32 16 89m +6.293 14.345 +30ms 24ms golem.canonical.com 32 17 89m +0.312 18.887 +20ms 33ms pugot.canonical.com 32 18 89m +0.281 11.237 +3307us 23ms alphyn.canonical.com 31 20 88m -4.087 8.910 -58ms 17ms dadns.cdnetworks.co.kr 29 16 76m -1.094 9.895 -83ms 14ms t1.time.sg3.yahoo.com 32 16 91m +0.153 1.952 +2835us 4044us sin1.m-d.net 29 13 83m +0.049 6.060 -8466us 9940us ns2.pulsation.fr 32 17 88m +0.784 9.834 -62ms 22ms
Si votre système n'est pas connecté à Internet, vous devez informer Chrony que le système n'est pas connecté à Internet. Pour ce faire, exécutez :
$ sudo chronyc offline [sudo] password for sk: 200 OK
Pour vérifier l'état de vos sources NTP, exécutez simplement :
$ chronyc activity 200 OK 0 sources online 8 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
Comme vous le voyez, toutes mes sources NTP sont en panne pour le moment.
Une fois que vous êtes connecté à Internet, informez simplement Chrony que votre système est de nouveau en ligne en utilisant la commande :
$ sudo chronyc online 200 OK
Pour afficher l'état des sources NTP, exécutez :
$ chronyc activity 200 OK 8 sources online 0 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
Pour une explication plus détaillée de toutes les options et paramètres, reportez-vous aux pages de manuel.
$ man chronyc
$ man chronyd
Et, c'est tout pour le moment. J'espère que cela a été utile. Dans les tutoriels suivants, nous verrons comment configurer un serveur NTP local à l'aide de Chrony et configurer les clients pour qu'ils l'utilisent pour synchroniser l'heure.
Restez à l'écoute !