Nikt nie chce żeby jego strona lub aplikacja webowa była niedostępna. Niestety awarie się zdarzają i co prawda możemy się przed nimi zabezpieczyć co jednak w większości przypadków wiąże się z poniesieniem dużych kosztów – droższe plany hostingowe lub te dostępne w chmurze obliczeniowej mogą zminimalizować ryzyko awarii.
Załóżmy jednak że pogodziliśmy się z faktem że nasza strona internetowa może być czasem niedostępna, warto byłoby o tym wiedzieć od razu jak tylko coś takiego nastąpi prawda? Zatem dziś pokażę jak bezkosztowo ustawić „ping test” w Azure dla strony internetowej/aplikacji webowej niekoniecznie znajdującej się w chmurze obliczeniowej ale ogólnie gdzieś w Internecie.
Application Insights
Usługa Application Insights w momencie pisania tego artykułu jest w trybie Preview a co za tym idzie korzystanie z większości jej funkcji jest darmowe 🙂 Dzięki Application Insights dostajemy dostęp do ogromnej liczby wykresów, danych o ruchu, obciążeniu strony internetowej, itp. oraz możliwość tworzenia alarmów, której przyjrzymy się bliżej w dalszej części wpisu. Aby utworzyć konto Application Insights należy z portalu Azure wybrać w menu usług Application Insights, podać kilka podstawowych informacji jak nasza indywidualna nazwa tworzonej usługi, lokacja (w chwili obecnej jedyna dostępna to centralne Stany Zjednoczone), grupa zasobów i subskrypcja i kilka chwil później możemy już korzystać z nowego zasobu.
Nie będę omawiał wszystkich dostępnych opcji bo jest tego sporo, a jak każda usługa dostępna w Azure również i ta jest bardzo dobrze udokumentowana. Dodam tylko że większość danych i statystyk ze strony jest zbierana dzięki dodaniu kilku linijek kodu w źródle strony, z której te dane chcemy pobierać, a dla Web Appa w Azure wystarczy zintegrować jedno z drugim jednym kliknięciem przycisku 🙂 Dodatkowo już przy tworzeniu nowego Web Appa możemy mu od razu ustawić Application Insights.
Konfiguracja powiadomień niedostępności strony www
Zajmijmy się konkretnym przykładem ustawienia alarmu niedostępności strony www w Application Insights. Ja wykorzystam ten blog działający w Azure jako cel testu, ale nic nie stoi na przeszkodzie żeby była to jakakolwiek inna strona internetowa.
W portalu Azure wchodzę na kartę mojego konta Application Insights i wybieram z menu Availability. Klikam Add web test.
Taki test dostępności polega po prostu na automatycznym pingowaniu przez Azure podanej strony internetowej co jakiś czas. W zależności od odpowiedzi na ping podnoszony jest alarm i platforma wysyła maila z powiadomieniem na podany adres e-mail. Jakie to proste 🙂
Tak naprawdę do konfiguracji wystarczy podać tylko nazwę testu i adres strony, która będzie pingowana. Warto jednak poświęcić konfiguracji trochę więcej uwagi i wybrać lokacje z których będą wysyłane pingi (dostępne są wszystkie te gdzie znajdują się centra danych Azure) oraz kryteria kiedy zostanie podniesiony alarm i na jaki adres e-mail wysłać powiadomienie. Te opcje ustawia się w zakładce Alerts przy tworzeniu testu.
I to wszystko 🙂 Wszystko trzeba zapisać i wraz z upływem czasu cudowne wykresiki dostępności powinny się zacząć wypełniać! Co jednak ważniejsze teraz gdy w kilku lokacjach (ich liczba zależy od naszej konfiguracji) z których wykonywane są pingi zakończą się one niepowodzeniem zostanie wysłane adekwatne powiadomienie.
A później jak już pingi zaczną dochodzić przyjdzie jeszcze powiadomienie że strona już działa.
Prawda że fajne? 🙂 Swoją drogą ciekawe czy Application Insights można wykorzystać do ataków DDoS na strony internetowe? 😉