Monitoring stron: dobre praktyki
W teorii, domyślne ustawienia testu monitorującego powinny się sprawdzić w większości przypadków. Jednak praktyka pokazuje, że akurat nasz przypadek nie należy do tej większości. Dlatego trzeba i warto poświęcić trochę czasu na optymalną konfigurację monitoringu. Ważne jest także odpowiednie przygotowanie po stronie monitorowanego serwisu i samej organizacji.
Oto kilkanaście dobrych praktyk korzystania z usług monitoringu stron, zebranych przez zespół, który pomagał klientom w konfiguracji tysięcy testów monitorujących i analizował tysiące awarii.
Używaj docelowego adresu URL, bez przekierowań
Często strona internetowa działa pod wieloma adresami. Jeżeli jest dobrze skonfigurowana, to wszystkie alternatywne adresy przekierowują na jeden główny.
Ustawiając monitoring strony, wprowadź ten główny (docelowy) adres. Wprawdzie monitoring potrafi podążać za przekierowaniami, ale je zlicza, a gdy jest ich zbyt wiele, raportuje problem.
Używaj przyjaznych nazw
Nawet jeżeli każdy z testów, które zdefiniujesz, będzie miał inny (unikalny) adres URL, nadaj testom własne nazwy. Na przykład „Lista artykułów – test szybkości”.
Dzięki czytelnym nazwom będzie Ci łatwiej rozpoznać testy w raportach, a długie adresy URL nie będą niepotrzebnie wydłużać alertów SMS, powodując czasem konieczność wysłania alertu w dwóch wiadomościach.
Nie tylko strona główna
O ile do wykrycia niedostępności serwisu wystarczy sprawdzanie samej strony głównej, o tyle inne cechy – na przykład szybkość wczytywania – warto monitorować również na wybranych podstronach. Najlepiej wybrać po jednym adresie URL z każdego typu podstrony, np. jedną stronę kategorii, jeden produkt czy artykuł itd.
Dodaj monitoring do whitelisty na firewallu
Żeby mieć pewność, że połączenia wykonywane przez aplikację monitorującą nie są blokowane, dodaj wszystkie stacje monitorujące do whitelisty firewalla Twojego serwera webowego.
Niektóre zabezpieczenia potrafią automatycznie zablokować adresy IP, z których wykonywane są częste i regularne połączenia.
Dodaj monitoring do whitelisty na serwerze pocztowym
Podobnie, jak wyżej – również wiadomości elektroniczne wysyłane przez monitoring mogą z różnych powodów być blokowane. Żeby tego uniknąć, dodaj adres email nadawcy – a najlepiej całą domenę aplikacji monitorującej – do whitelisty na serwerze pocztowym.
Wyklucz testowy ruch ze statystyk
Wizyty generowane przez podstawowe testy monitorujące – sprawdzające dostępność czy treść – są niewidoczne dla Google Analytics i podobnych pakietów statystycznych działających w oparciu o JavaScript.
Ale połączenia generowane przez bardziej zaawansowane testy – renderujące stronę w celu zmierzenia czasu wczytywania lub przetestowania działania funkcji lub procesów – będą już rejestrowane. Żeby wykluczyć je ze statystyk ruchu, utwórz widok zawierający filtr oparty na zmiennej „User-Agent”, zawierającej zazwyczaj nazwę przeglądarki, a w przypadku usług monitoringu nazwę robota.
Weryfikuj zawartość monitorowanej strony
Podstawowy monitoring dostępności sprawdza jedynie odpowiedź serwera, czyli weryfikuje, czy strona rzeczywiście działa. Inna sprawa, jak działa. Serwer może zwrócić prawidłowy nagłówek „200 OK” jednocześnie wyświetlając pustą lub totalnie rozsypaną stronę.
Żeby takie sytuacje również były wykrywane, użyj monitorowania treści. Zdefiniuj tekst (fragment treści lub ewentualnie kodu), której obecność będzie sprawdzana na stronie. Najlepiej, żeby nie był to fragment szablonu, tylko treść pochodząca z bazy danych. Wtedy monitoring będzie jednocześnie weryfikował, czy baza danych działa poprawnie.
Testuj procesy w całości
Jeżeli monitorujesz serwis, który jest bardziej skomplikowany niż blog lub strona firmowa, to chcesz sprawdzać, czy poszczególne procesy działają poprawnie. Dobrym przykładem jest proces zakupowy w sklepie internetowym.
Układając scenariusz takiego testu postaraj się, żeby proces był testowany w całości, a przynajmniej, żeby robot testujący mógł zajść jak najdalej.
Przykładowo, żeby test procesu zakupowego nie zatrzymał się na płatności, wygeneruj na potrzeby monitorowania kod rabatowy obniżający ceny o 100%.
Właściwie obsługuj testowe zgłoszenia
Monitoring formularzy oraz procesów w wielu przypadkach generuje testowe zgłoszenia w serwisie – zapytania z formularza kontaktowego, subskrypcje newslettera, zamówienia w e-sklepie. Żeby nie tracić czasu pracowników na procesowanie takich zgłoszeń, można po stronie serwisu uwzględnić mechanizmy usuwające lub ignorujące rekordy zawierające np. adresy email wykorzystywane do testowego wypełniania formularzy.
Monitoruj wygasanie domen i certyfikatów SSL
Twój rejestrator domen oraz wystawca certyfikatu SSL na pewno w zautomatyzowany sposób przypominają Ci o wygasaniu usług. Ale czasem może się zdarzyć, że wysłane przez nich wiadomości nie dotrą, albo zostaną przeoczone. Nie zaszkodzi mieć drugą warstwę zabezpieczenia przed przegapionym wygaśnięciem w postaci zewnętrznego monitoringu.
Dobierz właściwą częstotliwość monitorowania
Testy monitorujące dostępność strony nie powinny działać rzadziej niż co 1 minutę. Nie stanowią one znaczącego obciążenia dla monitorowanego serwera. Zmniejszenie częstotliwości, na przykład, do 5 minut sprawiłoby, że:
- awarie trwające poniżej 5 minut mogłyby zostać zupełnie niezauważone,
- krótkie, jednominutowe zdarzenia byłyby rejestrowane jako niedostępności trwające 5 minut,
- procentowy wskaźnik dostępności (uptime) w danym okresie byłby nieprawdziwy.
Testy innych typów – np. mierzące czas wczytywania stron albo testujące procesy według scenariuszy – nie muszą już działać tak często. A ze względu na ich wpływ na działanie serwisu (np. generowanie testowych zamówień) nawet nie powinny. W zależności od potrzeb, mogą być wykonywane np. co 10, 30 lub 60 minut.
Ustaw limity odpowiednio do swojego serwisu
Jeżeli obserwujesz częste, ale krótkie zdarzenia typu „Connection Timeout”, może pojawić się pokusa zwiększenia limitu maksymalnego czasu na odpowiedź serwera. Nie jest to dobry pomysł, bo 5 sekund to naprawdę dużo czasu dla serwera na odpowiedź. Jeżeli Twojemu serwerowi zajmuje to więcej czasu, to prawdopodobnie jest z nim coś nie tak.
Z kolei w przypadku monitorowania szybkości strony, limit czasu wczytywania strony trzeba ustawić na wartość nieco wyższą niż zmierzony średni czas wczytywania.
Przykładowo, jeżeli normalnie strona wczytuje się w całości w czasie około 3 sekund, ustaw limit na 5 sekund. Dostaniesz alert, kiedy Twoja strona będzie się ładować co najmniej o 2 sekundy dłużej niż zwykle.
Nie przesadź z alertami
Schemat powiadomień również trzeba ustawić zależnie od potrzeb.
O nieplanowanej niedostępności kluczowego serwisu odpowiednie osoby muszą zostać powiadomione niezwłocznie, niezależnie od pory dnia i różnymi kanałami. Najlepiej, jeśli alerty będą wysyłane do nich co kilka minut (ale więcej niż 1), dopóki awaria się nie zakończy.
W przypadku mniej krytycznych serwisów lub testów, schemat powiadomień powinien być łagodniejszy. Można zablokować wysyłanie SMSów w nocy i w dni wolne, albo nawet umożliwić wysyłanie tylko w godzinach pracy. Wystarczy powiadomienie o wykryciu awarii oraz o jej zakończeniu.
Jeżeli takiemu niekrytycznemu serwisowi często zdarzają się chwilowe niedostępności (trwające minutę lub dwie), można tak ustawić test, aby wysyłał alert dopiero, jeżeli awaria trwa co najmniej 3 minuty.
Skonfiguruj okna serwisowe
Prawie każdy serwis internetowy miewa planowane niedostępności. Kiedyś trzeba wykonać aktualizacje, zainstalować modyfikacje itd. Zazwyczaj odbywa się to w nocy, kiedy ruch jest minimalny i nieszczególnie przeszkadza użytkownikom. Ale monitoring, rejestrując wszystkie awarie, uwzględni planowe niedostępności w raportach oraz wyliczeniach procentowej dostępności.
Nie ma sensu ręcznie wyłączać i włączać monitorowania. Zamiast tego trzeba zdefiniować okna serwisowe – jednorazowe lub cykliczne – czyli takie momenty, w których monitorowanie zostanie tymczasowo wstrzymane. Pozwoli to uniknąć uwzględniania w uptime strony planowanych wyłączeń.
Przygotuj procedury w organizacji
Awarie się zdarzają i nawet najlepszy monitoring tego nie zmieni. Musisz się spodziewać, że kiedyś wykryje prawdziwą awarię i Cię zaalarmuje. Twoja firma musi być na to przygotowana.
Chodzi o to, żeby zminimalizować czas, który upłynie od momentu wykrycia awarii do jej usunięcia. Do tego potrzebne są odpowiednie procedury, dzięki którym w sytuacji awaryjnej wszyscy będą wiedzieli, jak postępować i nie będą tracić czasu.
Wybierz subskrypcję roczną
Są dwa ważne powody, dla których warto wybrać płatności roczne zamiast miesięcznych.
Pierwszy – bardziej oczywisty – to cena, która w przypadku rocznej subskrypcji jest po prostu niższa.
Drugi powód jest mniej ewidentny, ale niemniej ważny. Korzystając z subskrypcji miesięcznej w ciągu roku masz 11 okazji więcej, żeby stracić ciągłość monitorowania w wyniku wygaśnięcia subskrypcji – np. z powodu przeterminowania się karty kredytowej.
Poproś o pomoc w konfiguracji
Monitoring stron jest usługą typu SaaS (Software as a Service) oraz – co za tym idzie – samoobsługową. Masz możliwość samodzielnego skonfigurowania wszystkich aspektów monitorowania. Jednak w przypadku bardziej skomplikowanych testów – np. monitorowania procesów wg scenariuszy – warto poprosić pracowników usługodawcy o pomoc.
Nie chodzi o to, że sobie nie poradzisz. Bo oczywiście dasz radę. Po prostu oni robili to tak wiele razy i widzieli tyle różnych przypadków, że zrobią to lepiej. Mają w głowie dziesiątki takich „dobrych praktyk” jak te powyżej.