Monitoring w IT, czyli co i jak monitorować

Monitoring w IT, czyli co i jak monitorować

Kategoria: Monitoring, Podcast


02.07.2021

Wpis powstał na podstawie cyklu Próba Połączenia, podcastu, w którym inżynierowie rozmawiają z inżynierami na tematy związane z sieciami, bezpieczeństwem i DevOps.

Monitoring w IT może przybierać różne postaci. Najczęściej stosujemy go, aby sprawdzić, jak działa www, aplikacja, usługa, sieć. Ile czasu potrzeba na odpowiedź serwera? Ile trwa wysyłanie zapytania do bazy danych? Czy wirtualna maszyna działa i robi to prawidłowo? Ile zasobów zużywa i czy mamy ich w zapasie?  

Odpowiedzi na te pytania pomogą zoptymalizować procesy i zawczasu zareagować na awarię lub nawet jej przeciwdziałać.  

Jak daleko sięga monitoring?  

Optymalizacja ma związek z efektywnością, a ta dotyczy nie tylko maszyn. Nieco kontrowersyjne, aczkolwiek w czasach coraz częstszej pracy zdalnej jest monitorowanie, co dzieje się na komputerach pracowników. Można sprawdzić, czy podwładny rzeczywiście pracuje, czy spędza czas w social mediach. Można to porównać do monitoringu osiedla za pomocą systemu kamer.  

Nie chodzi wyłącznie o inwigilację. Może się zdarzyć, że na skrzynkę użytkownika przyjdzie e-mail z podejrzanym linkiem. Monitoring może to zawczasu wyłapać i wtedy mamy szansę ostrzec użytkownika, aby tego linku nie otwierał. Tak działa choćby ochrona DNS, o której pisaliśmy przy okazji rozmowy o Cisco Umbrella. 

Skąd wiedzieć, jaki cel obrać przy monitoringu? 

Jedną z przesłanek, które nasuwają się na myśl, jako pierwsze jest komunikat dla użytkowników końcowych, a mianowicie – “mamy monitoring – zaufajcie nam bardziej”, ale z perspektywy osoby zarządzającej danym rozwiązaniem chodzi o coś zupełnie innego.  

Bez względu na obrany cel i konfigurację, monitoring pomaga odtworzyć, co działo się na wirtualnej maszynie w przeszłości. Dzięki temu, jak po nitce do kłębka, możemy znaleźć zdarzenie albo serię zdarzeń, które dadzą nam odpowiedź, dlaczego coś nie działa lub dlaczego nie działa tak, jak byśmy chcieli.  

Celem, do którego warto wykorzystać monitoring jest np. praca nad aplikacją. A stosujemy go, żeby ją lepiej poznać i optymalizować. W tym przypadku szybsze i czytelniejsze odczytywanie danych ułatwią narzędzia, które generują różnego rodzaju tablice podsumowujące, np. kolorowe dashboardy, jak te, które stosujemy do monitorowania Wi-Fi.  

Bywa, że pracujemy na usługach, które muszą działać 24h na dobę, 365 dni w roku. Powinniśmy wiedzieć, gdy coś przestaje działać, zanim infolinię zablokują użytkownicy, którzy nagle zostali odcięci od usługi. 

W tym celu warto ustawić alert na e-mail lub sms, który powiadomi nas o odchyleniach w działaniu wirtualnej maszyny. 

Jakie narzędzie do monitoringu wybrać?  

Popularne narzędzia to: ZabbixNagios, pomocne przede wszystkim pod kątem monitorowania infrastruktury sieciowej. Każde narzędzie ma swoją specyfikę. Ważne, aby wybrać to najwygodniejsze dla zespołu. Nie wybierajmy najbardziej popularnego. Przetestujmy kilka i wybierzmy to, które najlepiej spełnia potrzeby. 

Narzędzia w chmurze, on-premise czy własne Data Center?  

Jak przy każdej aplikacji mamy wybór, czy będziemy działać w chmurze czy on-premise. Nie ma jednoznacznej odpowiedzi, która opcja jest lepsza. To mocno zależy od potrzeb i budżetu.  

Narzędzia chmurowe są droższe, za to zdejmują z nas obowiązek pilnowania, czy monitoring działa oraz samej konfiguracji, bo monitoring online jest już wstępnie przygotowany do sprawdzania konkretnych elementów. Podpowiada też, z jakich predefiniowanych alertów warto skorzystać.  

Monitoringu w wersji cloud nie będziemy mogli wykorzystać, jeśli polityka firmy, u której narzędzie będzie instalowane, zabrania tego. Może tak być, że firma nie chce się dzielić danymi i nie pozwala instalować dodatkowych agentów lub fizycznie nie ma możliwości instalowania dodatkowych agentów.  

Jeśli mamy ograniczony budżet, a zależy nam na monitoringu online, możemy spróbować rozwiązania hybrydowego i wykorzystać chmurowy monitoring do badania wyłącznie najbardziej newralgicznych elementów.   

Z kolei plusem narzędzi on-premise jest to, że często są to rozwiązania Open Source, zatem można skorzystać z nich za darmo w wersji podstawowej. A za dodatkowe opcje, które niejednokrotnie będą nam potrzebne, trzeba będzie dopłacić. Niemniej jednak możliwość przetestowania narzędzia bardzo pomoże w podjęciu decyzji, które ostatecznie wybrać.  

Narzędzia chmurowe, krótka charakterystyka: New Relic, DataDog, Elastic Stack  

New Relic 

