×

Mamy nadzieję, że lektura tego tekstu sprawi Ci przyjemność.

Jeśli chcesz, byśmy pokazali Ci jak to narzędzie sprawdzi się w Twojej firmie, po prostu zarezerwuj rozmowę.

Wykrywanie i dodawanie hostów w monitoringu Zabbix

Ż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.

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.

Podziel się treścią:

Zostaw kontakt, aby dowiedzieć się więcej!

    Potrzebujesz wsparcia? Skontaktuj się z nami!

    * Imię i nazwisko:
    * Firma:
    * Telefon:
    E-mail:
    Wyrażam zgodę na przetwarzanie przez Aplitt sp. z o.o. moich danych osobowych wskazanych w formularzu kontaktowym w celu otrzymywania informacji handlowych i marketingowych dotyczących produktów i usług z oferty Aplitt sp. z o.o.. Więcej informacji w Polityce Prywatności.* Wyrażam zgodę na przetwarzanie przez Aplitt sp. z o.o. moich danych osobowych wskazanych w formularzu kontaktowym w celu otrzymywania informacji handlowych i marketingowych dotyczących produktów i usług z oferty Aplitt sp. z o.o.. Więcej informacji w Polityce Prywatności.
    Wyrażam zgodę na kontakt za pomocą wyżej wymienionych kanałów komunikacji w celu przedstawienia mi informacji handlowych lub w celu marketingu bezpośredniego Aplitt sp. z o.o..* Wyrażam zgodę na kontakt za pomocą wyżej wymienionych kanałów komunikacji w celu przedstawienia mi informacji handlowych lub w celu marketingu bezpośredniego Aplitt sp. z o.o..
    * pola wymagane
    Mateusz Dampc | Architekt ds. monitoringu infrastruktury IT w Aplitt
    Mateusz Dampc | Architekt ds. monitoringu infrastruktury IT w Aplitt
    Zabbix 3.0 & 4.0 & 5.0 & 6.0 Certified Trainer z wieloletnim doświadczeniem w administracji systemami Windows i Linux. Absolwent WSB w Gdańsku na kierunku Informatyka, ze specjalizacją Inżynieria Sieci Komputerowych. Absolwent Zarządzania na WSB ze specjalizacją Zarządzanie projektami i usługami IT. Prowadzi szkolenia autorskie i autoryzowane Zabbix.

    Zobacz także:

    thumb image

    30 maja 2024

    Porządek w konfiguracji Zabbix 7.0 dzięki użyciu makr ułatwi pracę!


    Czytaj
    thumb image

    16 lutego 2021

    2 Zabbix MeetUp Online – zapis sesji Q&A cz.1


    Czytaj
    thumb image

    24 października 2022

    Handy Tips #6: Tworzenie kontekstowych progów dla problemów z pomocą makr użytkownika Zabbix


    Czytaj

    Obejrzyj nasze filmy: