2 Autorejestracja agenta aktywnego

Przegląd

Możliwe jest włączenie automatycznej rejestracji aktywnego Zabbix agent, po czym serwer może rozpocząć ich monitorowanie. W ten sposób nowe hosty mogą być dodawane do monitorowania bez ręcznej konfiguracji na serwerze.

Automatyczna rejestracja może nastąpić, gdy wcześniej nieznany aktywny agent poprosi o testy.

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.

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

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

Można określić, że host powinien zostać automatycznie zarejestrowany z nazwą DNS jako domyślnym interfejsem agent.

Automatyczna rejestracja jest uruchamiana ponownie:

  • jeśli zmienią się informacje o metadanych hosta:
    • z powodu zmiany HostMetadata i ponownego uruchomienia agent
    • 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 Zabbix proxy
  • jeśli automatyczna rejestracja dla tego samego hosta pochodzi z nowego Zabbix proxy

Interwał heartbeat automatycznej rejestracji aktywnego agent dla Zabbix server i Zabbix proxy wynosi 120 sekund. Dlatego w przypadku usunięcia wykrytego hosta automatyczna rejestracja 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 aktywnej autorejestracji agent

Gdy serwer otrzyma żądanie autorejestracji od agent, wywołuje akcję. Dla autorejestracji agent musi być skonfigurowana akcja ze źródłem zdarzeń „Autorejestracja”.

Konfigurowanie wykrywania sieci nie jest wymagane, aby aktywne agenty mogły się autorejestrować.

W frontend Zabbix przejdź do Alerty → Akcje, wybierz Akcje autorejestracji i kliknij Utwórz akcję:

  • Na karcie Akcja nadaj swojej akcji nazwę
  • Opcjonalnie określ warunki. Możesz użyć dopasowania podciągu lub wyrażenia regularnego w warunkach dla nazwy hosta/metadanych hosta. Jeśli zamierzasz użyć warunku „Metadane hosta”, zobacz następną sekcję.
  • Na karcie Operacje dodaj odpowiednie operacje, takie jak: „Dodaj host”, „Dodaj do grupy hostów” (na przykład Discovered hosts), „Podłącz szablony” itd.

Jeśli hosty, które będą się autorejestrować, prawdopodobnie będą obsługiwane wyłącznie przez aktywne monitorowanie (na przykład hosty odgrodzone zaporą od serwera Zabbix), możesz utworzyć specjalny szablon, taki jak Template_Linux-active, do podłączenia.

Utworzone hosty są dodawane do grupy Discovered hosts (domyślnie; można to skonfigurować w Administracja > Ogólne > Inne). Jeśli chcesz, aby hosty były dodawane do innej grupy, dodaj operację Usuń z grupy hostów (wskazując „Discovered hosts”), a także operację Dodaj do grupy hostów (wskazują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.