Comment résoudre les problèmes de synchronisation NTP sur mes serveurs Amazon EC2 Linux ?

Lecture de 8 minute(s)
0

La date ou l’heure de mon instance Amazon Elastic Compute Cloud (Amazon EC2) Linux est inexacte ou n’est pas synchronisée avec le serveur de référence NTP (Network Time Protocol). Je souhaite résoudre ce problème.

Résolution

Pour résoudre les problèmes de synchronisation NTP, commencez par vérifier le serveur NTP utilisé par votre serveur Linux. Configurez ensuite la synchronisation NTP et vérifiez la connexion aux serveurs NTP.

Pour vous assurer que votre instance est synchronisée avec un serveur NTP, exécutez la commande suivante pour vérifier l’heure :

timedatectl

Vérifier le serveur NTP

Sur les serveurs Amazon Linux, utilisez chrony ou le démon NTP (ntpd) pour effectuer la synchronisation avec les serveurs NTP. Pour en savoir plus sur les configurations de serveurs NTP, consultez la page Configuring NTP using the chrony suite ou Configuring NTP using ntpd du site Web Red Hat Linux Enterprise (RHEL).

Remarque : il est recommandé d’utiliser chrony pour la synchronisation de l’heure, car chrony synchronise l’horloge système plus rapidement et avec une meilleure précision que ntpd. Pour en savoir plus, consultez la page differences between chrony and ntpd du site Web RHEL.

Pour vérifier si votre instance est configurée pour utiliser chrony ou le démon ntpd, exécutez les commandes suivantes :

chrony :

sudo systemctl status chronyd
chronyc tracking

ntpd :

sudo systemctl status ntpd
ntpstat

Pour supprimer ntpd et installer chrony sur votre instance Amazon Linux 2 ou Amazon Linux 2023, exécutez les commandes suivantes :

sudo yum erase ntp*
sudo yum install chrony

Pour démarrer et activer chrony, exécutez les commandes suivantes :

sudo systemctl start chronyd
sudo systemctl enable chronyd

Configurer les sources NTP

Consultez le fichier de configuration pour obtenir la liste des serveurs NTP configurés. L’emplacement par défaut du fichier de configuration est /etc/chrony.conf pour chrony et /etc/ntp.conf pour ntpd.

Amazon Linux 2

Configurez chrony pour utiliser les sources du répertoire /etc/chrony.d/ au lieu du fichier principal /etc/chrony.conf.

Amazon Linux 2023

Configurez chrony pour utiliser les sources du répertoire /run/chrony.d ou /etc/chrony.d/ au lieu du fichier principal /etc/chrony.conf.

Consultez le fichier de configuration /etc/chrony.conf pour l’emplacement des répertoires sources (sourcedir) ou consultez le fichier README dans /etc/chrony.d/.

Créez votre propre fichier source chrony dans l’un des répertoires sources, par exemple /etc/chrony.d/your-source-file.sources.

Notez à quel endroit les sources sont configurées. Vérifiez ensuite que vous utilisez les bons serveurs ou groupes.

Vous pouvez configurer la synchronisation NTP sur le service de synchronisation temporelle d’Amazon local ou sur le service de synchronisation temporelle d’Amazon public. Il est recommandé d’utiliser le service de synchronisation temporelle d’Amazon local sur vos instances. Utilisez le service de synchronisation temporelle d’Amazon public en tant que sauvegarde ou pour les appareils situés en dehors d’Amazon Virtual Private Cloud (Amazon VPC). Vous pouvez également configurer la synchronisation NTP avec le serveur NTP interne à votre organisation.

Après avoir configuré chrony et créé le fichier source, redémarrez le service. Exécutez ensuite les commandes suivantes sur Amazon Linux 2 ou Amazon Linux 2023 pour vérifier que votre instance est en cours d’exécution :

chrony :

sudo systemctl restart chronyd.service
sudo systemctl status chronyd.service

ntpd :

sudo systemctl restart ntpd.service
sudo systemctl status ntpd.service

Configurer la synchronisation NTP avec le service de synchronisation temporelle d’Amazon local

Utilisez l’adresse lien-local IPv4 169.254.169.123 dans votre VPC pour accéder au service de synchronisation temporelle d’Amazon.

Pour ajouter l’adresse lien-local IP du service de synchronisation temporelle d’Amazon en tant que source NTP, ouvrez le fichier de configuration dans lequel les sources NTP sont spécifiées. Par exemple, ouvrez le fichier /etc/chrony.conf pour chrony. Ajoutez ensuite la ligne suivante :

server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

Si vous utilisez l’adresse locale IPv6 accessible par les instances créées sur AWS Nitro System, ajoutez la ligne suivante au fichier de configuration :

server fd00:ec2::123 prefer iburst minpoll 4 maxpoll 4

Pour que les modifications prennent effet, exécutez la commande suivante pour redémarrer chrony :

sudo systemctl restart chronyd.service

Pour redémarrer ntpd, exécutez la commande suivante :

