2 Autorejestracja agenta aktywnego

Przegląd

Możliwe jest zezwolenie na autorejestrację aktywnego agenta Zabbix, po której serwer może rozpocząć ich monitorowanie. W ten sposób nowe hosty mogą być dodawane do monitorowania bez ręcznej konfiguracji na serwerze.

Autorejestracja może nastąpić, gdy wcześniej nieznany aktywny agent poprosi o kontrole.

Funkcja ta może być bardzo przydatna do automatycznego monitorowania nowych węzłów Cloud. Gdy tylko w Cloud pojawi się nowy węzeł, Zabbix automatycznie rozpocznie zbieranie danych o wydajności i dostępności hosta.

Autorejestracja aktywnego agenta obsługuje również monitorowanie dodanych hostów za pomocą kontroli pasywnych. Gdy aktywny agent prosi o kontrole, pod warunkiem że ma zdefiniowane parametry konfiguracyjne ListenIP lub ListenPort w pliku konfiguracyjnym, są one przesyłane do serwera. Jeśli określono wiele adresów IP, do serwera wysyłany jest pierwszy z nich.

Serwer, dodając nowy autorejestrowany host, używa otrzymanego adresu IP i portu do skonfigurowania agenta. Jeśli nie zostanie odebrana żadna wartość adresu IP, używany jest adres wykorzystany dla połączenia przychodzącego. Jeśli nie zostanie odebrana żadna wartość portu, używany jest port 10050.

Możliwe jest określenie, że host powinien zostać autorejestrowany z nazwą DNS jako domyślnym interfejsem agenta.

Autorejestracja jest uruchamiana ponownie:

  • jeśli zmienią się informacje o metadanych hosta:
    • z powodu zmiany HostMetadata i ponownego uruchomienia agenta
    • z powodu zmiany wartości zwracanej przez HostMetadataItem
  • dla hostów utworzonych ręcznie, jeśli brakuje metadanych
  • jeśli host zostanie ręcznie zmieniony tak, aby był monitorowany przez inny proxy Zabbix
  • jeśli autorejestracja dla tego samego hosta pochodzi z nowego proxy Zabbix

Interwał heartbeat autorejestracji aktywnego agenta dla serwera Zabbix i proxy Zabbix wynosi 120 sekund. Dlatego w przypadku usunięcia wykrytego hosta autorejestracja zostanie uruchomiona ponownie po 120 sekundach.

Konfiguracja

Określ serwer

Upewnij się, że serwer Zabbix jest wskazany w pliku konfiguracyjnym agenta - zabbix_agentd.conf:

ServerActive=10.0.0.1

Jeśli nie zdefiniujesz jawnie parametru Hostname w zabbix_agentd.conf, serwer użyje nazwy systemowej hosta z lokalizacji agenta do nazwania hosta. Nazwę systemową hosta w systemie Linux można uzyskać, uruchamiając polecenie hostname.

Jeśli parametr Hostname jest zdefiniowany w konfiguracji agenta Zabbix jako lista hostów rozdzielona przecinkami, hosty zostaną utworzone dla wszystkich wymienionych nazw hostów.

Po wprowadzeniu jakichkolwiek zmian w pliku konfiguracyjnym uruchom ponownie agenta.

Akcja dla automatycznej rejestracji aktywnego agenta

Gdy serwer otrzyma żądanie automatycznej rejestracji od agenta, wywołuje akcję. Dla automatycznej rejestracji agenta musi być skonfigurowana akcja ze źródłem zdarzenia "Autoregistration".

Konfigurowanie odkrywania sieci nie jest wymagane, aby aktywne agenty mogły się automatycznie rejestrować.

W frontendzie Zabbixa przejdź do Alerts → Actions, wybierz Autoregistration actions i kliknij Create action:

  • Na karcie Action nadaj akcji nazwę
  • Opcjonalnie określ warunki. W warunkach dla nazwy hosta/metadanych hosta można użyć dopasowania podciągu lub dopasowania wyrażeniem regularnym. Jeśli zamierzasz użyć warunku "Host metadata", zobacz następną sekcję.
  • Na karcie Operations dodaj odpowiednie operacje, takie jak - 'Add host', 'Add to host group' (na przykład Discovered hosts), 'Link templates' itd.

Jeśli hosty, które będą się automatycznie rejestrować, mają prawdopodobnie obsługiwać wyłącznie monitorowanie aktywne (na przykład hosty odseparowane zaporą sieciową od serwera Zabbixa), warto utworzyć specjalny szablon, taki jak Template_Linux-active, do którego będą linkowane.