Jest popularnym narzędziem chmurowym do monitorowania działania aplikacji. Umożliwia monitorowanie aplikacji napisanych w Java, .Net, php, node.js, Ruby, Go.  

DataDog 

Datadog łączy metryki, tracki (ślady), logi (dzienniki), wyniki testów UX i nie tylko, w jednym panelu. 

Użytkownicy lubią go za to, że łączy funkcjonalności klilku aplikacji w jednej (można monitorować nim infrastrukturę i aplikację) oraz integruje się bez problemu np. ze Slackiem.  

ELK Stack 

ELK Stack, popularnie zwany Elastickiem, to połączenie trzech produktów Open Source: Elasticsearch, Logstash, Kibana. Elasticsearch to baza danych NoSQL oparta na wyszukiwarce Lucene. Logstash to narzędzie, które akceptuje dane wejściowe z różnych źródeł, wykonuje różne transformacje i eksportuje dane w określonej przez nas formie. Kibana to z kolei warstwa wizualizacji, która działa nad Elasticsearch. 

W uproszczeniu można powiedzieć, że Logstash zbiera dane, zapisuje je i wysyła do bazy Elasticserach, a Kibana odpowiada za wizualizację wyników.  

Razem tworzą jeden z najpopularniejszych “kombajnów” do monitoringu w IT.  

Wybrałem narzędzie do monitoringu i co dalej? 

Trzeba mieć na uwadze, że obsługa monitoringu nie kończy się na instalacji narzędzia i ustawieniu alertów. Gdy ruch na maszynie, którą monitorujemy rośnie, musimy mieć pewność, że przepustowość narzędzia jest wystarczająca, aby wychwycić dane, które nas interesują.  

Zatem… 

Skąd będziemy wiedzieć czy monitoring działa?  

To bardzo dobre pytanie, bo nic nam po monitoringu, o którym nie wiemy, że NIE działa. Dlatego warto mieć narzędzie monitorujące na innym serwerze lub wykorzystać do monitoring chmurowy do obserwacji czy agent monitorujący działa.  

Niestandardowe wykorzystanie narzędzi do monitoringu 

Dodając trochę swojej pracy można dopasować narzędzie do niestandardowych potrzeb. Np. Elastic Stack można po drobnych zmianach wykorzystać do monitoringu urządzeń IoT.  

Zrobiliśmy tak, żeby monitorować 500 urządzeń zainstalowanych w akademiku.  

Zastosowaliśmy rozszerzenie do Elastic Stack, które sami napisaliśmy.  Zbierało dane i różne metryki z urządzeń w akademiku. Ważnym elementem rozszerzenia był sposób formatowania danych, aby były one zrozumiałe dla zespołu.  

Następnie stworzyliśmy dashboardy pod własny użytek. Ten przypadek pokazuje, że możemy wykorzystać narzędzie do innego celu, niż ten, do którego zostało oryginalnie stworzone.  

Być może w Waszym przypadku nie będzie konieczności tworzenia odrębnego rozszerzenia. Zarówno do Zabbixa, jak i Nagiosa istnieje multum pluginów. Społeczność tworzy z każdą chwilą coś nowego. Chcemy Wam tylko pokazać, że możliwości są ogromne. Ważnym jest, aby skonkretyzować swój cel, a wtedy środki się znajdą – lub ktoś kto napisze potrzebne rozszerzenie.  

Czy monitoring może pomóc przeciwdziałać awariom? 

Monitoring to nie tylko możliwość reagowania na błędy. Monitoring można skonfigurować, żeby dawał znać zanim status usługi zmieni się z up na down. Bardzo prostym przypadkiem jest kwestia kończącego się miejsca na dysku lub dużego zużycia pamięci RAM. Można ustawić alert informujący o tym wcześniej.  

Jak wspominaliśmy na początku artykułu, monitoring może też ostrzegać o niebezpiecznych linkach, zanim ktoś w nie kliknie.  

Machine Learning i AI w monitoringu 

Zwiastunem nadchodzących problemów może być nietypowy ruch. Na przykład, jeżeli wiemy, że zazwyczaj największy ruch mamy w dzień, a z danych wynika, że w nocy się zwiększa, to znaczy, że coś jest nie tak i trzeba przejrzeć wykresy, aby wykryć z czego wynika odchylenie od normy.   

W tym przypadku zadaniem sztucznej inteligencji jest, aby agent sam nauczył się, które zdarzenia są poprawne, a które odbiegają od normy. Gdy dostaniemy informację o nietypowym ruchu, trzeba przejrzeć dzienniki, aby znaleźć źródło problemu, bo prawdopodobnie ktoś nas próbował zaatakować.  

Machine Learning i AI przydadzą się szczególnie do monitoringu bezpieczeństwa i wykrywania włamań. Zwykły alert powiadomi nas dopiero gdy ruch, np. na stronie www, przekroczy ustawiony przez nas limit. Nie dostaniemy automatycznego powiadomienia, gdy ten ruch będzie zbliżony do progu alarmowego. Inaczej jest w przypadku Machine Learning i AI. Tu system sam wychwyci anomalię, bazując na długookresowych raportach i danych, na które zwrócimy mu uwagę.  

Jak widać monitoring IT to bardzo szerokie zagadnienie, więc pewnie jeszcze wrócimy do tego tematu w innych wątkach. Zachęcamy do zadawania pytań w komentarzach. Pomoże nam to jeszcze lepiej przygotować treści dla naszych czytelników.

Autor

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Sign up to our newsletter!


 

Newsletter