sudo systemctl restart ntpd.service

Remarque : il est recommandé d’utiliser les entrées de point de terminaison IPv4 et IPv6 séparément. Les paquets NTP IPv4 et IPv6 proviennent du même serveur local que celui de votre instance. Si vous configurez à la fois des points de terminaison IPv4 et IPv6, la précision de l’heure sur votre instance n’est pas améliorée.

Configurer la synchronisation NTP avec le service de synchronisation temporelle d’Amazon public

Une instance Linux ou un appareil externe connecté à Internet peut utiliser le point de terminaison public time.aws.com pour accéder au service de synchronisation temporelle d’Amazon.

Pour ajouter le point de terminaison public du service de synchronisation temporelle d’Amazon en tant que source NTP, ouvrez le fichier de configuration ntpd ou chrony dans lequel les sources NTP sont situées. Exécutez ensuite la commande suivante :

pool time.aws.com iburst

Pour que les modifications prennent effet, exécutez la commande suivante pour redémarrer chrony :

sudo systemctl restart chronyd.service

Pour redémarrer ntpd, exécutez la commande suivante :

sudo systemctl restart ntpd.service

Configurer la synchronisation NTP avec votre propre serveur NTP interne à votre organisation

Vous pouvez utiliser un serveur NTP interne à votre organisation. Il est également possible d’utiliser un serveur NTP accessible via l’Internet public.

Remarque : il est recommandé d’utiliser uniquement des serveurs NTP fiables.

Pour ajouter votre propre source NTP, ouvrez le fichier de configuration ntpd ou chrony dans lequel les sources NTP sont situées. Ajoutez ensuite la ligne suivante :

server internal-ntp-server-hostname-or-ip-address

Remarque : remplacez internal-ntp-server-hostname-or-ip-address par l’adresse IP ou le nom d’hôte de votre serveur NTP.

Assurez-vous que votre instance Linux peut accéder à l’adresse IP et au port du nouveau serveur NTP via le réseau.

Par défaut, chrony utilise l’heure de la synchronisation temporelle d’Amazon comme source via des points de terminaison lien-local et distants.

Amazon Linux 2023

Pour modifier la configuration par défaut dans Amazon Linux 2023, procédez comme suit :

  1. Modifiez le fichier /etc/sysconfig/chronyd pour qu’il inclue USE_AMAZON_NTP_POOL="no".

  2. Exécutez la commande suivante pour redémarrer chrony :

    sudo systemctl restart chrony.service

    Pour redémarrer ntpd, exécutez la commande suivante :

    sudo systemctl restart ntpd.service

Amazon Linux 2

Pour modifier la configuration par défaut dans Amazon Linux 2, procédez comme suit :

  1. Modifiez le fichier /etc/chrony.d/link-local.sources. Ajoutez un # au début de la ligne pour commenter l’entrée relative au service de synchronisation temporelle d’Amazon :

     #server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
  2. Exécutez la commande suivante pour redémarrer chrony :

     sudo systemctl restart chronyd.service

    Pour redémarrer ntpd, exécutez la commande suivante :

    sudo systemctl restart ntpd.service

Remarque : le fichier /etc/chrony.d/README fournit des informations sur les autres moyens de modifier la configuration par défaut.

Vérifier que votre instance est synchronisée avec l’heure exacte

Pour vérifier que votre instance est synchronisée avec l’heure exacte, exécutez les commandes suivantes :

chrony :

chronyc tracking
timedatectl

ntpd :

ntpstat
timedatectl

Pour répertorier toutes les sources configurées, exécutez les commandes suivantes :

chrony :

chronyc sources -v

ntpd :

ntpq -p

Étapes de dépannage supplémentaires

Si vous rencontrez toujours des problèmes de synchronisation NTP, prenez les mesures suivantes :

  • Consultez les fichiers journaux ntpd ou chrony pour savoir s’ils contiennent des messages d’erreur ou des avertissements susceptibles de vous aider à identifier le problème.
  • Si l’heure de votre système est différente de celle du serveur NTP, réglez manuellement l’heure de votre système pour qu’elle corresponde à l’heure du serveur NTP. Vous pouvez utiliser un outil tel que timedatectl.
  • Assurez-vous que votre serveur Linux peut résoudre les noms d’hôte du serveur NTP.
  • Assurez-vous que les pare-feux des systèmes d’exploitation, les groupes de sécurité, les listes de contrôle d’accès au réseau (ACL réseau) ou les tables de routage ne bloquent pas les serveurs NTP externes. L’instance nécessite un trafic sortant vers le port UDP 123. Pour les pare-feux sans état et les ACL réseau, veillez à autoriser le trafic de retour via les ports éphémères 1024 à 65535.
  • Si vous utilisez un jeu d’options DHCP personnalisé dans votre VPC, veillez à configurer correctement les adresses des serveurs NTP.

Informations connexes

Synchronisation précise de l’horloge et de l’heure sur votre instance EC2

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 mois