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 agent - zabbix_agentd.conf:
ServerActive=10.0.0.1
Jeśli nie zdefiniujesz jawnie Hostname w zabbix_agentd.conf, serwer użyje systemowej nazwy hosta maszyny, na której działa agent, do nazwania hosta.
Systemową nazwę hosta w systemie Linux można uzyskać, uruchamiając polecenie hostname.
Jeśli Hostname jest zdefiniowany w konfiguracji agenta Zabbix jako lista hostów rozdzielona przecinkami, zostaną utworzone hosty dla wszystkich wymienionych nazw hostów.
Uruchom ponownie agenta po wprowadzeniu jakichkolwiek zmian w pliku konfiguracyjnym.
Akcja dla automatycznej rejestracji active agent
Gdy serwer otrzymuje żądanie automatycznej rejestracji od agenta, wywołuje akcję. Dla automatycznej rejestracji agentów musi być skonfigurowana akcja ze źródłem zdarzenia "Autoregistration".
Konfiguracja network discovery nie jest wymagana, aby active agent mogły się automatycznie rejestrować.
W frontend 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 do podciągu lub dopasowania wyrażeniem regularnym. Jeśli zamierzasz użyć warunku "Host metadata", zobacz następny rozdział.
- 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ć, prawdopodobnie będą obsługiwane wyłącznie do monitorowania aktywnego (na przykład hosty odseparowane od serwera Zabbixa przez zaporę sieciową), możesz 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 dodaj 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
HostInterface i HostInterfaceItem parametry konfiguracyjne umożliwiają określenie niestandardowej wartości interfejsu hosta podczas autorejestracji.
Dokładniej mówiąc, są one przydatne, jeśli host ma zostać autorejestrowany z nazwą DNS jako domyślnym interfejsem agenta zamiast adresem IP. W takim przypadku należy podać nazwę DNS lub zwrócić ją jako wartość parametru HostInterface albo HostInterfaceItem. Jeśli wartość jednego z tych parametrów ulegnie zmianie — na przykład z adresu IP na nazwę DNS lub odwrotnie — domyślny interfejs autorejestrowanego hosta zostanie odpowiednio zaktualizowany. Aktualizacja ta jest stosowana do istniejącego hosta, a nie poprzez utworzenie nowego. Aby przesłać nową wartość, agent musi zostać ponownie uruchomiony, aby ponownie zainicjował proces autorejestracji.
Jeśli parametry HostInterface lub HostInterfaceItem nie są skonfigurowane, zamiast nich używany jest parametr listen_dns. Wartość ta jest określana poprzez wykonanie odwrotnego wyszukiwania DNS dla adresu IP agenta. Jeśli odwrotny DNS nie jest poprawnie skonfigurowany lub zwraca nieprawidłową nazwę, może to spowodować nieprawidłową lub nieudaną autorejestrację z powodu nieprawidłowej wartości interfejsu.
Używanie metadanych hosta
Gdy agent wysyła żądanie autorejestracji do serwera, przesyła swoją nazwę hosta. W niektórych przypadkach (na przykład węzły chmury Amazon) sama nazwa hosta nie wystarcza, aby serwer Zabbix mógł odróżnić wykryte hosty. Metadane hosta mogą być opcjonalnie używane do przesyłania innych informacji z agenta do serwera.
Metadane hosta są konfigurowane w pliku konfiguracyjnym agenta - zabbix_agentd.conf.
Istnieją 2 sposoby określania metadanych hosta w pliku konfiguracyjnym:
HostMetadata
HostMetadataItem
Opis opcji znajduje się w linku powyżej.
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 rzeczywista 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 symboli.
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.