Monitoring jako nieodzowny element infrastruktury IT

infrastruktura IT
monitoring
Karol Olszewski
14.12.2017 Karol Olszewski

W XXI wieku pojęcie, nazwane profesjonalnie „przerwaniem ciągłości działania usług informatycznych” oznacza stratę pieniędzy dla firmy. Niedziałająca skrzynka mailowa, niezapowiedziany reset firmowego serwera, czy odłączenie połowy serwerowni od internetu, to, proporcjonalnie do skali, utrata pieniędzy dla firmy. Wraz ze wzrostem świadomości wśród osób zarządzających firmą zarówno od strony biznesowej jak i informatycznej, rozwinęła się gałąź informatyki zwana „Monitoringiem IT”.

Obecnie aplikację pozwalają na monitorowanie praktycznie każdego elementu IT we wszystkich warstwach OSI, co sprawiło, że powyższe powiadomienia są znacznie rzadsze od tych opisanych poniżej. Jednakże podstawową funkcją każdego monitoringu, jest informacja o awarii.

Wymienione powyżej przykłady awarii są rezultatem zdarzeń, na które w większości mogliśmy mieć wpływ. Skrzynka pocztowa przestała działać, bo przekroczyła przydzielony limit pamięci. Firmowy serwer zresetował się, bo aplikacje na nim działające wielokrotnie przekroczyły normę procesora. Połowa serwerowni została pozbawiona „wyjścia na świat”, bo port w switchu od łącza zapasowego był uszkodzony od trzech miesięcy. Dochodzimy tutaj do drugiej, najprawdopodobniej tej ważniejszej funkcji monitoringu – optymalizacji środowiska IT.



Monitoring elementów infrastruktury IT


Infrastruktura IT całej serwerowni to obszar, którego monitorowanie jest bardzo dużym zagadnieniem, które w przypadku Data Space podzielone jest na kilka nieco mniejszych segmentów.

Monitoring urządzeń sieciowych (routery, switche) to przede wszystkim monitorowanie ruchu sieciowego, czyli odczyt ilość przetransferowanych bitów na danym porcie. Informacje, które oprócz ruchu sieciowego są jeszcze ważne dla administratorów, to status portów oraz obciążenie samego urządzenia.

Monitoring serwerów, czyli monitorowanie hardware’u. Odpytując serwer, przede wszystkim interesuje nas obciążenie zasobów – procesorów, pamięci RAM i zapełnienie dysku twardego. Każdy serwer ma też z domysłu włączone monitorowanie prędkości wentylatorów (wyrażaną w procentach), temperatury urządzenia czy status portów na karcie sieciowej.

Monitoring aplikacji, czyli działania mające na celu jak najlepszą optymalizację. Oprócz monitorowania samej dostępności aplikacji różnymi protokołami czy portami bardzo ważny jest czas odpowiedzi poszczególnych pomniejszych funkcjonalności aplikacji.

Monitoring usług, czyli podstawa monitoringu tzw. z zewnątrz. Mówimy tutaj o podstawowej informacji dla administratora „czy usługa, którą utrzymuję, a z której mój pracodawca utrzymuje nas, jest dostępna?”. Wykorzystuje się tutaj podstawowe zapytania: ping, HTTP, HTTPS, czy SMTP. Dzisiejsze aplikacje pozwalają odpytywać naszą usługę z masy miejsc na całym świecie, jako częstotliwość przyjmuje się raz na 5 minut przy normalnym SLA, a raz na 30 sekund – 1 minutę przy usługach bardzo wrażliwych.

Monitoring procesów służy głównie do odczytania trendów w utylizacji zasobów poszczególnych aplikacji. Zdarzają się sytuację, że aplikacja w związku np. z większą ilością aktywnych użytkowników zwiększa obciążenie procesora o 0,5% w skali doby. Pozwala to uniknąć niektórych niechcianych resetów serwera w związku ze stuprocentowym wysyceniem zasobów.


