Powrót do bloga

Monitoring Zabbix | 7 lipca 2020

Wykrywanie i dodawanie hostów w Zabbixie

Jak zautomatyzować monitoring infrastruktury IT



Żyjemy w czasach, w których wymogi stawiane infrastrukturze IT stale rosną. Usługi muszą być dostarczane szybko, a aplikacje, pracować bezbłędnie. Co za tym idzie, utrzymanie infrastruktury staje się coraz bardziej skomplikowane i wymaga automatyzacji. Czyli takiego przystosowania oprogramowania w firmie, aby najbardziej powtarzalne procesy odbywały się automatycznie, bez udziału administratora. Dzisiaj przedstawimy jeden ze sposobów, jak zautomatyzować system monitoringu infrastruktury Zabbix.

Wykrywanie i dodawanie hostów w Zabbix automatyzacja monitoringu


Na czym polega odkrywanie niskopoziomowe

Dla tych, którzy szukają sposobów na automatyzację Zabbixa, producent przygotował bardzo przydatne funkcje odkrywania (eng. Discovery).

W Zabbixie wyróżniamy dwa sposoby odkrywania:

  • Zwykłe odkrywanie – służy do skanowania sieci pod kątem dostępności danego portu lub odpowiedzi ICMP.
  • Odkrywanie niskopoziomowe – służy do wykrywania obiektów na podstawie danych w formacie JSON z konkretnego hosta, które zostaną użyte do automatycznego tworzenia na nim zdefiniowanych pozycji, wyzwalaczy, wykresów, itd.

Dzisiaj skupimy się na odkrywaniu niskopoziomowym. A konkretniej, na odkrywaniu niskopoziomowym hostów w Zabbixie, czyli prototypie hosta. Odkrywanie niskopoziomowe polega na tworzeniu zdefiniowanego monitoringu na podstawie otrzymanego JSON’a z pozycji „matki” (jak np. klucz vfs.fs.discovery zwracający listę dostępnych systemów plików na serwerze). Jak już wspomniałem, na podstawie JSONa można utworzyć potrzebne nam pozycje, wyzwalacze, wykresy lub właśnie hosty.

Jak powinien wyglądać JSON dla Zabbixa

Zabbix do wykrywania niskopoziomowego wymaga konkretnego formatu danych wejściowych.  Zasadniczo jest to lista słowników. Kluczami w słowniku są makra niskiego poziomu, które wyglądają jak zwykłe makro, lecz charakteryzuje się znakiem „#” przed jego nazwą np. {#NAZWA_POZYCJI}. Poniżej przykładowe dane wejściowe z pozycji, z której możemy wytworzyć monitoring:

[

                        {„{#FSNAME}”: „C:”, „{#FSTYPE}”: „NTFS”,”{#FSDRIVETYPE}”: „fixed”},

                        {„{#FSNAME}”: „F:”,”{#FSTYPE}”: „UNKNOWN”, „{#FSDRIVETYPE}”: „cdrom”}

]

Co ważne, każdy element tablicy reprezentuje dokładnie jeden odkryty obiekt.

Ale jak to działa? Do celów pokazowych wykorzystamy wiedzę z artykułu o parametrach użytkownika : https://aplitt.pl/jak-sie-tworzy-wlasny-monitoring-it/ . Na serwerze Hyper-V z zainstalowanym Zabbix Agentem tworzymy dwa parametry użytkownika.

Pierwszy uruchomi skrypt o nazwie odkrywanie.ps1, służący do wykrywania wirtualnych hostów na serwerze Hyper-V, a drugi sprawdzi stan maszyny wirtualnej na podstawie jej nazwy.

Skrypt odkrywanie.ps1

                        $list=New-Object ‚System.Collections.Generic.List[System.Object]’  

                        foreach ($vm in ((Get-Vm).Name)){

                      $list.add(@{„{#VMNAME}”=”$vm”})

                        }

                        ConvertTo-Json $list

Parametry użytkownika są zdefiniowane w pliku konfiguracyjnym Zabbix Agenta:

  • UserParameter=odkrywanie, powershell.exe C:/zabbix_agent/scripts/odkrywanie.ps1
  • UserParameter=stan_maszyny_wirtualnej[*], powershell.exe (Get-VM -Name $1).State

W moim środowisku istnieje host o nazwie Serwer Hyper-V, pod który podłączymy wykreowany przez nas szablon z regułą odkrywania o kluczu odkrywanie.

Jak przeprowadzić automatyzację

Poznajmy zatem jedną z metod na automatyzację monitoringu Zabbix. Krok po kroku.

Krok 1. Kreujemy Szablon, który podłączymy potem pod hosta Serwer Hyper-V.

Krok 2. Tworzymy na nowo utworzonym szablonie regułę odkrywania, dzięki której będziemy wykrywać maszyny wirtualne i dodawać do Zabbixa.

 

 

Krok 3. W Zabbix 5.0 dostępna jest możliwość przetestowania działania reguł wykrywania. Wykorzystajmy to.

 

 

Jak widzimy powyżej, wartość otrzymana z klucza odkrywanie to JSON z nazwami maszyn wirtualnych zainstalowanych na Serwer Hyper-V (żółte zaznaczenie), jest zgodna z wymaganym formatem.

 

Krok 4. Po wykreowaniu reguły wykrywania powinniśmy otrzymać poniższy widok:

 

Krok 5. Wytwórzmy prototyp hosta Prototyp Hosta -> Utwórz Prototyp Hosta.

  • Ustawiamy podstawowe pola. W miejscu Nazwy hosta podamy makro {#VMNAME}, które przyjmie wartość zgodnie z JSONem, który uzyskaliśmy wcześniej. Należy pamiętać, że nazwa hosta powinna być unikatowa w skali instancji Zabbix, więc może być konieczne wprowadzenie jakiegoś schematu nazewnictwa, który pozwoli na uniknięcie konfliktów.

 

 

  • Przechodzimy na zakładkę Grupy i ustawiamy do których grup hostów maszyny wirtualne będą przynależeć – obowiązkowo przynajmniej jedną.

 

 

  • Jak widzimy powyżej możliwe jest utworzenie nowych grup na podstawie makr odkrywania. Klikamy Dodaj.

 

Krok 6. Podpinamy szablon pod host Serwer Hyper-V.

 

Krok 7. Mamy przygotowany monitoring, który automatycznie doda do Zabbixa maszyny wirtualne z serwera Hyper-V. W momencie, gdy serwery zostaną usunięte z hosta „matki”, przestaną być wykrywane przez skrypt i automatycznie zostaną usunięte po okresie zdefiniowanym w „keep lost resources period” w regule wykrywania.

 

 

Krok 8. Jak widzimy, po uruchomieniu reguły wykrywania dodały się hosty do monitorowania. Lecz brakuje im pozycji, które monitorowałyby te hosty. Wytwórzmy zatem szablon dla maszyn wirtualnych, z pozycją sprawdzającą jej stan. Klucz ten zwróci nam dane „Running” lub „Off”, co można by było zamienić na 0 lub 1 i zastosować mapowanie wartości, lecz wykorzystamy tę opcję w następnym artykule.

Krok 9. Szablon ten podpinamy pod prototyp hosta na Szablon Hyper-V.

 

Krok 10. I czekamy na rezultat. Po ponownym uruchomieniu Reguły wykrywania na Serwer Hyper-V maszyny wirtualne w Ostatnich Danych powinny otrzymać dane o ich stanie.

Jak widać, Zabbix potrafi automatyzować pracę Administratorów. Po wytworzeniu nowych hostów na wirtualizatorze, dodadzą się one również do monitorowania, gdzie będziemy mogli badać ich stan. Jest to jeden z wielu przykładów w jaki sposób można zoptymalizować swą pracę. Sprawdzi się również na Proxmoxie, VirtualBoxie, VMWare i wielu innych.

Chcesz poznać więcej ciekawostek oraz funkcjonalności Zabbixie? Spotkajmy się razem na szkoleniu, na którym poznasz jeszcze wiele ciekawych aspektów oraz możliwości!

Zapisz się już dziś!

Podziel się opinią
Mateusz Dampc Aplitt Sp. z o.o. | Administrator ds. Monitoringu Infrastruktury

Zabbix 3.0 & 4.0 Certified Professional z kilkuletnim doświadczeniem w administracji systemami Windows i Linux. Absolwent WSB w Gdańsku na kierunku Informatyka, ze specjalizacją Inżynieria Sieci Komputerowych. Prowadzi szkolenia autorskie Zabbix.

Mateusz Dampc

Aplitt sp. z o.o. | Starszy Administrator ds. Monitoringu Infrastruktury

Napisz do mnie:  

Zobacz również

thumb image

24 września 2020

Wszystko o szkoleniach Zabbix


Czytaj
thumb image

3 sierpnia 2020

Co nowego w Zabbix 5.0


Czytaj
thumb image

21 czerwca 2020

Słowniczek podstawowych pojęć dla Zabbix


Czytaj