Jak stworzyć własny monitoring IT z wykorzystaniem Zabbix?
Monitoring, tak jak opisywałem w artykule „Po co mojej firmie monitoring IT”, jest warunkiem bezawaryjnej pracy w przedsiębiorstwie zajmującym się obsługą urządzeń sieciowych i serwerowych. Czym właściwie jest monitoring?
Z tego artykułu dowiesz się:
Czym właściwie jest monitoring IT
Monitoring Infrastruktury IT to nie tylko cykliczne sprawdzanie parametrów takich jak obciążenie procesora, pamięci RAM, zużycia dysków, itp. To również różnego rodzaju działania, które na co dzień wykonuje ręcznie administrator, takie jak weryfikacja poprawności działania usług lub obserwacja logów. Czy istnieje możliwość obserwowania i generowania wykresów z danymi z wielu serwerów w jednym scentralizowanym widoku?
Monitorowanie dostępności usług, uruchamianie skryptów i wiele innych funkcjonalności umożliwia oprogramowanie Zabbix, o którym pisał Robert Szulist w artykule „Jak działa system monitoringu IT Zabbix”. Wszystkie natywne możliwości Zabbixa udostępnione są w oficjalnej dokumentacji.
Czego monitoring Zabbix nie potrafi
Wielu sprawnych administratorów wykorzystuje do przyspieszenia pracy własne skrypty, napisane w różnych językach skryptowych (Powershell, bash, PHP, Python, itd.). W ten sposób mogą pobrać informacje z serwera, których sam Zabbix nie jest w stanie zdobyć, jak np. informacje o dostępności nowej aktualizacji systemu Windows w usłudze Windows Update. W takiej sytuacji z pomocą przychodzą Parametry Użytkownika (ang. User Parameters). Pamiętajmy, że oprogramowanie Zabbix Agent, zainstalowane na serwerze w swojej podstawowej wersji zna tylko pozycje zdefiniowane przez producenta. Istnieje natomiast możliwość rozszerzenia jego wiedzy o własne zdefiniowane skrypty.
Pamiętajmy, że oprogramowanie Zabbix Agent, zainstalowane na serwerze w swojej podstawowej wersji zna tylko pozycje zdefiniowane przez producenta.
Mateusz Dampc | Starszy Administrator ds. Monitoringu Infrastruktury IT
Istnieje natomiast możliwość rozszerzenia jego wiedzy o własne zdefiniowane skrypty.
Wymogi ograniczające Parametr Użytkownika są następujące: skrypt musi zwrócić tylko jedną daną (tekst, liczba, liczba zmiennoprzecinkowa), czas wykonania skryptu w sekundach nie może przekraczać maksymalnie 30 sekund lub mniej, jeśli pole “Timeout” w pliku konfiguracyjnym wskazuje na mniejszą wartość oraz posiadanie odpowiednich uprawnień dla Zabbixa do czynności wykonywanych przez skrypt i do niego samego. Nazwa pozycji musi być unikalna, nie mogą istnieć dwie pozycje o tej samej nazwie. Aby sprawdzić wszystkie znane pozycje Zabbix Agenta należy wpisać w linii poleceń: Jak się tworzy skrypty zewnętrzne w Zabbixie!
Jak definiować wartość z własnego skryptu
/zabbix_agentd -p
Dla systemów Windows:
/ ścieżka_do_pliku_exe/zabbix_agentd.exe -p
Dla systemów rodziny Unix/Linux:
Zabbix wykonuje zdefiniowany skrypt w czasie określonym przez administratora Zabbix np. co 5 min, 1s, 1d, itd.
Aby „nauczyć” Zabbix Agenta, że ma uruchomić dany skrypt należy podać mu w dowolnym miejscu pliku konfiguracyjnego informację, że dodajemy nową pozycję (UserParameter):
Np.:
Lub:
W przypadku, gdy nasz skrypt bądź polecenie wymaga dodatkowych parametrów podajemy:
Gdzie $1, $2, …,$9 oznacza ilość parametrów możliwych do wywołania przez skrypt/polecenie.
Dla przykładu zaprezentuję prosty skrypt napisany w języku Powershell, znajdujący się na serwerze klienckim.
Oto wywołanie powyższego skryptu:
Definiuję we własnym pliku konfiguracyjnym Zabbix Agenta Parametr Użytkownika:
I restartuję usługę Zabbix Agent na serwerze. Jest to bardzo ważny krok!
Tworzymy pozycję typu Zabbix Agent (bo skrypt wykonany będzie przez Zabbix Agenta) na serwerze klienckim.
I sprawdzamy wynik w ostatnich danych dotyczących serwera:
Podsumowanie
Jak widać powyżej, Zabbix Agent poznał pozycję „skrypt” z konkretnymi parametrami i wie, że należy uruchomić dany skrypt z parametrem podanym przy pozycji. W tym przypadku zwracana wartość będzie zawsze jednakowa, jednak w IT są przypadki, gdy przez duże obciążenia serwerów i inne problemy przestają działać sprawdzone konfiguracje bądź ustawienia ważne dla usług. Dlatego bardzo ważnym czynnikiem jest badanie stanów różnych komponentów – natywnie jak i poprzez skrypty.
Jeśli ten temat był dla Ciebie zbyt skomplikowany i nadal nie wiesz w jakim celu się daną operację wykonuje, skontaktuj się z nami. Z chęcią pomożemy! 😉
Podziel się treścią: