05 / 12 / 2016 Developers

Narzędzia do monitoringu systemów

Każdy właściciel lub opiekun systemu informatycznego powinien zadbać o jego niezawodność stosując szereg procesów i podejść gwarantujących wysoką jakość rozwiązań. Żaden jednak system nie jest w 100% odporny na upływ czasu i całkowicie bezobsługowy. Stosując opisane przeze mnie narzędzia będziemy ostrzeżeni przed anomaliami w naszym systemie i tym samym mogli zareagować, zanim dojdzie do awarii, a w przypadku usterki zostaniemy natychmiast powiadomieni i będziemy w stanie bezzwłocznie zareagować w celu skrócenia czasu niedostępności systemu.

Co monitorować?

W przypadku gdy odpowiadamy za infrastrukturę, na której działa system powinniśmy stosować narzędzia monitorujące zasoby takie jak wykorzystana przestrzeń dyskowa, zajętość łącza czy obciążenie procesorów. Jako wykonawcy lub opiekunowie systemu powinniśmy monitorować ścieżki krytyczne w oprogramowaniu, logi wyjątków generowane przez system, czas odpowiedzi na żądania (szybkość działania aplikacji). Jako właściciele systemu chcemy mieć informację o tym, czy system jest dostępny z perspektywy użytkownika systemu.

Narzędzia do monitorowania zasobów na infrastrukturze

Przytoczę klika najbardziej popularnych narzędzi do monitorowania zasobów, a następnie omówię głębiej te, których sam używałem:

  • Nagios
  • Cacti
  • Rrdtool
  • Zenoss
  • logwatch/logcheck
  • Icinga
  • Munin

Osobiście do monitorowania zasobów używamy narzędzia Munin. Charakteryzuje się on prostą instalacją i łatwym podłączaniem kolejnych maszyn do monitoringu. Szeroki zestaw dostępnych wtyczek sprawia, że system dopasuje się do wielu potrzeb charakterystycznych dla różnych użytkowników. Munin nie ma wbudowanego mechanizmu powiadamiania o anomaliach (bazuje na zewnętrznych usługach) dlatego konfiguracja może za pierwszym razem zająć nieco dłuższy czas.
Munin prezentuje nam wykresy z informacjami o zasobach w ujęciu dziennym, tygodniowym, miesięcznym i rocznym. Przykładowe wykresy opóźnienia odczytu oraz zajętości dysku:

Narzędzia do monitoringu systemów (2) Narzędzia do monitoringu systemów (1)

Narzędzia do monitorowania dostępności systemu informatycznego

W większości wdrażam aplikacje internetowe dlatego używam narzędzia, które potrafi monitorować systemu po protokole http/https. W naszej pracy najlepiej sprawdził się UptimeRobot. Narzędzie jest dostępne za darmo do pięćdziesięciu monitorowanych systemów z czasem informowania pięć minut. Jeżeli potrzebujemy większej ilości monitorowanych usług lub krótszy czas informowania o anomaliach możemy wykupić (niedrogi) abonament.
UptimeRobot oferuje kilka możliwości informowania o anomaliach:

  • email
  • sms
  • twitter
  • webservice – wywoła określony adres http z parametrami
  • email to sms (w Polsce tylko Plus oferuje taką usługę)

Posiada także szereg integracji:

  • boxcar (powiadomienia push dla iOS)
  • pushbullet (powiadomienia push dla Androida, iOS, a także przeglądarek)
  • pushover (j.w.)
  • hipchat
  • slack

Sam korzystam ze spiętego powiadomienia z UptimeRobot z HipChatem. Dodatkowo dla serwisów produkcyjnych mam zapięte powiadomienia email oraz sms. Z doświadczenia wiem, że UptimeRobot sprawdza się w monitorowaniu dostępności aplikacji internetowych, a powiadomienia o niedostępności pozwoliły mi już kilka razy ograniczyć czas niedostępności usługi przy wystąpieniu problemów. Dzięki UptimeRobot to właśnie my informujemy klientów o naprawieniu problemu, a nie klienci nas o niedostępności systemu.

Narzędzia do monitoringu systemów (3)

Oprócz aplikacji internetowych często oferujemy naszym klientom rozwój aplikacji mobilnych dla systemu Android. UptimeRobot może monitorować dla nas wywołania API udostępnianego dla aplikacji mobilnej. Natomiast monitorowanie samej aplikacji wykonujemy przy pomocy z zyskującym na popularności (po przejęciu przez Google) narzędziu Firebase. Funkcja CrashReport w Firebase dostarcza szerokiej informacji o błędach, które wystąpiły w czasie działania aplikacji u klientów dzięki czemu możemy skutecznie zareagować i opublikować poprawkę na dany błąd.

Podsumowanie

Nieważne czy jesteś właścicielem, wykonawcą czy odpowiadasz za infrastrukturę sprzętową aplikacji internetowej powinieneś wybrać dla siebie odpowiedni zestaw z przedstawionych narzędzi i wdrożyć je do swojego ekosystemu. Umożliwią Ci one szybko zareagować w przypadku awarii albo zapobiec jej dzięki odkrytym przez monitoring anomaliom.

FacebookTwitterGoogle+LinkedIn