| Termin | Definicja |
|---|---|
| Alerty o zatrzymaniu usług | Alerty o zatrzymaniu usług to powiadomienia informujące o nieoczekiwanym zakończeniu działania kluczowej usługi serwera. Co oznacza alert o zatrzymaniu usługiAlert o zatrzymaniu usługi jest komunikatem generowanym przez system operacyjny albo narzędzie monitorujące, gdy proces odpowiedzialny za określoną funkcję przestaje działać. Usługa może zakończyć pracę prawidłowo, na przykład podczas planowanego wyłączenia, albo nieoczekiwanie, wskutek błędu programu, braku pamięci, uszkodzenia plików, problemu z uprawnieniami lub niedostępności zależności. Sam alert informuje o zdarzeniu, ale nie wskazuje jeszcze jego przyczyny. W systemie Windows informacje o usługach są rejestrowane między innymi przez Service Control Manager w dzienniku System. Zdarzenia o numerach 7031 i 7034 mogą wskazywać na nieoczekiwane zakończenie działania usługi, natomiast pełna interpretacja wymaga sprawdzenia nazwy usługi, kodu zakończenia, czasu zdarzenia oraz komunikatów zapisanych bezpośrednio przez aplikację. W systemach Linux usługi zarządzane przez systemd można analizować na podstawie stanu jednostki, dziennika systemowego i informacji o procesie, który został zakończony. Jak powstaje wiarygodne powiadomienieMonitoring nie powinien opierać się wyłącznie na sprawdzeniu, czy proces jest widoczny na liście aktywnych procesów. Proces może działać, ale nie odpowiadać na żądania, mieć zablokowaną kolejkę albo utracić połączenie z bazą danych, systemem plików lub inną usługą. Dlatego poprawny alert często wykorzystuje kilka sygnałów: stan procesu, kod odpowiedzi portu, odpowiedź na żądanie kontrolne, czas odpowiedzi oraz dostępność wymaganych zależności. Istotne jest także rozróżnienie zatrzymania chwilowego od awarii trwałej. Narzędzie monitorujące może wykonać ponowną próbę po krótkim czasie, aby wyeliminować fałszywe alarmy wywołane chwilowym przeciążeniem lub restartem. Jednocześnie zbyt długie opóźnienie powiadomienia utrudnia reakcję. W praktyce stosuje się więc progi, takie jak liczba kolejnych nieudanych kontroli, minimalny czas niedostępności oraz osobne reguły dla restartu, braku odpowiedzi i przekroczenia limitu zasobów. Każda reguła powinna wskazywać, jaki stan uznaje się za awarię i do kogo ma trafić komunikat. Informacje potrzebne do ustalenia przyczynyAnaliza alertu powinna rozpocząć się od ustalenia dokładnej osi czasu. Należy porównać moment wygenerowania powiadomienia z chwilą zakończenia procesu, ostatnim poprawnym sprawdzeniem oraz wpisami w dzienniku systemowym i logu aplikacji. Różnica między tymi czasami może wynikać z interwału monitorowania, buforowania komunikatów albo opóźnienia w dostarczeniu powiadomienia. Bez osi czasu łatwo pomylić skutek z przyczyną, na przykład uznać restart usługi za źródło problemu, mimo że był on automatyczną reakcją na wcześniejszy błąd. Warto sprawdzić kod zakończenia procesu, komunikaty poprzedzające awarię, zużycie procesora i pamięci, dostępne miejsce na dysku oraz uprawnienia konta uruchamiającego usługę. Znaczenie ma również ostatnia zmiana konfiguracji, aktualizacja programu, sterownika lub systemu. Jeżeli usługa uruchamia się ponownie, sam fakt odzyskania stanu „działa” nie oznacza usunięcia problemu. Powtarzające się restarty mogą powodować utratę części zadań, przerwanie połączeń i narastanie liczby błędów. Dlatego alert powinien zawierać nazwę komponentu, host, czas zdarzenia, poprzedni stan, aktualny stan i odnośnik do odpowiednich logów. Postępowanie po otrzymaniu alertuPo otrzymaniu powiadomienia należy najpierw ustalić zakres skutków: czy niedostępna jest pojedyncza funkcja, czy cały system, oraz czy inne usługi zależne nadal działają. Następnie trzeba zabezpieczyć informacje diagnostyczne przed ich nadpisaniem przez kolejne restarty. Przydatne są kopie dzienników, opis ostatnich zmian i wyniki kontroli wykonanych przed ponownym uruchomieniem. Restart może przywrócić dostępność, ale powinien być traktowany jako działanie przywracające działanie, a nie jako dowód naprawy. Jeżeli usługa zatrzymuje się cyklicznie, należy szukać przyczyny powtarzalnej: wyczerpywania pamięci, błędnej konfiguracji, braku uprawnień, uszkodzenia plików, konfliktu portu albo problemu z komponentem zależnym. Po usunięciu przyczyny trzeba potwierdzić działanie kontrolą funkcjonalną, a nie tylko obecnością procesu. W środowisku z wieloma komputerami należy również sprawdzić, czy alert dotyczy właściwego hosta i właściwej instancji usługi, ponieważ pomyłka identyfikatora może skierować diagnostykę do działającego systemu zamiast do urządzenia, na którym wystąpiła awaria. |