Einstellen der Zeit einer Linux-Instance
Eine gleichbleibende und genaue Zeitreferenz ist für viele Serveraufgaben und -prozesse unerlässlich. Die meisten Systemprotokolle enthalten einen Zeitstempel, mit dem ermittelt wird, wann Probleme aufgetreten sind und in welcher Reihenfolge die Ereignisse stattgefunden haben. Wenn Sie eine AWS CLI oder AWS SDK verwenden, um Anfragen an Ihre Instance zu stellen, signieren diese Tools die Anfragen in Ihrem Auftrag. Stellen Sie sicher, dass das Datum und die Uhrzeit der Instance korrekt sind. Andernfalls entspricht das Datum in der Signatur möglicherweise nicht dem Datum der Anfrage und AWS lehnt daraufhin die Anfrage ab.
Amazon bietet den Amazon Time Sync Service an, auf den Sie über alle EC2-Instances zugreifen können. Er wird auch von anderen AWS-Services-Services verwendet. Dieser Service nutzt eine Flotte an mit Satelliten verbundenen und atomaren Referenzuhren in jeder AWS-Region für die Bereitstellung von aktuellen Zeitangaben des globalen Standards der koordinierten Weltzeit (UTC) über das Network Time Protocol (NTP). Der Amazon Time Sync Service mildert automatisch alle Schaltsekunden, die der UTC hinzugefügt werden.
Der Amazon Time Sync Service ist durch NTP unter der 169.254.169.123
-IPv4-Adresse oder der fd00:ec2::123
-IPv6-Adresse einer beliebigen Instance verfügbar, die in einer VPC ausgeführt wird. Die IPv6-Adresse ist nur auf Instances, die auf dem Nitro-System basieren zugänglich. Ihre Instance erfordert keinen Internetzugang. Sie müssen daher keine Sicherheitsgruppenregeln oder Netzwerk-ACL-Regeln konfigurieren, um Zugang zu gewähren. Die neuesten Versionen von Amazon Linux 2 und Amazon Linux-AMIs werden standardmäßig mit dem Amazon Time Sync Service synchronisiert.
Gehen Sie folgendermaßen vor, um den Amazon Time Sync Service mithilfe des chrony
-Clients auf Ihrer Instance zu konfigurieren. Alternativ können Sie externe NTP-Quellen verwenden. Weitere Informationen zu NTP und öffentlichen Zeitquellen finden Sie unter http://www.ntp.org/
Informationen für Windows-Instances finden Sie unter Die Zeit für eine Windows-Instance erstellen.
Für ein Backup für den Amazon-Time-Sync-link-local-Service und um Ressourcen außerhalb von Amazon EC2 mit dem Amazon Time Sync Service zu verbinden, können Sie den öffentlichen NTP-Pool von Amazon Time Sync verwenden, der sich unter time.aws.com befindet. Amazon Time Sync Public NTP, wie der Amazon Time Sync Service, mildert automatisch alle Schaltsekunden, die der UTC hinzugefügt werden. Amazon Time Sync Service Public NTP wird weltweit von unserer Flotte an mit Satelliten verbundenen und atomaren Referenzuhren in jeder AWS-Region unterstützt. Anweisungen für eine Konfiguration finden Sie unter Konfigurieren der Uhrzeit für Clients mit Amazon Time Sync Public NTP .
Themen
Konfigurieren der Uhrzeit für Clients mit Amazon Time Sync Public NTP
Sie können Ihren Client-Computer für die Verwendung von Amazon Time Sync konfigurieren.
So konfigurieren Sie Amazon Time Sync Public NTP für Apple macOS
-
Öffnen Sie auf Ihrem Client-Computer die System Preferences (Systemeinstellungen).
-
Wählen Sie Date & Time (Datum und Uhrzeit) und dann die Registerkarte Date & Time (Datum und Uhrzeit).
-
Um Änderungen vorzunehmen, wählen Sie das Schlosssymbol und geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden.
-
Geben Sie für Set date and time automatically (Datum und Uhrzeit automatisch festlegen) den Wert
time.aws.com
ein.
So konfigurieren Sie Amazon Time Sync Public NTP für Linux:chrony oder ntpd
-
Bearbeiten Sie
/etc/chrony/chrony.conf
(wenn Sie chrony verwenden) oder/etc/ntp.conf
(wenn Sie ntpd verwenden) mit Ihrem bevorzugten Texteditor.Bearbeiten Sie die Zeile
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
nicht, um sicherzustellen, dass Ihre EC2-Instance mit dem lokalen Amazon Time Sync Service verbunden bleibt.Entfernen oder kommentieren Sie andere Zeilen aus die mit
server
beginnen, um zu verhindern, dass Ihr Computer versucht, smeared und non-smeared Server zu vermischen.Fügen Sie die Zeile
pool time.aws.com iburst
hinzu. -
Wählen Sie NAME.
-
Neustarten des daemon mithilfe von
sudo service chrony force-reload
(für chrony) odersudo service ntp reload
(für ntpd)systemd-timesyncd
Stellen Sie in derselben Konfigurationsdatei den Inhalt des
[Time]
-Blocks auf[Time] NTP=FallbackNTP=time.aws.com
.Dadurch wird verhindert, dass versehentlich zwischen smeared und un-smeared Zeitservern gewechselt wird. Wenn Sie den Amazon Time Sync Service Public NTP als Fallback-Server konfigurieren, wird er als einziger NTP-Server ausgewählt.
-
Starten Sie
systemd-timesyncd
neu, indem Sie densystemctl restart systemd-timesyncd.service
-Befehl als Benutzer mit den entsprechenden Berechtigungen verwenden
Stellen Sie sicher, dass Ihr System den öffentlichen NTP-Pool von Amazon Time Sync mit
timedatectl show-timesync | grep
verwendet. Bei erfolgreicher Konfiguration wird die AusgabeServerName
angezeigt.ServerName
=time.aws.com -
Konfigurieren der Zeit für EC2-Instances mit IPv4-Adressen
In diesem Abschnitt wird beschrieben, wie die Zeit für EC2-Instances mit IPv4-Adressen abhängig vom Typ der Linux-Verteilung festgelegt wird.
Themen
Konfigurieren des Amazon-Time-Sync-Service in Amazon Linux AMI
Auf Amazon Linux 2 ist ein chrony
bereits installiert und für die Verwendung der IP-Adresse des Amazon Time Sync Service konfiguriert.
Im Amazon Linux AMI müssen Sie die chrony
-Konfigurationsdatei so bearbeiten, dass ein Servereintrag für den Amazon Time Sync-Service hinzugefügt wird.
So konfigurieren Sie Ihre Instance für die Nutzung des Amazon Time Sync-Service
-
Stellen Sie eine Verbindung mit Ihrer Instance her und deinstallieren Sie den NTP-Service.
[ec2-user ~]$
sudo yum erase 'ntp*'
-
Installieren Sie das Paket
chrony
.[ec2-user ~]$
sudo yum install chrony
-
Öffnen Sie die Datei
/etc/chrony.conf
mit einem Texteditor Ihrer Wahl, z. B. vim oder nano. Überprüfen Sie, ob die Datei die folgende Zeile enthält:server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
Wenn die Zeile vorhanden ist, ist der Amazon Time Sync Service bereits konfiguriert. Sie können mit dem nächsten Schritt fortfahren. Fügen Sie andernfalls die Zeile nach beliebigen anderen
server
- oderpool
-Anweisungen ein, die bereits in der Datei vorhanden sind. Speichern Sie Ihre Änderungen. -
Starten Sie den
chrony
-Daemon (chronyd
) neu.[ec2-user ~]$
sudo service chronyd restart
Starting chronyd: [ OK ]
Anmerkung Auf RHEL und CentOS (bis zu Version 6) lautet der Servicename
chrony
anstattchronyd
. -
Konfigurieren Sie den
chkconfig
mit dem Befehlchronyd
so, dass er bei jedem Systemstart startet.[ec2-user ~]$
sudo chkconfig chronyd on
-
Überprüfen Sie, ob
chrony
zum Synchronisieren der Zeit die169.254.169.123
-IP-Adresse verwendet.[ec2-user ~]$
chronyc sources -v
210 Number of sources = 7 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 169.254.169.123 3 6 17 43 -30us[ -226us] +/- 287us ^- ec2-12-34-231-12.eu-west> 2 6 17 43 -388us[ -388us] +/- 11ms ^- tshirt.heanet.ie 1 6 17 44 +178us[ +25us] +/- 1959us ^? tbag.heanet.ie 0 6 0 - +0ns[ +0ns] +/- 0ns ^? bray.walcz.net 0 6 0 - +0ns[ +0ns] +/- 0ns ^? 2a05:d018:c43:e312:ce77:> 0 6 0 - +0ns[ +0ns] +/- 0ns ^? 2a05:d018:dab:2701:b70:b> 0 6 0 - +0ns[ +0ns] +/- 0ns
In der zurückgegebenen Ausgabe gibt
^*
die bevorzugte Zeitquelle an. -
Überprüfen Sie die von
chrony
gemeldeten Zeitsynchronisierungsmetriken.[ec2-user ~]$
chronyc tracking
Reference ID : A9FEA97B (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed Nov 22 13:18:34 2017 System time : 0.000000626 seconds slow of NTP time Last offset : +0.002852759 seconds RMS offset : 0.002852759 seconds Frequency : 1.187 ppm fast Residual freq : +0.020 ppm Skew : 24.388 ppm Root delay : 0.000504752 seconds Root dispersion : 0.001112565 seconds Update interval : 64.4 seconds Leap status : Normal
Konfigurieren des Amazon-Time-Sync-Service auf Ubuntu
Sie müssen die chrony
-Konfigurationsdatei so bearbeiten, dass ein Servereintrag für den Amazon Time Sync-Service hinzugefügt wird.
So konfigurieren Sie Ihre Instance für die Nutzung des Amazon Time Sync-Service
Stellen Sie eine Verbindung mit Ihrer Instance her und installieren Sie mit
apt
daschrony
-Paket.ubuntu:~$
sudo apt install chrony
Anmerkung Sofern erforderlich, aktualisieren Sie Ihre Instance, indem Sie zuerst
sudo apt update
ausführen.Öffnen Sie die Datei
/etc/chrony/chrony.conf
mit einem Texteditor Ihrer Wahl, z. B. vim oder nano. Fügen Sie die folgende Zeile vor beliebigen anderenserver
- oderpool
-Anweisungen ein, die bereits in der Datei vorhanden sind. Speichern Sie dann Ihre Änderungen:server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
-
Den Service
chrony
neu starten.ubuntu:~$
sudo /etc/init.d/chrony restart
Restarting chrony (via systemctl): chrony.service.
-
Überprüfen Sie, ob
chrony
zum Synchronisieren der Zeit die169.254.169.123
-IP-Adresse verwendet.ubuntu:~$
chronyc sources -v
210 Number of sources = 7 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 169.254.169.123 3 6 17 12 +15us[ +57us] +/- 320us ^- tbag.heanet.ie 1 6 17 13 -3488us[-3446us] +/- 1779us ^- ec2-12-34-231-12.eu-west- 2 6 17 13 +893us[ +935us] +/- 7710us ^? 2a05:d018:c43:e312:ce77:6 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? 2a05:d018:d34:9000:d8c6:5 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? tshirt.heanet.ie 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? bray.walcz.net 0 6 0 10y +0ns[ +0ns] +/- 0ns
In der Ausgabe, die zurückgegeben wird, steht in der Zeile, die mit
^*
beginnt, die bevorzugte Zeitquelle. -
Überprüfen Sie die von
chrony
gemeldeten Zeitsynchronisierungsmetriken.ubuntu:~$
chronyc tracking
Reference ID : 169.254.169.123 (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed Nov 29 07:41:57 2017 System time : 0.000000011 seconds slow of NTP time Last offset : +0.000041659 seconds RMS offset : 0.000041659 seconds Frequency : 10.141 ppm slow Residual freq : +7.557 ppm Skew : 2.329 ppm Root delay : 0.000544 seconds Root dispersion : 0.000631 seconds Update interval : 2.0 seconds Leap status : Normal
Konfigurieren des Amazon-Time-Sync-Service auf SUSE Linux
Installieren Sie chrony von der Website https://software.opensuse.org/package/chrony
Öffnen Sie die Datei /etc/chrony.conf
mit einem Texteditor Ihrer Wahl, z. B. vim oder nano. Überprüfen Sie, ob die Datei die folgende Zeile enthält:
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
Wenn diese Zeile nicht vorhanden ist, fügen Sie sie hinzu. Kommentieren Sie alle anderen Server- oder Pool-Zeilen aus. Öffnen Sie yaST und aktivieren Sie den chrony-Service.
Konfigurieren der Zeit für EC2-Instances mit IPv6-Adressen
In diesem Abschnitt wird erläutert, wie der unter Konfigurieren der Zeit für EC2-Instances mit IPv4-Adressen beschriebene Prozess sich unterscheidet, wenn Sie Amazon Time Sync Service für EC2-Instances konfigurieren, die eine IPv6-Adresse verwenden. Es wird nicht der gesamte Konfigurationsprozess des Amazon Time Sync Service erklärt. Die IPv6-Adresse ist nur auf Instances, die auf dem Nitro-System basieren zugänglich.
Es wird nicht empfohlen, sowohl die IPv4-Adresse als auch die IPv6-Adresseinträge zusammen in der Datei chrony.conf zu verwenden. Die IPv4- und IPv6-NTP-Pakete stammen von demselben lokalen Server für Ihre Instance. Sie erhalten wahrscheinlich gemischte Ergebnisse mit einigen Paketen, die vom IPv4-Endpunkt stammen, und einige vom IPv6-Endpunkt, wenn Sie beide gleichzeitig verwenden.
Je nach verwendeter Linux-Verteilung verwenden Sie, wenn Sie den Schritt zum Bearbeiten der Datei chrony.conf erreichen, den IPv6-Endpunkt des Amazon Time Sync Service (fd00:ec2::123
) anstelle des IPv4-Endpunkts (169.254.169.123
):
server fd00:ec2::123 prefer iburst minpoll 4 maxpoll 4
Speichern Sie die Datei und überprüfen Sie, ob chrony
zum Synchronisieren der Zeit die fd00:ec2::123
-IPv6-Adresse verwendet:
[ec2-user ~]$
chronyc sources -v
Wenn Sie in der Ausgabe die fd00:ec2::123
-IPv6-Adresse sehen, ist die Konfiguration abgeschlossen.
Ändern der Zeitzone in Amazon Linux
Amazon Linux-Instances werden standardmäßig auf die Zeitzone UTC (Coordinated Universal Time) festgelegt. Sie können die Zeit auf einer Instance auf die lokale Zeit oder auf eine andere Zeitzone in Ihrem Netzwerk umstellen.
Diese Informationen gelten für Amazon Linux. Weitere Informationen zu anderen Verteilungen finden Sie in der jeweiligen Dokumentation.
So ändern Sie die Zeitzone in einer Amazon-Linux-2-Instance
-
Zeigen Sie die aktuelle Zeitzoneneinstellung des Systems an.
[ec2-user ~]$
timedatectl
-
Listen Sie die verfügbaren Zeitzonen auf.
[ec2-user ~]$
timedatectl list-timezones
-
Legen Sie die ausgewählte Zeitzone fest.
[ec2-user ~]$
sudo timedatectl set-timezone
America/Vancouver
-
(Optional) Bestätigen Sie durch erneutes Ausführen des Befehls timedatectl, dass die aktuelle Zeitzone auf die neue Zeitzone geändert wird.
[ec2-user ~]$
timedatectl
So ändern Sie die Zeitzone in einer Amazon-Linux-Instance
-
Ermitteln Sie die Zeitzone, die in Ihrer Instance verwendet wird. Das Verzeichnis
/usr/share/zoneinfo
enthält eine Hierarchie von Zeitzonendateien. Durchsuchen Sie die Verzeichnisstruktur an dieser Stelle, um eine Datei für Ihre Zeitzone zu finden.[ec2-user ~]$
ls /usr/share/zoneinfo
Africa Chile GB Indian Mideast posixrules US America CST6CDT GB-Eire Iran MST PRC UTC Antarctica Cuba GMT iso3166.tab MST7MDT PST8PDT WET Arctic EET GMT0 Israel Navajo right W-SU ...
Einige Einträge an dieser Stelle sind Verzeichnisse (z. B.
America
). Diese enthalten Zeitzonendateien für einzelne Städte. Suchen Sie nach der Stadt, in der Sie sich befinden (oder einer Stadt in Ihrer Zeitzone), um die Instance auf die entsprechende Zeitzone einzustellen. -
Aktualisieren Sie die Datei
/etc/sysconfig/clock
mit der neuen Zeitzone. In diesem Beispiel verwenden wir die Zeitzonendatendatei für Los Angeles,/usr/share/zoneinfo/America/Los_Angeles
.-
Öffnen Sie die Datei
/etc/sysconfig/clock
mit einem Texteditor Ihrer Wahl (z. B. vim oder nano). Sie müssen sudo mit dem Editor verwenden, da die Datei/etc/sysconfig/clock
Eigentum vonroot
ist.[ec2-user ~]$
sudo
nano
/etc/sysconfig/clock -
Suchen Sie den Eintrag
ZONE
und geben Sie die Zeitzonendatei an (ohne den folgenden Teil des Pfads:/usr/share/zoneinfo
). Ändern Sie den EintragZONE
beispielsweise wie folgt, um die Zeitzone „Los Angeles“ einzustellen:ZONE="
America/Los_Angeles
"Anmerkung Ändern Sie den Eintrag
UTC=true
NICHT. Dieser Eintrag gehört zur Hardware-Uhr und muss nicht geändert werden, um für eine Instance eine andere Zeitzone einzustellen. -
Speichern Sie die Datei und schließen Sie den Texteditor.
-
-
Erstellen Sie eine symbolische Verknüpfung zwischen
/etc/localtime
und der Zeitzonendatei, damit die Instance die Zeitzonendatei beim Abrufen der Ortszeit findet.[ec2-user ~]$
sudo ln -sf /usr/share/zoneinfo/
America/Los_Angeles
/etc/localtime -
Starten Sie das System neu, damit alle Services und Anwendungen die neuen Zeitzoneninformationen erhalten.
[ec2-user ~]$
sudo reboot
-
(Optional) Bestätigen Sie mit dem Befehl date, dass die aktuelle Zeitzone auf die neue Zeitzone aktualisiert wird. Die aktuelle Zeitzone wird in der Ausgabe angezeigt. Im folgenden Beispiel ist die aktuelle Zeitzone PDT, die sich auf die Zeitzone Los Angeles bezieht.
[ec2-user ~]$
date
Sun Aug 16 05:45:16 PDT 2020
Vergleichen von Zeitstempeln
Wenn Sie den Amazon Time Sync Service verwenden, können Sie die Zeitstempel Ihrer Amazon-EC2-Instances mit ClockBound vergleichen, um den tatsächlichen Zeitpunkt eines Ereignisses zu ermitteln. ClockBound misst die Taktgenauigkeit Ihrer EC2-Instance und ermöglicht es Ihnen zu überprüfen, ob sich ein bestimmter Zeitstempel in Bezug auf die aktuelle Uhr Ihrer Instance in der Vergangenheit oder Zukunft befindet. Diese Informationen sind wertvoll, um die Reihenfolge und Konsistenz von Ereignissen und Transaktionen über EC2-Instances hinweg unabhängig vom geografischen Standort jeder Instance zu bestimmen.
ClockBound ist ein Daemon und eine Bibliothek auf Open-Source-Basis. Weitere Informationen über ClockBound, einschließlich Installationsanweisungen, finden Sie unter ClockBound