[comment]: # ({0a2d9a93-0a2d9a93})
# 1 Proxy

[comment]: # ({/0a2d9a93-0a2d9a93})

[comment]: # ({c112bcf2-5a59cd81})
### Przegląd

Proxy Zabbixa może zbierać dane o wydajności i dostępności w imieniu
serwera Zabbixa. W ten sposób proxy może przejąć część
obciążenia związanego ze zbieraniem danych i odciążyć serwer Zabbixa.

Ponadto użycie proxy jest najprostszym sposobem wdrożenia scentralizowanego i
rozproszonego monitorowania, gdy wszystkie agent i proxy raportują do jednego serwera Zabbixa,
a wszystkie dane są zbierane centralnie.

Proxy Zabbixa można użyć do:

-   Monitorowania zdalnych lokalizacji
-   Monitorowania lokalizacji o zawodnej łączności
-   Odciążenia serwera Zabbixa podczas monitorowania tysięcy urządzeń
-   Uproszczenia utrzymania monitorowania rozproszonego

![](../../../assets/en/manual/proxies/proxy.png){width="600"}

Proxy wymaga tylko jednego połączenia TCP z serwerem Zabbixa. W ten
sposób łatwiej obejść zaporę sieciową, ponieważ trzeba skonfigurować
tylko jedną regułę zapory.

::: noteimportant
Proxy Zabbixa musi używać oddzielnej bazy danych.
Wskazanie go na bazę danych serwera Zabbixa spowoduje uszkodzenie
konfiguracji.
:::

Wszystkie dane zbierane przez proxy są przechowywane lokalnie przed ich
przesłaniem do serwera. Dzięki temu żadne dane nie zostaną utracone z powodu
tymczasowych problemów komunikacyjnych z serwerem. Parametry *ProxyLocalBuffer* i
*ProxyOfflineBuffer* w [pliku konfiguracji proxy](/manual/appendix/config/zabbix_proxy)
określają, jak długo dane są przechowywane lokalnie.

::: noteimportant
Może się zdarzyć, że proxy, które otrzymuje
najnowsze zmiany konfiguracji bezpośrednio z bazy danych serwera Zabbixa, ma
bardziej aktualną konfigurację niż serwer Zabbixa, którego konfiguracja może
nie być aktualizowana tak szybko ze względu na wartość
[CacheUpdateFrequency](/manual/appendix/config/zabbix_server). W rezultacie
proxy może rozpocząć zbieranie danych i wysyłać je do serwera Zabbixa, który ignoruje te dane.
:::

Proxy Zabbixa jest kolektorem danych. Nie oblicza wyzwalaczy,
nie przetwarza zdarzeń ani nie wysyła alertów. Aby zapoznać się z przeglądem funkcjonalności proxy,
przejrzyj poniższą tabelę:

|Function|<|Supported by proxy|
|--------|-|------------------|
|Items|<|<|
|<|*Zabbix agent checks*|**Yes**|
|^|*Zabbix agent checks (active)*|**Yes** ^1^|
|^|*Simple checks*|**Yes**|
|^|*Trapper items*|**Yes**|
|^|*SNMP checks*|**Yes**|
|^|*SNMP traps*|**Yes**|
|^|*IPMI checks*|**Yes**|
|^|*JMX checks*|**Yes**|
|^|*Log file monitoring*|**Yes**|
|^|*Internal checks*|**Yes**|
|^|*SSH checks*|**Yes**|
|^|*Telnet checks*|**Yes**|
|^|*External checks*|**Yes**|
|^|*Dependent items*|**Yes**|
|^|*Script items*|**Yes**|
|^|*Browser items*|**Yes**|
|Built-in web monitoring|<|**Yes**|
|Item value preprocessing|<|**Yes**|
|Network discovery|<|**Yes**|
|Active agent autoregistration|<|**Yes**|
|Low-level discovery|<|**Yes** ^2^|
|Remote commands|<|**Yes**|
|Calculating triggers|<|*No*|
|Processing events|<|*No*|
|Event correlation|<|*No*|
|Sending alerts|<|*No*|

::: noteclassic
\[1\] Aby upewnić się, że agent pyta proxy (a nie
serwer) o aktywne sprawdzenia, proxy musi być wymieniony w
parametrze **ServerActive** w pliku konfiguracji agenta.<br>
\[2\] W przypadku LLD proxy Zabbixa tylko zbiera i wstępnie przetwarza
dane, a następnie wysyła je do serwera Zabbixa do dalszego
przetwarzania.
:::

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

[comment]: # ({bde28545-737fe0c2})
##### Ochrona przed przeciążeniem

Jeśli serwer Zabbix był przez jakiś czas niedostępny, a proxy zebrały dużo danych, a następnie serwer zostanie uruchomiony, może dojść do jego przeciążenia (użycie pamięci podręcznej historii utrzymuje się na poziomie 95-100% przez pewien czas). Takie przeciążenie może spowodować spadek wydajności, w wyniku czego kontrole są przetwarzane wolniej, niż powinny. Ochronę przed takim scenariuszem zaimplementowano, aby uniknąć problemów wynikających z przeciążenia pamięci podręcznej historii.

Gdy pamięć podręczna historii serwera Zabbix jest pełna, dostęp do zapisu w pamięci podręcznej historii jest ograniczany, co wstrzymuje procesy zbierania danych przez serwer. Najczęstszym przypadkiem przeciążenia pamięci podręcznej historii jest sytuacja po przestoju serwera, gdy proxy przesyłają zebrane dane. Aby temu zapobiec, dodano ograniczanie przepustowości proxy (obecnie nie można go wyłączyć).

Serwer Zabbix przestanie przyjmować dane od proxy, gdy użycie pamięci podręcznej historii osiągnie 80%. Zamiast tego proxy zostaną umieszczone na liście ograniczania przepustowości. Będzie to trwało do momentu, gdy użycie pamięci podręcznej spadnie do 60%. Wtedy serwer zacznie ponownie przyjmować dane od proxy, pojedynczo, zgodnie z listą ograniczania przepustowości. Oznacza to, że pierwsze proxy, które próbowało przesłać dane w okresie ograniczania przepustowości, zostanie obsłużone jako pierwsze i dopóki nie zakończy przesyłania, serwer nie będzie przyjmował danych od innych proxy.

Ten tryb ograniczania przepustowości będzie trwał do momentu, gdy użycie pamięci podręcznej ponownie osiągnie 80%, spadnie do 20% albo lista ograniczania przepustowości będzie pusta. W pierwszym przypadku serwer ponownie przestanie przyjmować dane od proxy. W dwóch pozostałych przypadkach serwer zacznie działać normalnie, przyjmując dane od wszystkich proxy.

Powyższe informacje można przedstawić w następującej tabeli:

|Użycie pamięci podręcznej zapisu <br>historii|Tryb serwera Zabbix|Działanie serwera Zabbix|
|--|--|------|
|Osiąga 80% |Oczekiwanie|Przestaje przyjmować dane od proxy, ale utrzymuje *listę ograniczania przepustowości* (priorytetową listę proxy, z którymi należy skontaktować się później).|
|Spada do 60% |Ograniczanie przepustowości|Rozpoczyna przetwarzanie listy ograniczania przepustowości, ale nadal nie przyjmuje danych od proxy.|
|Spada do 20% |Normalny|Usuwa listę ograniczania przepustowości i zaczyna normalnie przyjmować dane od proxy.|

