1 Proxy

Przegląd

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

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

Proxy Zabbix może być używany do:

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

Proxy wymaga tylko jednego połączenia TCP z serwerem Zabbix. Dzięki temu łatwiej obejść zaporę sieciową, ponieważ trzeba skonfigurować tylko jedną regułę zapory.

Proxy Zabbix musi korzystać z oddzielnej bazy danych. Wskazanie bazy danych serwera Zabbix spowoduje uszkodzenie konfiguracji.

Wszystkie dane zbierane przez proxy są przechowywane lokalnie przed przesłaniem ich 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 kontrolują, jak długo dane są przechowywane lokalnie.

Może się zdarzyć, że proxy, które otrzymuje najnowsze zmiany konfiguracji bezpośrednio z bazy danych serwera Zabbix, ma bardziej aktualną konfigurację niż serwer Zabbix, którego konfiguracja może nie być aktualizowana tak szybko ze względu na wartość CacheUpdateFrequency. W rezultacie proxy może rozpocząć zbieranie danych i wysyłać je do serwera Zabbix, który zignoruje te dane.

Proxy Zabbix jest kolektorem danych. Nie oblicza wyzwalaczy, nie przetwarza zdarzeń ani nie wysyła alertów. Przegląd funkcjonalności proxy przedstawia poniższa tabela:

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

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

Ochrona przed przeciążeniem

Jeśli serwer Zabbix był przez pewien czas niedostępny, a proxy zgromadziły dużo danych, po uruchomieniu serwera może dojść do jego przeciążenia (wykorzystanie cache historii przez pewien czas utrzymuje się na poziomie 95-100%). Takie przeciążenie może skutkować spadkiem wydajności, przez co kontrole są przetwarzane wolniej, niż powinny. Aby uniknąć problemów wynikających z przeciążenia cache historii, zaimplementowano mechanizm ochrony przed takim scenariuszem.

Gdy cache historii serwera Zabbix jest pełny, dostęp do zapisu w cache historii jest ograniczany, co wstrzymuje procesy zbierania danych przez serwer. Najczęstszy przypadek przeciążenia cache historii występuje po przestoju serwera, gdy proxy przesyłają zebrane dane. Aby temu zapobiec, dodano ograniczanie proxy (obecnie nie można go wyłączyć).

Gdy wykorzystanie cache historii osiąga 80%, serwer Zabbix przechodzi w tryb ograniczania. W trybie ograniczania serwer akceptuje dane z proxy tylko wtedy, gdy wykorzystanie cache historii spadnie poniżej 60%, rotacyjnie wybierając akceptowane proxy. Gdy wykorzystanie cache historii spadnie poniżej 20%, serwer przełącza się z powrotem do trybu normalnego.

Dodatkowo, w trybie normalnym serwer Zabbix ogranicza poszczególne proxy wysyłające bardzo duże pakiety (ponad 10 000 rekordów), jeśli wykorzystanie cache historii przekracza 60%. Decyzja ta jest podejmowana w momencie, gdy serwer ocenia przesyłanie danych przez proxy, dlatego nie zawsze może być natychmiast widoczna na wykresach wykorzystania cache historii (wewnętrzna pozycja zabbix[wcache,history,pused] i jej interwał aktualizacji mogą nie uchwycić krótkotrwałych skoków).

Ten tryb ograniczania będzie trwał do momentu, gdy wykorzystanie cache ponownie osiągnie 80%, spadnie do 20% albo lista ograniczania będzie pusta. W pierwszym przypadku serwer ponownie przestanie akceptować dane z proxy. W pozostałych dwóch przypadkach serwer zacznie działać normalnie, akceptując dane ze wszystkich proxy.

Powyższe informacje można zilustrować w poniższej tabeli:

Wykorzystanie cache
zapisu historii
Tryb serwera Zabbix Działanie serwera Zabbix
Osiąga 80% Oczekiwanie Przestaje akceptować dane z proxy, ale utrzymuje listę ograniczania (uporządkowaną listę proxy, z którymi należy skontaktować się później).
Osiąga 60% Normalny, ale gotowy do ograniczania Może odrzucać bardzo duże przesyłania z proxy (ponad 10 tys. rekordów) podczas podejmowania decyzji o akceptacji danych; nadal akceptuje inne dane z proxy.
Spada do 20% Normalny Usuwa listę ograniczania i zaczyna normalnie akceptować dane z proxy.

Możesz użyć wewnętrznej pozycji zabbix[wcache,history,pused], aby powiązać to zachowanie serwera Zabbix z metryką.

Konfiguracja

Po zainstalowaniu i skonfigurowaniu proxy nadszedł czas, aby skonfigurować je w frontendzie Zabbixa.

Dodawanie proxy

Aby skonfigurować proxy w frontend Zabbix:

  • Przejdź do: Administration > Proxies
  • Kliknij Create proxy

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 dla równoważenia obciążenia/wysokiej dostępności proxy.
Address for active agents Wprowadź adres, z którym muszą łączyć się monitorowane active agents lub senders. Obsługiwane tylko dla agentów Zabbix 7.0 lub nowszych.
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órą 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.
Active - proxy połączy się z serwerem Zabbix i zażąda danych konfiguracyjnych
Passive - serwer Zabbix łączy się z proxy
Uwaga: bez szyfrowanej komunikacji dane konfiguracyjne proxy (wrażliwe) mogą stać się dostępne dla stron 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 uwierzytelnianie nie nastąpi lub adresy proxy nie są ograniczone w polu Proxy address.
Proxy address Jeśli podano, żądania aktywnego proxy są akceptowane tylko z tej listy adresów IP rozdzielonych przecinkami, opcjonalnie w notacji CIDR, lub nazw DNS aktywnego proxy Zabbix.
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.
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ń 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 do testowania i przełączania na inny typ połączenia). Domyślnie: "No encryption".
Issuer Dozwolony wystawca certyfikatu. Certyfikat jest najpierw weryfikowany za pomocą 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 za pomocą 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.
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 limitów czasu dla typów pozycji, które to obsługują.

Parameter Description
Timeouts for item types Ustaw timeout pozycji (na podstawie jej typu):
Global - użyj globalnego timeoutu (wyświetlanego w wyszarzonym polu Timeout dla każdego typu pozycji);
Override - ustaw własny timeout (w polu Timeout dla każdego typu pozycji). Dozwolony zakres: 1 - 600 s (domyślnie: dziedziczone z globalnych timeoutów). Obsługiwane są sufiksy czasu, np. 30s, 1m, oraz makra użytkownika.

Kliknięcie łącza Global timeouts umożliwia konfigurację globalnych timeoutów. Zwróć uwagę, że łącze Global timeouts jest widoczne tylko dla użytkowników typu Super admin z uprawnieniami do sekcji frontend Administration > General.

Pamiętaj, że chociaż timeouty na poziomie proxy zastępują globalne, zostaną one zastąpione przez indywidualne timeouty pozycji, jeśli zostały skonfigurowane.

Jeśli główna wersja proxy nie jest zgodna z główną wersją serwera, obok Timeouts for item types zostanie wyświetlona ikona z komunikatem po najechaniu: "Timeouts disabled because the proxy and server versions do not match". W takich przypadkach proxy użyje parametru 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
Konfiguracja hosta

Możesz określić, że dany host ma być monitorowany przez proxy lub grupę proxy w formularzu konfiguracji hosta, używając pola Monitored by.

Masowa aktualizacja hostów to kolejny sposób określenia, że hosty mają być monitorowane przez proxy lub grupę proxy.