Ich habe auf einigen (Hardware-) Servern ein seltsames Verhalten bei der Änderung der Systemzeit festgestellt: In / var / logs / syslog ändert sich die Datums- und Uhrzeitangabe vor jeder Protokollnachricht manchmal in eine zufällige und wird in der nächsten Nachricht wieder normal, wie folgt:
22. Februar 2018 09:09:30 ... 22. Februar 2018 09:09:32 ... 13. Januar 2610 15:37:42 ... 22. Februar 2018 09:09:33 ... 22. Februar 2018 09:09:34 ...
Wie im Beispiel kann die plötzliche Änderung der Datums- und Uhrzeit bis zu Hunderten von Jahren entfernt sein.
Ich kann bestätigen, dass die Protokollnachrichten mit den seltsamen Zeitstempeln nicht aus einem bestimmten Prozess stammen - sie können nur zufällig für jeden einzelnen auftreten.
Die Dauer zwischen zwei abnormalen Zeitänderungen variiert zwischen einigen Minuten und einigen Stunden (ich vermute jedoch, dass die abnormalen Zeitänderungen häufiger auftreten könnten, aber viele davon werden nicht im Syslog angezeigt, da nicht jede Sekunde Protokolle geschrieben werden).
Da dies auf mehr als einem Server geschieht, gehe ich davon aus, dass es sich nicht um ein Hardwareproblem handelt.
Weitere Informationen zu den Servern: Es handelt sich um eine Openstack-Installation mit einem Controller und einigen Rechenknoten. Auf jedem Server wird ein NTP-Dienst ausgeführt. Der Controller ist so konfiguriert, dass er Zeit von seiner eigenen Hardware-Uhr benötigt, und die Rechenknotenserver synchronisieren die Zeit vom Controller. Beachten Sie, dass jeder Server ungewöhnliche Zeitänderungen in seinem eigenen Tempo aufweist. Es sieht so aus, als ob die "falsche Zeit" nicht über ntp vom Controller synchronisiert wird.
Ich hatte den Verdacht, dass die Gastsysteme (virtuelle Maschinen) auf Rechenknoten die Zeit ihres Hostsystems beeinflussen könnten. Dies kann jedoch nicht erklären, warum der Controller das gleiche Problem hat, wenn keine virtuelle Maschine ausgeführt wird.
Ich brauche eine Methode, um zu erkennen: Wer hat die Systemzeit geändert und wie geschieht dies?
quelle
hwclock
Schleife anzeigen? Etwas wie:while true; do hwclock; sleep 5; done
Antworten:
Dieses Skript zeigt an, wann eine Zeitverschiebung auftritt und welcher Unterschied im Prozessbaum besteht. Dies sollte Ihnen dabei helfen, dies zu identifizieren, wenn dies durch einen Prozess verursacht wird, der die Systemzeit ändert. Es wird auf dem Terminal gedruckt und in timedrift.log im aktuellen Arbeitsverzeichnis angemeldet.
Dank des ursprünglichen Skripts in der unerklärlichen Zeit springt der CRON-Fehler, den Stone als Kommentar erwähnte.
Können Sie auch kommentieren, ob Sie rsyslog verwenden und wenn ja, welche Version? Sehen Sie es außerhalb des Bereichs von rsyslog (dh Apache-Protokolle usw.)? Dieser Fehler sieht einfach aus und es wäre schön, ihn zu bestätigen oder auszuschließen.
quelle
Eigentlich ist dies ein Duplikat von @Stones Kommentar. Machen Sie einfach allen klar, dass sie eine Antwort haben.
Kurz gesagt, es gibt einen Fehler in der Version von rsyslog, die ich verwende. Dadurch wird die empfangene Syslog-Nachricht um einen beliebigen Zeitraum verzögert. Fehlerbericht ist hier. Das Upgrade von rsyslog löste das Problem. Es ist nicht die Schuld des Kernels oder von CRON.
quelle