Możesz użyć wewnętrznej pozycji [zabbix[wcache,history,pused]](/manual/config/items/itemtypes/internal#wcache), aby powiązać to zachowanie serwera Zabbix z metryką.

[comment]: # ({/bde28545-737fe0c2})

[comment]: # ({0f7bc9e3-e3203196})
### Konfiguracja

Po [zainstalowaniu](/manual/installation/install) i
[skonfigurowaniu](/manual/appendix/config/zabbix_proxy) proxy, czas
skonfigurować je w frontend Zabbix.

[comment]: # ({/0f7bc9e3-e3203196})

[comment]: # ({e8649a6d-a5555aaf})
##### Dodawanie proxy

Aby skonfigurować proxy w frontend Zabbix:

-   Przejdź do: *Administration → Proxies*
-   Kliknij *Create proxy*

![](../../../assets/en/manual/distributed_monitoring/proxy.png){width="600"}

|Parameter|<|Description|
|-|----------|----------------------------------------|
|*Proxy name*|<|Wprowadź nazwę proxy. Musi być taka sama jak nazwa w parametrze *Hostname* w pliku konfiguracyjnym proxy.|
|*Proxy group*|<|Wybierz jedną grupę proxy do [równoważenia obciążenia/wysokiej dostępności](/manual/distributed_monitoring/proxies/ha).|
|*Address for active agents*|<|Wprowadź adres, z którym muszą łączyć się monitorowane aktywne agent lub nadawcy. Obsługiwane **tylko** dla agentów Zabbix 7.0 lub nowszych.<br>Ten adres jest używany do łączenia się zarówno z aktywnymi, jak i pasywnymi proxy. To pole jest dostępne tylko wtedy, gdy w polu *Proxy group* wybrano grupę proxy.|
| |*Address*|Adres IP/nazwa DNS, z którym należy się połączyć.|
|^|*Port*|Numer portu TCP (domyślnie 10051), z którym należy się połączyć. Obsługiwane są makra użytkownika.|
|*Proxy mode*|<|Wybierz tryb proxy.<br>**Active** - proxy połączy się z serwerem Zabbix i pobierze dane konfiguracyjne<br>**Passive** - serwer Zabbix łączy się z proxy<br>*Uwaga*: bez szyfrowanej komunikacji (wrażliwe) dane konfiguracyjne proxy mogą stać się dostępne dla osób mających dostęp do portu trapper serwera Zabbix podczas korzystania z aktywnego proxy. Jest to możliwe, ponieważ każdy może podszyć się pod aktywne proxy i zażądać danych konfiguracyjnych, jeśli nie odbywa się uwierzytelnianie lub adresy proxy nie są ograniczone w polu *Proxy address*.|
|*Proxy address*|<|Jeśli określono, żądania aktywnego proxy są akceptowane tylko z tej listy adresów IP rozdzielonych przecinkami, opcjonalnie w notacji CIDR, lub nazw DNS aktywnego proxy Zabbix.<br>To pole jest dostępne tylko wtedy, gdy w polu *Proxy mode* wybrano aktywne proxy. Makra nie są obsługiwane.|
|*Interface*|<|Wprowadź szczegóły interfejsu dla pasywnego proxy.<br>To pole jest dostępne tylko wtedy, gdy w polu Proxy mode wybrano pasywne proxy.|
| |*Address*|Adres IP/nazwa DNS pasywnego proxy.|
|^|*Port*|Numer portu TCP pasywnego proxy (domyślnie 10051). Obsługiwane są makra użytkownika.|
|*Description*|<|Wprowadź opis proxy.|

Karta **Encryption** umożliwia wymaganie [szyfrowanych połączeń](/manual/encryption) z proxy.

|Parameter|Description|
|--|--------|
|*Connections to proxy*|Sposób, w jaki serwer łączy się z pasywnym proxy: bez szyfrowania (domyślnie), z użyciem PSK (pre-shared key) lub certyfikatu.|
|*Connections from proxy*|Wybierz, jaki typ połączeń jest dozwolony z aktywnego proxy. Można wybrać kilka typów połączeń jednocześnie (przydatne podczas testowania i przełączania na inny typ połączenia). Domyślnie: "No encryption".|
|*Issuer*|Dozwolony wystawca certyfikatu. Certyfikat jest najpierw weryfikowany z CA (certificate authority). Jeśli jest poprawny i podpisany przez CA, pole *Issuer* może służyć do dalszego ograniczenia dozwolonego CA. To pole jest opcjonalne i przeznaczone do użycia, jeśli instalacja Zabbix korzysta z certyfikatów od wielu CA.|
|*Subject*|Dozwolony subject certyfikatu. Certyfikat jest najpierw weryfikowany z CA. Jeśli jest poprawny i podpisany przez CA, pole *Subject* może służyć do zezwolenia tylko na jedną wartość ciągu *Subject*. Jeśli to pole jest puste, akceptowany jest każdy poprawny certyfikat podpisany przez skonfigurowane CA.|
|*PSK identity*|Ciąg identyfikacyjny pre-shared key.<br>Nie umieszczaj wrażliwych informacji w identyfikatorze PSK, ponieważ jest on przesyłany przez sieć bez szyfrowania, aby poinformować odbiorcę, którego PSK użyć.|
|*PSK*|Pre-shared key (ciąg szesnastkowy). Maksymalna długość: 512 cyfr szesnastkowych (PSK 256-bajtowy), jeśli Zabbix używa biblioteki GnuTLS lub OpenSSL, 64 cyfry szesnastkowe (PSK 32-bajtowy), jeśli Zabbix używa biblioteki mbed TLS (PolarSSL). Przykład: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952|

Karta **Timeouts** umożliwia zastąpienie [globalnych](/manual/web_interface/frontend_sections/administration/general#timeouts) limitów czasu dla typów pozycji, które to obsługują.

![](../../../assets/en/manual/distributed_monitoring/proxy_timeout.png){width="600"}

|Parameter|Description|
|--|--------|
|*Timeouts for item types*|Wybierz opcję limitu czasu:<br>**Global** - używany jest globalny limit czasu (wyświetlany w wyszarzonym polu *Timeout* dla każdego typu pozycji);<br>**Override** - używany jest niestandardowy limit czasu (ustawiany w polu *Timeout* dla każdego typu pozycji). Dozwolony zakres: 1 - 600 s (domyślnie: dziedziczone z [globalnych](/manual/web_interface/frontend_sections/administration/general#timeouts) limitów czasu). Obsługiwane są [sufiksy czasu](/manual/appendix/suffixes#time-suffixes), np. 30s, 1m, oraz [makra użytkownika](/manual/config/macros/user_macros).<br><br>Kliknięcie łącza *Global timeouts* umożliwia skonfigurowanie [globalnych](/manual/web_interface/frontend_sections/administration/general#timeouts) limitów czasu. Zwróć uwagę, że łącze *Global timeouts* jest widoczne tylko dla użytkowników typu *Super admin* z uprawnieniami do sekcji frontend *Administration* → [*General*](/manual/web_interface/frontend_sections/administration/general).<br><br>Obsługiwane typy pozycji:<br>- [Zabbix agent](/manual/config/items/itemtypes/zabbix_agent) (zarówno kontrole pasywne, jak i aktywne)<br>- [Simple check](/manual/config/items/itemtypes/simple_checks) (z wyjątkiem pozycji `icmpping*`, `vmware.*`)<br>- [SNMP agent](/manual/config/items/itemtypes/snmp) (tylko dla pozycji SNMP `walk[OID]` i `get[OID]`)<br>- [External check](/manual/config/items/itemtypes/external)<br>- [Database monitor](/manual/config/items/itemtypes/odbc_checks)<br>- [HTTP agent](/manual/config/items/itemtypes/http)<br>- [SSH agent](/manual/config/items/itemtypes/ssh_checks)<br>- [TELNET agent](/manual/config/items/itemtypes/telnet_checks)<br>- [Script](/manual/config/items/itemtypes/script)<br>- [Browser](/manual/config/items/itemtypes/browser)<br><br>Zwróć uwagę, że limity czasu ustawione w **Override** mają pierwszeństwo przed globalnymi, ale zostaną zastąpione przez indywidualne limity czasu pozycji, jeśli zostaną ustawione w [konfiguracji pozycji](/manual/config/items/item#configuration).|

::: noteclassic
Jeśli główna wersja proxy nie jest zgodna z główną wersją serwera,
obok *Timeouts for item types* zostanie wyświetlona ikona
![](../../../assets/en/manual/distributed_monitoring/info_yellow.png){class="nozoom"} z komunikatem po najechaniu
"Timeouts disabled because the proxy and server versions do not match".
W takich przypadkach proxy będzie używać parametru [`Timeout`](/manual/appendix/config/zabbix_proxy#timeout) z pliku konfiguracyjnego proxy.
:::

Formularz edycji istniejącego proxy zawiera następujące dodatkowe przyciski:

-    *Refresh configuration* - odśwież konfigurację proxy
-    *Clone* - utwórz nowe proxy na podstawie właściwości istniejącego proxy
-    *Delete* - usuń proxy

[comment]: # ({/e8649a6d-a5555aaf})

[comment]: # ({5fe15bb4-96c17aaf})
##### Konfiguracja hosta

Możesz określić, że pojedynczy host ma być monitorowany przez proxy lub grupę proxy
w formularzu [konfiguracji hosta](/manual/config/hosts/host), używając pola
*Monitorowany przez*.

![](../../../assets/en/manual/proxies/proxy_set.png){width="600"}

[Masowa aktualizacja](/manual/config/hosts/hostupdate) hosta to inny sposób
określenia, że hosty mają być monitorowane przez proxy lub grupę proxy.

[comment]: # ({/5fe15bb4-96c17aaf})