Utworzone hosty są dodawane do grupy Discovered hosts (domyślnie, konfigurowalne w Administration > General > Other). Jeśli chcesz, aby hosty były dodawane do innej grupy, dodaj operację Remove from host group (określając "Discovered hosts") oraz operację Add to host group (określając inną grupę hostów), ponieważ host musi należeć do grupy hostów.

Bezpieczna autorejestracja

Bezpieczny sposób autorejestracji jest możliwy dzięki skonfigurowaniu uwierzytelniania opartego na PSK z szyfrowanymi połączeniami.

Poziom szyfrowania jest konfigurowany globalnie w Administracja > Ogólne > Autorejestracja. Można wybrać brak szyfrowania, szyfrowanie TLS z uwierzytelnianiem PSK lub obie opcje jednocześnie (tak aby niektóre hosty mogły rejestrować się bez szyfrowania, a inne z użyciem szyfrowania).

Uwierzytelnianie za pomocą PSK jest weryfikowane przez serwer Zabbix przed dodaniem hosta. Jeśli zakończy się powodzeniem, host zostanie dodany, a ustawienie Połączenia z/do hosta zostanie ustawione wyłącznie na „PSK”, z tożsamością/kluczem współdzielonym takim samym jak w globalnym ustawieniu autorejestracji.

Aby zapewnić bezpieczeństwo autorejestracji w instalacjach korzystających z proxy, należy włączyć szyfrowanie między serwerem Zabbix a proxy.

Używanie DNS jako domyślnego interfejsu

Parametry konfiguracyjne HostInterface i HostInterfaceItem configuration parameters umożliwiają określenie niestandardowej wartości interfejsu hosta podczas autorejestracji.

Dokładniej mówiąc, są one przydatne, jeśli host ma zostać automatycznie zarejestrowany z nazwą DNS jako domyślnym interfejsem agent zamiast jego adresu IP. W takim przypadku nazwa DNS powinna zostać określona lub zwrócona jako wartość parametru HostInterface albo HostInterfaceItem. Jeśli wartość jednego z tych parametrów zmieni się — na przykład z adresu IP na nazwę DNS lub odwrotnie — domyślny interfejs automatycznie zarejestrowanego hosta zostanie odpowiednio zaktualizowany. Ta aktualizacja jest stosowana do istniejącego hosta, a nie przez utworzenie nowego. Aby wysłać nową wartość, agent musi zostać uruchomiony ponownie, tak aby ponownie zainicjował proces autorejestracji.

Jeśli parametry HostInterface lub HostInterfaceItem nie są skonfigurowane, zamiast nich używany jest parametr listen_dns. Ta wartość jest określana przez wykonanie odwrotnego wyszukiwania DNS dla adresu IP agenta. Jeśli odwrotne DNS nie jest poprawnie skonfigurowane lub zwraca nieprawidłową nazwę, może to skutkować nieprawidłową lub nieudaną autorejestracją z powodu nieprawidłowej wartości interfejsu.

Używanie metadanych hosta

Gdy agent wysyła do serwera żądanie autorejestracji, przesyła swoją nazwę hosta. W niektórych przypadkach (na przykład węzły chmury Amazon) nazwa hosta nie wystarcza, aby serwer Zabbix mógł rozróżnić wykryte hosty. Metadane hosta mogą być opcjonalnie używane do przesyłania innych informacji z agenta do serwera.

Metadane hosta konfiguruje się w pliku konfiguracyjnym agenta - zabbix_agentd.conf. Istnieją 2 sposoby określenia metadanych hosta w pliku konfiguracyjnym:

HostMetadata
HostMetadataItem

Opis tych opcji znajduje się pod powyższym linkiem.

Parametr HostMetadataItem może zwrócić maksymalnie 65535 punktów kodowych UTF-8. Dłuższa wartość zostanie obcięta.

Należy pamiętać, że w MySQL efektywna maksymalna długość w znakach będzie mniejsza, jeśli zwracana wartość zawiera znaki wielobajtowe. Na przykład wartość zawierająca wyłącznie znaki 3-bajtowe będzie ograniczona łącznie do 21844 znaków, natomiast wartość zawierająca wyłącznie znaki 4-bajtowe będzie ograniczona do 16383 znaków.

Próba autorejestracji następuje za każdym razem, gdy aktywny agent wysyła do serwera żądanie odświeżenia aktywnych kontroli. Opóźnienie między żądaniami jest określone w parametrze RefreshActiveChecks agenta. Pierwsze żądanie jest wysyłane natychmiast po ponownym uruchomieniu agenta.

Przykłady

Autorejestracja według systemu operacyjnego przy użyciu HostMetadata