Zadania monitoringu IT


Oczywiste jest to, że podstawowym zadaniem każdego monitoringu jest powiadomienie o awariach. Z perspektywy administratora IT, niewiele jest gorszych rzeczy jak dowiedzenie się o awarii od klienta. Pomijając awarie „wagi ciężkiej”, czyli na przykład nagłą śmierć procesora w wyniku zwarcia, nierozsądnym byłoby ustawienie sobie powiadomienia o ostatnim stadium awarii, dlatego też prewencyjnie zwykło się ustawiać alerty o co najmniej 10% poniżej wartości krytycznej. W przypadku monitorowania łącza zaleca się ustawienie progu co najmniej 80% utylizacji, jako stan, w którym trzeba już wnikliwiej obserwować ruch. Pamiętać trzeba, że każde narzędzie do monitorowania odpytuje w zadanych interwałach czasowych. Ogólnym standardem jest odpytanie raz na 5 minut, jednak jeżeli pozwalają nam na to zasoby, nic nie stoi na przeszkodzie, żeby takie procesy uruchamiać raz na 30 sekund.

Jednakże wielu awarii można uniknąć poprzez monitorowanie trendów. Przykładowo – posiadamy jeden serwer dedykowany, na którym bezpośrednio „na blasze” zainstalowany jest system operacyjny, sklep internetowy i serwer pocztowy. Przeglądając wykresy zużycia CPU, możemy zauważyć, że wzrasta on w momencie wykonywania kopii zapasowej serwera. Z wykresów możemy zobaczyć, że w marcu utylizacja procesora oscylowała w granicach 60% maksymalnej nominalnej wartości, a dzisiaj, we wrześniu potrafi ona osiągnąć 80%, gdzie miesiąc temu było to 70%. Możemy zaobserwować, że utylizacja procesora wzrosła o 20% w przeciągu pół roku, z czego 10% przez ostatni miesiąc, więc możemy wywnioskować, że za około 3 tygodnie, w godzinach wykonywania się kopii zapasowej, serwer może nie wyrobić.

Kanały, którymi dostajemy powiadomienia o awariach to przede wszystkim mail i sms i są to absolutnie podstawowe ścieżki wysyłania. Do powiadomienia mailowego wystarczy nam własny serwer pocztowy, do powiadomień SMS możemy skorzystać z bramek oferowanych przez operatorów komercyjnych, gdzie koszty są bardzo niskie. Oprócz tych dwóch oczywistych opcji, do większości narzędzi dostępnych na rynku możemy podpiąć komunikator służbowy (Jabber, SLACK, Skype). Dla bardziej wymagających bardzo ciekawą propozycją jest centralka telefoniczna, która po otrzymaniu konkretnego maila (z programu monitorującego) potrafi dzwonić do administratora tak długo, aż on nie wpisze w telefonie odpowiedniego kodu.

Sam serwer i łącze może się zdać na nic bez zespołu administratorów, którzy będą nad nim czuwać. A tych również można monitorować. Pomijając już bezpośrednie przechwytywanie monitorów oraz szefa siedzącego za plecami, dzisiejsze narzędzia pozwalają w sprawny sposób zorganizować pracę zespołu IT oraz rozłożenie sił przerobowych np. na projekt o wyższym dla firmy priorytecie. Większość dostępnych na rynku narzędzi pozwala również na generowanie raportów tygodniowych/miesięcznych, które pozwalają w późniejszym okresie oszacować ile roboczogodzin zajmie podobne wdrożenie w przyszłości.


Zarządzanie i automatyzacja


Z punktu widzenia administratora, najlepszym rozwiązaniem do zarządzania monitoringiem powierzonej infrastruktury IT jest scentralizowanie go do jednego systemu zarządzającego. Pozwala to przede wszystkim na szybki czas reakcji administratorów, którzy nie muszą szukać awarii po mniejszych, rozsianych narzędziach. Po drugie, system taki pozwala na szybsze wdrożenie pracowników (przede wszystkim nowych) w firmowy system monitoringu.

