Sprint Data Center • ul. Jagiellończyka 26, 10-062 Olsztyn
+48 89 522 12 20
info@sprintdatacenter.pl

Synchronizacja czasu na serwerze: logi bez NTP niewiele znaczą

blog informacyjny dla użytkowników usług SDC

Created with Sketch.

Synchronizacja czasu na serwerze: logi bez NTP niewiele znaczą (grafika wygenerowana przez AI)

Synchronizacja czasu na serwerze: logi bez NTP niewiele znaczą

Zegar serwera rozjeżdża się sam z siebie, powoli i bez żadnego komunikatu. Dopóki wszystko działa, nikt tego nie zauważa. Problem pojawia się w dniu, w którym musisz ułożyć zdarzenia z kilku maszyn w jedną oś czasu, a każda podaje inną godzinę.

Co psuje się, gdy czas się rozjedzie

Korelacja logów. Analiza incydentu polega na łączeniu zdarzeń z zapory, serwera aplikacji i bazy danych w jedną sekwencję. Jeśli zegary różnią się o kilka minut, kolejność przestaje być pewna, a wraz z nią wniosek o tym, co było przyczyną, a co skutkiem.

Kody jednorazowe. Uwierzytelnianie dwuskładnikowe oparte na kodach czasowych zakłada zgodność zegarów po obu stronach. Przy większym odchyleniu kody przestają działać i wygląda to na awarię aplikacji, a nie na problem z czasem.

Replikacja i rozproszone bazy. Mechanizmy rozstrzygania konfliktów i kolejność transakcji opierają się na znacznikach czasu. Rozjechany zegar potrafi wywołać błędy, których nie da się powtórzyć na żądanie.

Certyfikaty i sesje. Weryfikacja okresu ważności certyfikatu to porównanie z czasem lokalnym. Serwer z zegarem przestawionym w przód zacznie odrzucać połączenia jako wygasłe.

Znacznik czasu jako dowód

Wpis w logu jest wart tyle, ile jego znacznik czasu. Przy odtwarzaniu incydentu, rozliczeniu SLA albo pokazywaniu audytorowi, kiedy dokładnie nastąpiło zdarzenie, zapis z niezsynchronizowanej maszyny osłabia całą argumentację. Opisywaliśmy wcześniej, co się dzieje, gdy audytor prosi o logi sprzed pół roku. Retencja to jednak tylko połowa sprawy. Druga połowa to pewność, że zapisana godzina odpowiada rzeczywistości.

Do tego dochodzi kwestia strefy czasowej. Logi warto zapisywać w UTC, a przeliczać dopiero na etapie prezentacji. Inaczej dwa razy w roku, przy zmianie czasu, dostajesz w zapisach godzinę, która wystąpiła dwukrotnie, albo taką, której nie było wcale.

Jak ustawić to sensownie

Nowoczesne systemy mają wbudowaną usługę synchronizacji i zwykle wystarczy ją skonfigurować, a nie instalować cokolwiek dodatkowego. Kilka zasad, które robią różnicę:

  • Wskaż co najmniej trzy niezależne źródła czasu, nie jedno. Pojedyncze źródło, które zacznie podawać błędną wartość, nie ma się z czym skonfrontować.
  • W większej infrastrukturze postaw własny serwer czasu i skieruj do niego pozostałe maszyny. Wtedy nawet gdy całość odjedzie od czasu wzorcowego, pozostanie wewnętrznie spójna, a korelacja logów nadal będzie działać.
  • Nie ustawiaj czasu skokowo na działającej produkcji. Nagłe cofnięcie zegara potrafi zdezorientować aplikacje i bazy. Usługi synchronizacji potrafią zamiast tego płynnie przyspieszać lub zwalniać zegar, aż odchylenie zniknie.
  • Zadbaj o to, by ruch do serwerów czasu nie był blokowany przez zaporę. To częsta przyczyna sytuacji, w której usługa jest włączona, a synchronizacji nie ma.

Monitoruj odchylenie, nie tylko usługę

Sprawdzanie, czy usługa działa, nie wystarcza, bo może działać i nie synchronizować niczego. Monitorować trzeba samo odchylenie od źródła czasu i ustawić alarm na wartości, które zaczynają mieć znaczenie dla Twoich systemów.

Warto też sprawdzić serwery, o których nikt nie pamięta: maszyny wirtualne wznowione z migawki, sprzęt sieciowy, kontrolery zarządzania, urządzenia kontroli dostępu. To właśnie one najczęściej mają zegar z zupełnie innej epoki, a bywają źródłem zapisów potrzebnych w analizie.

Warstwa, za którą odpowiada centrum danych

Przy serwerze dedykowanym konfiguracja czasu w systemie operacyjnym jest po Twojej stronie, podobnie jak reszta warstwy systemowej. Dostawca odpowiada za to, by maszyna miała stabilne, ciągłe zasilanie i łączność, bez których żadna synchronizacja nie ma sensu. W kolokacji SDC zasilanie jest gwarantowane i dwutorowe, oparte o UPS i agregat prądotwórczy. Dostęp serwisowy działa w trybie 24/7/365 (źródło: sprintdatacenter.pl/kolokacja-serwerow-w-sdc).

Podsumowanie

Ustaw kilka niezależnych źródeł czasu, zapisuj logi w UTC i monitoruj odchylenie, a nie samą usługę. Koszt tej konfiguracji to kilkanaście minut. Koszt jej braku poznajesz dopiero przy pierwszej poważnej analizie incydentu.

Planujesz infrastrukturę, w której zdarzenia z wielu maszyn muszą się zgadzać co do sekundy? Napisz do nas albo zobacz ofertę serwerów dedykowanych.

FAQ – najczęściej zadawane pytania o synchronizację czasu

O ile realnie potrafi rozjechać się zegar serwera?

Zależy od sprzętu i obciążenia, ale dryf rzędu kilku sekund na dobę nie jest niczym niezwykłym. W skali miesiąca daje to różnicę, która wystarczy, by pomieszać kolejność zdarzeń między maszynami przy analizie incydentu.

Czy maszyny wirtualne wymagają osobnej uwagi?

Tak. Zegar maszyny wirtualnej bywa zależny od hosta, a wznowienie z migawki albo migracja potrafią cofnąć go o dowolną wartość. Warto sprawdzić, czy system gościa synchronizuje się niezależnie, czy ufa hostowi, i świadomie wybrać jedno z tych rozwiązań.

Czy trzeba stawiać własny serwer czasu?

Przy kilku maszynach zwykle nie. Przy kilkunastu i więcej własne źródło czasu upraszcza sprawę, bo cała infrastruktura pozostaje wewnętrznie spójna nawet przy problemach z łącznością na zewnątrz. To także mniejszy ruch wychodzący i jedno miejsce do kontroli.

Czy logi lepiej zapisywać w czasie lokalnym czy UTC?

W UTC. Czas lokalny zmienia się dwa razy w roku, przez co część znaczników staje się niejednoznaczna. Przeliczenie na czas lokalny należy robić przy wyświetlaniu, a nie przy zapisie.


Artykuł powstał z wykorzystaniem narzędzi sztucznej inteligencji (AI) pod nadzorem zespołu Sprint Data Center. Grafika ilustracyjna została wygenerowana przez AI.