Załóżmy, że chcesz, aby hosty były automatycznie rejestrowane przez serwer Zabbix. W swojej sieci masz aktywne agenty Zabbix (zobacz sekcję „Configuration” powyżej). W sieci znajdują się hosty z systemem Windows i Linux, a w frontendzie Zabbix masz dostępne szablony „Linux by Zabbix agent” i „Windows by Zabbix agent”. Dlatego podczas rejestracji hosta chcesz, aby do rejestrowanego hosta został zastosowany odpowiedni szablon Linux/Windows. Domyślnie podczas autorejestracji do serwera wysyłana jest tylko nazwa hosta, co może nie być wystarczające. Aby mieć pewność, że do hosta zostanie zastosowany właściwy szablon, należy użyć metadanych hosta.

Konfiguracja frontendu

Pierwszą rzeczą, którą należy zrobić, jest skonfigurowanie frontendu. Utwórz 2 akcje. Pierwsza akcja:

  • Nazwa: Automatyczna rejestracja hosta Linux
  • Warunki: Metadane hosta zawierają Linux
  • Operacje: Podłącz szablony: Linux by Zabbix agent

W tym przypadku można pominąć operację „Dodaj host”. Podłączenie szablonu do hosta wymaga najpierw dodania hosta, więc serwer zrobi to automatycznie.

Druga akcja:

  • Nazwa: Automatyczna rejestracja hosta Windows
  • Warunki: Metadane hosta zawierają Windows
  • Operacje: Podłącz szablony: Windows by Zabbix agent

Konfiguracja agenta

Teraz należy skonfigurować agenty. Dodaj następujący wiersz do plików konfiguracyjnych agenta:

HostMetadataItem=system.uname

W ten sposób masz pewność, że metadane hosta będą zawierać „Linux” lub „Windows” w zależności od hosta, na którym uruchomiony jest agent. Przykład metadanych hosta w tym przypadku:

Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32

Nie zapomnij zrestartować agenta po wprowadzeniu jakichkolwiek zmian w pliku konfiguracyjnym.

Używanie HostMetadata do kontrolowania autorejestracji i szablonów

Krok 1 — Chroń rejestrację za pomocą HostMetadata

Użycie metadanych hosta pozwala zapewnić podstawową ochronę przed rejestracją niepożądanych hostów.

Konfiguracja frontendu

Utwórz akcję we frontendzie, używając trudnego do odgadnięcia tajnego kodu, aby nie dopuścić niepożądanych hostów:

  • Nazwa: Akcja autorejestracji Linux
  • Warunki:
    • Typ obliczeń: AND
    • Warunek (A): Metadane hosta zawierają //Linux//
    • Warunek (B): Metadane hosta zawierają //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
  • Operacje:
    • Wyślij wiadomość do użytkowników: Admin przez wszystkie media
    • Dodaj do grup hostów: Serwery Linux
    • Podłącz szablony: Linux by Zabbix agent

Należy pamiętać, że sama ta metoda nie zapewnia silnej ochrony, ponieważ dane są przesyłane otwartym tekstem. Aby zmiany zaczęły obowiązywać natychmiast, wymagane jest przeładowanie pamięci podręcznej konfiguracji.

Konfiguracja agenta

Dodaj następujący wiersz do pliku konfiguracyjnego agenta:

HostMetadata=Linux    21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

gdzie „Linux” to platforma, a pozostała część ciągu to trudny do odgadnięcia tajny tekst.

Nie zapomnij zrestartować agenta po wprowadzeniu jakichkolwiek zmian w pliku konfiguracyjnym.

Krok 2 — Dodaj szablon do zarejestrowanego hosta

Możliwe jest dodanie dodatkowych szablonów do już zarejestrowanego hosta. W takim przypadku szablon MySQL by Zabbix agent zostanie podłączony tylko do hostów, których HostMetadata zawiera token MySQL.

Konfiguracja frontend

Zaktualizuj akcję we frontend:

  • Nazwa: Akcja autorejestracji Linux
  • Warunki:
    • Typ obliczania: AND
    • Warunek (A): Metadane host zawierają Linux
    • Warunek (B): Metadane host zawierają 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
    • Warunek (C): Metadane host zawierają MySQL
  • Operacje:
    • Wyślij wiadomość do użytkowników: Admin przez wszystkie media
    • Dodaj do grup hostów: Serwery Linux
    • Podłącz szablony: Linux by Zabbix agent
    • Podłącz szablony: MySQL by Zabbix Agent

Konfiguracja agenta

Zaktualizuj następną linię w pliku konfiguracyjnym agenta:

HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

Nie zapomnij zrestartować agenta po wprowadzeniu jakichkolwiek zmian w pliku konfiguracyjnym.