Artykuł pochodzi z wydania: Październik 2024
Oprogramowanie do monitorowania środowiska IT to temat, który dość regularnie pojawia się w naszych testach. Mowa tu zarówno o rozwiązaniach typu open source, jak również komercyjnych produktach. Tym razem testujemy software, który dostępny jest w obu opcjach.
O programowanie do monitorowania urządzeń podpiętych do sieci, a także usług oraz aplikacji na nich działających to podstawowy zestaw narzędzi każdego administratora. W zależności od możliwości finansowych można sięgnąć po renomowane produkty znanych marek lub równie popularne rozwiązania open source, które nie dość, że nie ustępują pola produktom komercyjnym, to często oferują znacznie więcej w kontekście dopasowania produktu do własnych potrzeb. Checkmk to oprogramowanie zakorzenione w świecie otwartego kodu, gdyż pierwsze wersje bazowały na popularnym projekcie Nagios. Ówczesna nazwa Check_MK została zastąpiona obecną, a wraz z upływem czasu komercyjna odsłona oprogramowania została wyposażona we własny silnik do monitoringu.
> ARCHITEKTURA
Architektura oprogramowania Checkmk opiera się na modelu klient–serwer. Serwer realizuje funkcje kontroli i zarządzania, a aplikacje agenta odpowiadają za zbieranie danych z monitorowanych hostów. Architekturę samego serwera zbudowano z modułów, które odpowiadają za realizacje poszczególnych funkcji. Nadzór nad całością sprawuje silnik monitorujący, który inicjuje periodycznie generowane odpytywanie agentów, zbiera dane, a także przekazuje rezultaty do interfejsu użytkownika czy systemów powiadomień i alertów.
Na tym etapie należy rozróżnić wersje komercyjne Checkmk od darmowej – Checkmk Raw. Część opensource’owa bazuje na dobrze znanym projekcie Nagios, na którym zbudowane są wczesne wersje Checkmk. Wspierana jest także Icinga. Produkt komercyjny oparto natomiast na rozwijanym od ok. 10 lat autorskim silniku o nazwie Checkmk Micro Code (CMC), który powstał jako odpowiedź na ograniczenia wydajnościowe oraz skalowalność Nagiosa. Producent deklaruje, że CMC w żadnym stopniu nie stanowi kolejnego odgałęzienia projektu Nagios, jak chociażby zgodna z nim Icinga. Kod został napisany od początku, i oparto go na przemyślanej architekturze, dzięki czemu uzyskano nieporównywalnie wyższą wydajność. Podczas tworzenia CMC zachowana została jednak kompatybilność wsteczna, co pozwala wykorzystywać chociażby wtyczki Nagiosa, a także migrację z wersji Raw do produktu komercyjnego. W dokumentacji produktowej znaleźć można informacje na temat największych różnic pomiędzy własnym silnikiem a projektem opensource’owym. Na liście znajdzie się między innymi smart ping, będący własną implementacją testów opartych na protokole ICMP, który odpytuje hosty w określonych odstępach czasowych (domyślnie 6 sekund), a w przypadku braku odpowiedzi (w czasie wynoszącym 2,5 krotność podstawowych odstępów między odpytywaniem) stwierdza niedostępność. Tak prosta modyfikacja względem wykorzystania polecenia ping wbudowanego w system według producenta pozwoliła znacznie zwiększyć wydajność tego typu testów. Więcejna temat różnic i usprawnień CMC względem Nagiosa znaleźć można w dokumentacji: bit.ly/3XnBmvY. Zebrane dane domyślnie przechowywane są w plikach tekstowych lub plikach RRD (dane wydajnościowe). Istnieje także możliwość wysyłania metryk do baz InfluxDB lub Graphite.
Aplikacja agenta monitorowania to główne źródło informacji na temat stanu hostów. Dane zbierane są w określonych odstępach czasu, a następnie przesyłane są do serwera monitoringu w celu dalszej obróbki i wizualizacji. Checkmk agent może pracować w trybie aktywnym (push) oraz pasywnym (pull). Ten drugi jest trybem domyślnym, w którym serwer odpowiada za inicjację komunikacji w celu pobrania informacji, w przeciwieństwie do push, w którym odpowiedzialność za dostarczanie informacji leży po stronie agenta. Tryb pull dostępny jest tylko dla edycji Checkmk Cloud, która – jak z nazwy wynika – służy do kontroli środowisk zdalnych, znajdujących się zazwyczaj za firewallem. Aplikację agenta można pobrać bezpośrednio z konsoli zarządzania Checkmk. Znajdziemy tam pliki instalacyjne dla najpopularniejszych OS-ów, takich jak Windows, różne paczki dla Linuksa, a także Solarisa i AIX-a. Poza standardowymi systemami znajdziemy też agenta dla mniej popularnych platform, jak chociażby HPUX, OpenVMS, *BSD czy nawet z/OS. Oczywiście wspierany jest także protokół SNMP, wykorzystywany zazwyczaj do monitorowania urządzeń sieciowych. Innym sposobem monitorowania jest dostęp poprzez API systemu, na którym nie można zainstalować aplikacji agenta, a protokół SNMP jest niedostępny lub niewystarczający. W tym przypadku Checkmk dysponuje specjalnymi agentami, które uruchamiane są z poziomu serwera. Nieco innym mechanizmem monitorowania dostępnym w Checkmk są aktywne sprawdzenia konkretnych usług. Mowa tu chociażby o weryfikacji serwisów HTTP czy SMTP, gdzie weryfikacja wymaga odpytania o konkretne parametry protokołu, jak chociażby protokołu szyfrowania.
[…]
Marcin Jurczyk
Autor pracuje jako architekt IT w firmie Kyndryl. Zajmuje się infrastrukturą sieciowo-serwerową, wirtualizacją infrastruktury i pamięcią masową.