[comment]: # ({1c2455b7-1c2455b7})
# 2 Autorejestracja agenta aktywnego

[comment]: # ({/1c2455b7-1c2455b7})

[comment]: # ({53523aad-81edbbe2})
#### 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`](/manual/appendix/config/zabbix_agentd?hl=ListenIP#listenip) lub [`ListenPort`](/manual/appendix/config/zabbix_agentd?hl=ListenIP#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](#using-dns-as-default-interface) jako domyślnym interfejsem agenta.

Autorejestracja jest uruchamiana ponownie:

-   jeśli zmienią się informacje o [metadanych](#using-host-metadata) 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.

[comment]: # ({/53523aad-81edbbe2})

[comment]: # ({5d32b87c-5d32b87c})
#### Konfiguracja

[comment]: # ({/5d32b87c-5d32b87c})

[comment]: # ({9340f4a0-bf3762f0})
##### Określ serwer

Upewnij się, że serwer Zabbix jest wskazany w [pliku konfiguracyjnym](/manual/appendix/config/zabbix_agentd) agenta - `zabbix_agentd.conf`:

```ini
ServerActive=10.0.0.1
```

Jeśli nie zdefiniujesz jawnie *Hostname* w `zabbix_agentd.conf`, systemowa nazwa hosta miejsca, w którym działa agent, będzie używana przez serwer do nadawania nazwy hostowi.
Systemową nazwę hosta w systemie Linux można uzyskać, uruchamiając polecenie `hostname`.

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

Uruchom ponownie agenta po wprowadzeniu jakichkolwiek zmian w pliku konfiguracyjnym.

[comment]: # ({/9340f4a0-bf3762f0})

[comment]: # ({04e44cd6-7b103292})
##### Akcja dla automatycznej rejestracji aktywnego agenta

Gdy serwer otrzyma żądanie automatycznej rejestracji od agenta, wywołuje [akcję](/manual/config/notifications/action).
Dla automatycznej rejestracji agenta musi być skonfigurowana akcja o źródle zdarzenia "Autoregistration".

::: noteclassic
Konfiguracja [odkrywania sieci](/network_discovery) nie jest wymagana, 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](/manual/config/notifications/action/conditions#autoregistration-actions).
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ępną sekcję.
-   Na karcie Operations dodaj odpowiednie operacje, takie jak - 'Add host', 'Add to host group' (na przykład *Discovered hosts*), 'Link templates' itd.

::: notetip
Jeśli hosty, które będą się automatycznie rejestrować, mają być obsługiwane wyłącznie przez aktywne monitorowanie (na przykład hosty odseparowane zaporą sieciową od serwera Zabbixa), 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](/manual/web_interface/frontend_sections/administration/general#other-parameters)*).
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.

[comment]: # ({/04e44cd6-7b103292})

[comment]: # ({96641bd1-66cac4ef})
#### 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](/manual/web_interface/frontend_sections/administration/general#autoregistration)*.
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](/manual/config/hosts/host#encryption)* zostanie ustawione wyłącznie na „PSK”, z tożsamością/kluczem współdzielonym takim samym jak w globalnym ustawieniu autorejestracji.

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

[comment]: # ({/96641bd1-66cac4ef})

[comment]: # ({6f85d554-9c275675})
#### Używanie DNS jako domyślnego interfejsu

HostInterface i HostInterfaceItem [parametry konfiguracyjne](/manual/appendix/config/zabbix_agentd) 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 określić lub zwrócić nazwę DNS jako wartość parametru HostInterface lub 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.

::: noteclassic
Jeśli parametry HostInterface lub HostInterfaceItem nie są skonfigurowane, używany jest zamiast tego parametr listen\_dns.
Wartość ta jest określana przez 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.
:::

[comment]: # ({/6f85d554-9c275675})

[comment]: # ({32a8b833-af247ed6})
#### Korzystanie z 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) sama 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 są konfigurowane w [pliku konfiguracyjnym](/manual/appendix/config/zabbix_agentd) agenta - `zabbix_agentd.conf`.
Istnieją 2 sposoby określania metadanych hosta w pliku konfiguracyjnym:

```ini
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 przypadku 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.

::: noteimportant
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](/manual/appendix/config/zabbix_agentd) agenta.
Pierwsze żądanie jest wysyłane natychmiast po ponownym uruchomieniu agenta.
:::

[comment]: # ({/32a8b833-af247ed6})

[comment]: # ({4c860844-e2de662b})
#### Przykłady

[comment]: # ({/4c860844-e2de662b})

[comment]: # ({30b1e8da-070aaeb4})
##### 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.

[comment]: # ({/30b1e8da-070aaeb4})

[comment]: # ({e73b011d-9543f562})
**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

::: noteclassic
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

[comment]: # ({/e73b011d-9543f562})

[comment]: # ({5c00417a-110dbc2b})
**Konfiguracja agenta**

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

```ini
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:

```default
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.

[comment]: # ({/5c00417a-110dbc2b})

[comment]: # ({4906ecf5-85f695d6})
##### Używanie HostMetadata do kontrolowania autorejestracji i szablonów

[comment]: # ({/4906ecf5-85f695d6})

[comment]: # ({ccdb1681-c5ffa817})
***Krok 1 — Chroń rejestrację za pomocą HostMetadata***

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

[comment]: # ({/ccdb1681-c5ffa817})

[comment]: # ({7cbf997b-c9e24581})
**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.

[comment]: # ({/7cbf997b-c9e24581})

[comment]: # ({498ec3de-9fca761d})
**Konfiguracja agenta**

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

```ini
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.

[comment]: # ({/498ec3de-9fca761d})

[comment]: # ({60f2763f-c93c8a99})
***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`.

[comment]: # ({/60f2763f-c93c8a99})

[comment]: # ({f0fc5068-6eb51339})
**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

[comment]: # ({/f0fc5068-6eb51339})

[comment]: # ({c0627a72-15c86816})
**Konfiguracja agenta**

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

```ini
HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
```

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

[comment]: # ({/c0627a72-15c86816})
