Comment configurer la synchronisation de l'heure sur Ubuntu 16.04

De Get Docs
Aller à :navigation, rechercher

Introduction

Le chronométrage précis est devenu un élément essentiel des déploiements de logiciels modernes. Qu'il s'agisse de s'assurer que les journaux sont enregistrés dans le bon ordre ou que les mises à jour de la base de données sont appliquées correctement, le temps de désynchronisation peut entraîner des erreurs, une corruption des données et d'autres problèmes difficiles à déboguer.

Ubuntu 16.04 a une synchronisation de l'heure intégrée et activée par défaut à l'aide du service timesyncd de systemd. Dans cet article, nous examinerons certaines commandes de base liées au temps, vérifierons que timesyncd est actif et apprendrons comment installer un autre service de temps réseau.

Conditions préalables

Avant de commencer ce didacticiel, vous aurez besoin d'un serveur Ubuntu 16.04 avec un utilisateur non root et sudo, comme décrit dans ce didacticiel de configuration du serveur Ubuntu 16.04.

Navigation dans les commandes de temps de base

La commande la plus basique pour connaître l'heure de votre serveur est date. N'importe quel utilisateur peut taper cette commande pour imprimer la date et l'heure :

date
OutputWed Apr 26 17:44:38 UTC 2017

Le plus souvent, votre serveur utilisera par défaut le fuseau horaire UTC, comme indiqué dans la sortie ci-dessus. UTC correspond au Temps universel coordonné, l'heure à zéro degré de longitude. L'utilisation cohérente du temps universel réduit la confusion lorsque votre infrastructure s'étend sur plusieurs fuseaux horaires.

Si vous avez des exigences différentes et que vous devez modifier le fuseau horaire, vous pouvez utiliser la commande timedatectl pour le faire.

Tout d'abord, répertoriez les fuseaux horaires disponibles :

timedatectl list-timezones

Une liste des fuseaux horaires s'imprimera sur votre écran. Vous pouvez appuyer sur SPACE pour faire défiler les pages vers le bas et sur b pour faire défiler les pages vers le haut. Une fois que vous avez trouvé le bon fuseau horaire, notez-le puis tapez q pour quitter la liste.

Réglez maintenant le fuseau horaire avec timedatectl set-timezone, en veillant à remplacer la partie en surbrillance ci-dessous par le fuseau horaire que vous avez trouvé dans la liste. Vous devrez utiliser sudo avec timedatectl pour effectuer ce changement :

sudo timedatectl set-timezone America/New_York

Vous pouvez vérifier vos modifications en exécutant à nouveau date :

date
OutputWed Apr 26 13:55:45 EDT 2017

L'abréviation du fuseau horaire doit refléter la nouvelle valeur choisie.

Maintenant que nous savons comment vérifier l'horloge et définir les fuseaux horaires, assurons-nous que notre heure est correctement synchronisée.

Contrôler timesyncd avec timedatectl

Jusqu'à récemment, la plupart des synchronisations de l'heure du réseau étaient gérées par le démon Network Time Protocol ou ntpd. Ce serveur se connecte à un pool d'autres serveurs NTP qui lui fournissent des mises à jour constantes et précises de l'heure.

L'installation par défaut d'Ubuntu utilise maintenant timesyncd au lieu de ntpd. timesyncd se connecte aux mêmes serveurs de temps et fonctionne à peu près de la même manière, mais est plus léger et plus intégré à systemd et au fonctionnement de bas niveau d'Ubuntu.

Nous pouvons interroger le statut de timesyncd en exécutant timedatectl sans arguments. Vous n'avez pas besoin d'utiliser sudo dans ce cas :

timedatectl
OutputLocal time: Wed 2017-04-26 17:20:07 UTC
  Universal time: Wed 2017-04-26 17:20:07 UTC
        RTC time: Wed 2017-04-26 17:20:07
       Time zone: Etc/UTC (UTC, +0000)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

Cela imprime l'heure locale, l'heure universelle (qui peut être la même que l'heure locale, si vous n'êtes pas passé du fuseau horaire UTC) et certaines informations sur l'état de l'heure du réseau. Network time on: yes signifie que timesyncd est activé et NTP synchronized: yes indique que l'heure a été synchronisée avec succès.

Si timesyncd n'est pas activé, activez-le avec timedatectl :

sudo timedatectl set-ntp on

Exécutez à nouveau timedatectl pour confirmer l'état de l'heure du réseau. La synchronisation réelle peut prendre une minute, mais finalement Network time on: et NTP synchronized: devraient afficher yes.

Passer à ntpd

Bien que timesyncd convienne à la plupart des besoins, certaines applications très sensibles aux moindres perturbations temporelles peuvent être mieux servies par ntpd, car il utilise des techniques plus sophistiquées pour maintenir constamment et progressivement l'heure du système sur la bonne voie.

Avant d'installer ntpd, nous devons désactiver timesyncd :

sudo timedatectl set-ntp no

Vérifiez que timesyncd est désactivé :

timedatectl

Recherchez Network time on: no dans la sortie. Cela signifie que timesyncd a été arrêté. Nous pouvons maintenant installer le package ntp avec apt-get :

sudo apt-get install ntp

ntpd sera lancé automatiquement après l'installation. Vous pouvez interroger ntpd pour obtenir des informations sur l'état afin de vérifier que tout fonctionne :

sudo ntpq -p
Outputremote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
1.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
2.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
3.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
ntp.ubuntu.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000
-makaki.miuku.ne 210.23.25.77     2 u   45   64    3  248.007   -0.489   1.137
-69.10.161.7     144.111.222.81   3 u   43   64    3   90.551    4.316   0.550
+static-ip-85-25 130.149.17.21    2 u   42   64    3   80.044   -2.829   0.900
+zepto.mcl.gg    192.53.103.108   2 u   40   64    3   83.331   -0.385   0.391

ntpq est un outil de requête pour ntpd. Le drapeau -p demande des informations sur les serveurs NTP (ou peers) auxquels ntpd s'est connecté. Votre sortie sera légèrement différente, mais devrait répertorier les serveurs de pool Ubuntu par défaut ainsi que quelques autres. Gardez à l'esprit que cela peut prendre quelques minutes à ntpd pour établir des connexions.

Conclusion

Dans cet article, nous avons montré comment afficher l'heure du système, modifier les fuseaux horaires, travailler avec le timesyncd par défaut d'Ubuntu et installer ntpd. Si vous avez des besoins de chronométrage plus sophistiqués que ce que nous avons couvert ici, vous pouvez vous référer à la documentation NTP officielle, et également consulter le projet de pool NTP, un groupe mondial de volontaires fournissant une grande partie de l'infrastructure NTP dans le monde.