Od strony technicznej, ze względów bezpieczeństwa system monitoringu nie powinien mieć dostępu do otwartego internetu, a jedynie do wewnętrznej, w miarę możliwości, odizolowanej sieci wewnętrznej. Dla przykładu, monitorowanie urządzeń sieciowych może odbywać się w zamkniętym VLANie, gdzie następuje tylko i wyłącznie wymiana informacji (np. poprzez protokół SNMP) pomiędzy infrastrukturą sieciową a systemem monitoringu.

Dodatkowo system monitoringu powinien być również… monitorowany. Większość aplikacji pokazuje liczbę zapytań na sekundę, procesów odbywających się pod spodem – jednak nie zaszkodzi postawić lekką instancję, która będzie monitorować kluczowe parametry głównego systemu monitoringu.

Automatyzacja monitoringu pozwala zaoszczędzić ogromną ilość czasu. O wiele wygodniej jest zastosować jakąkolwiek formę automatyzacji (skrypt, aplikacje oparte o skanowanie sieci), aniżeli przy tworzeniu nowego środowiska składającego się z 20 maszyn wirtualnych dodawać ręcznie każdy osobno do systemu, każdemu z nich ustawiać powiadomienia i wartości krytyczne do alertów.


Narzędzia do monitoringu infrastruktury IT


Zadania oraz korzyści z monitoringu infrastruktury IT” przestój spowodowany awarią może pociągać za sobą olbrzymie straty finansowe dla przedsiębiorstwa. Z tego też względu każda infrastruktura sieciowo-serwerowa musi być monitorowana w sposób kompleksowy tj. uwzględniający wszystkie kluczowe jej elementy. Począwszy od systemów zasilania i chłodzenia poprzez utylizację interfejsów sieciowych przełączników i routerów, a kończąc na stanie usług działających na serwerach. Ten artykuł stanowić będzie przegląd najpopularniejszych niekomercyjnych systemów monitorujących, które są obecnie dostępne na rynku oraz z którymi miałem do czynienia w swojej dotychczasowej karierze zawodowej.

Cacti

Cacti jest obecne na rynku od przeszło 15 lat i jest cały czas rozwijane przez jej deweloperów. Ten oparty na języku PHP system pozwala na monitorowanie urządzeń sieciowych za pośrednictwem protokołu SNMP (ang. Simple Network Management Protocol). Wspiera protokół SNMP w wersji 1, 2c oraz 3. Działanie Cacti opiera się na wykorzystaniu cyklicznych baz danych (ang. round-robin database). Dane są zbierane i konsolidowane po określonym przez administratora interwale czasowym.

Jak wcześniej zostało wspomniane, interwał czasowy jest determinowany środowiskiem, które monitorujemy. Na uwagę zasługuje tutaj fakt posiadania przez Cacti bogatej bazy danych dodatków wzbogacających jej podstawową funkcjonalność. Z ciekawszych dodatków mogę wspomnieć o Weathermapie, która pozwala nam na generowanie map z utylizacją interfejsów sieciowych połączonych ze sobą urządzeń. Takie rozwiązania pozwalają administratorom oraz operatorom sieci mieć bieżący obraz działania najbardziej newralgicznych elementów systemu.

Cacti posiada również olbrzymie możliwości definiowania wyglądu wykresów co też, niestety, jest jej największą wadą, gdyż może to stanowić bardzo duże wyzwanie dla początkujących administratorów. Za wykorzystaniem Cacti przemawiają jej bardzo duże możliwości konfiguracji oraz olbrzymia społeczność skupiona wokół tego produktu.

Zabbix

Zabbix jest systemem stworzonym przez Alexeia Vladisheva w 2001 roku, a jego pierwsza publiczna i stabilna wersja ukazała się w roku 2004. Podobnie jak Cacti umożliwia on wykorzystanie protokołu SNMP do monitorowania urządzeń sieciowych z tą różnicą, że dodaje on możliwość instalacji agentów w systemie operacyjnym, którzy mogą pracować w dwóch trybach.

Pierwszym z nich jest sytuacja, kiedy to system Zabbix łączy się do agenta i pobiera z niego dane. Z drugą sytuacją mamy do czynienia, kiedy to agent wysyła dane do serwera Zabbix. Oprogramowanie agenta jest obecnie w pełni wspierane na platformie Windows oraz Linux. Dzięki zastosowaniu agentów Zabbix daje administratorom całą gamę nowych możliwości kontroli nad środowiskiem IT, takich jak możliwość wykonania określonej akcji po zarejestrowaniu jakiegoś zdefiniowanego przez administratora zdarzenia. Taką akcją może być restart usługi na serwerze. Nie muszę mówić, jak bardzo jest to przydatna funkcjonalność.

Podobnie jak Cacti, Zabbixa można uruchomić obecnie na niemal każdej dystrybucji Linuxa. Olbrzymia społeczność skupiona wokół Zabbixa jest niewątpliwą jego zaletą. Niestety Zabbix jest prawdziwym kombajnem, jeśli chodzi o tego typu rozwiązania, przez co jest dość trudny w sprawnym administrowaniu.

Grafana

Grafana w jest relatywnie nowym graczem na rynku. Na pewno znacznie młodszym niż dwie wcześniej opisanie platformy. Posiada ona bardzo rozbudowane narzędzia umożliwiające nam analizę i wyświetlenie danych na wykresie w dziedzinie czasu. Jest obecnie bezkonkurencyjna, jeśli chodzi o warstwę prezentacyjną, gdyż potrafi generować przepiękne wykresy. Grafana może korzystać z różnych systemów baz danych. Na uwagę zasługuje tutaj baza danych o nazwie InfluxDB. InfluxDB jest bazą danych, która została zaprojektowana do przechowywania olbrzymich ilości danych o strukturze zawierającej znacznik czasowy oraz wartość. Sama Grafana może być używana jako samodzielny produkt w połączeniu z bazą danych np. InfluxDB lub też jako nakładka graficzna do narzędzi typu Cacti lub Zabbix. Obsługa Grafany nie powinna stanowić problemu nawet dla początkującego administratora.

Oczywiście istnieje znacznie więcej systemów wykorzystywanych do monitorowania infrastruktury IT, takich, jak chociażby Munin, LibreNMS czy Nagios. Opisałem tutaj zestaw narzędzi, jakie miałem okazje wdrażać i użytkować w swojej dotychczasowej karierze administratora sieci. Jakie narzędzie powinniście wybrać do swojej infrastruktury? Niestety nie ma tutaj prostej odpowiedzi. Wszystko jest uzależnione od pożądanego efektu i tego, czego oczekujecie od waszej infrastruktury. Gorąco zachęcam do przetestowania różnych rozwiązań i wybrania platformy, która będzie najbardziej odpowiadała waszym wymaganiom.


Zalety i wady


Monitoring w środowisku IT to w dzisiejszych czasach standard – nie ma co nad tym tematem polemizować. Nie jestem w stanie wskazać wad stosowania monitoringu, a patrząc na ogrom darmowych narzędzi oraz prostotę ich wdrażania, uważam, że każda firma IT powinna w takowy się zaopatrzyć.

Współautor: Michał Gliński

Karol Olszewski
Karol Olszewski karol.olszewski@dataspace.pl Jako administrator specjalizował się w systemach monitoringu Data Center. Obecnie jest kierownikiem wdrożeń związanych z Serwerami Dedykowanymi.
Infrastruktura IT
MultiCloud - rewolucja czy tylko strategia?
Infrastruktura IT
Szafa RACK 19" - historia, rozwój i zastosowanie
   /   Infrastruktura IT   /   Monitoring jako nieodzowny element infrastruktury IT