Proxy
Przegląd
Proxy Zabbix to proces, który może zbierać dane monitorowania z jednego lub kilku monitorowanych urządzeń i wysyłać informacje do serwera Zabbix, działając zasadniczo w imieniu serwera. Wszystkie zebrane dane są buforowane lokalnie, a następnie przesyłane do serwera Zabbix, do którego należy proxy.
Wdrożenie proxy jest opcjonalne, ale może być bardzo korzystne do rozłożenia obciążenia pojedynczego serwera Zabbix. Jeśli dane zbierają wyłącznie proxy, przetwarzanie po stronie serwera wymaga mniejszej mocy CPU i mniej operacji wejścia/wyjścia dysku.
Proxy Zabbix to idealne rozwiązanie do scentralizowanego monitorowania zdalnych lokalizacji, oddziałów i sieci bez lokalnych administratorów.
Proxy Zabbix wymaga oddzielnej bazy danych.
Należy pamiętać, że bazy danych obsługiwane przez proxy Zabbix to SQLite, MySQL i PostgreSQL.
Zobacz także: Using proxies in a distributed environment
Uruchamianie proxy
Jeśli zainstalowano jako pakiet
Zabbix proxy działa jako proces demona. Proxy można uruchomić, wykonując:
systemctl start zabbix-proxy
To zadziała w większości systemów GNU/Linux. W innych systemach może być konieczne uruchomienie:
/etc/init.d/zabbix-proxy start
Podobnie, aby zatrzymać/uruchomić ponownie/wyświetlić status Zabbix proxy, użyj następujących poleceń:
systemctl stop zabbix-proxy
systemctl restart zabbix-proxy
systemctl status zabbix-proxy
Uruchamianie ręczne
Jeśli powyższe nie działa, należy uruchomić go ręcznie.
Znajdź ścieżkę do pliku binarnego zabbix_proxy i wykonaj:
zabbix_proxy
Z proxy Zabbix można używać następujących parametrów wiersza poleceń:
-c --config <file> Ścieżka do pliku konfiguracyjnego
-f --foreground Uruchom proxy Zabbix na pierwszym planie
-R --runtime-control <option> Wykonaj funkcje administracyjne
-T --test-config Sprawdź poprawność pliku konfiguracyjnego i zakończ
-h --help Wyświetl tę pomoc
-V --version Wyświetl numer wersji
Przykłady uruchamiania proxy Zabbix z parametrami wiersza poleceń:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf
zabbix_proxy --help
zabbix_proxy -V
Sterowanie w czasie działania
Opcje sterowania w czasie działania:
| Option | Description | Target |
|---|---|---|
config_cache_reload |
Przeładuj pamięć podręczną konfiguracji. Ignorowane, jeśli pamięć podręczna jest obecnie ładowana. Aktywny proxy Zabbix połączy się z serwerem Zabbix i zażąda danych konfiguracyjnych. Pasywny proxy Zabbix zażąda danych konfiguracyjnych od serwera Zabbix przy następnym połączeniu serwera z proxy. |
|
history_cache_clear=target |
Wyczyść pamięć podręczną historii dla pozycji określonej przez jej ID. Dotyczy wszystkich wartości pozycji, z wyjątkiem pierwszej i ostatniej wartości. |
target - ID pozycji. |
diaginfo[=<section>] |
Zbierz informacje diagnostyczne w pliku dziennika proxy. | historycache - statystyki pamięci podręcznej historii;preprocessing - statystyki menedżera preprocessingu;locks - lista mutexów (jest pusta w systemach BSD). |
snmp_cache_reload |
Przeładuj pamięć podręczną SNMP - wyczyść właściwości silnika SNMP (engine time, engine boots, engine id, credentials) dla wszystkich hostów. Użyj, aby wymusić globalne wyczyszczenie pamięci podręcznej podczas rozwiązywania problemów z SNMP. | |
housekeeper_execute |
Uruchom procedurę housekeeping. Ignorowane, jeśli procedura housekeeping jest obecnie w toku. | |
log_level_increase[=<target>] |
Zwiększ poziom logowania, wpływa na wszystkie procesy, jeśli target nie jest określony. Nieobsługiwane w systemach BSD. |
process type - wszystkie procesy określonego typu (np. poller).Zobacz wszystkie typy procesów proxy. process type,N - typ procesu i numer (np. poller,3)pid - identyfikator procesu ( 1 do 65535). Dla większych wartości określ target jako 'process type,N'. |
log_level_decrease[=<target>] |
Obniż poziom logowania, wpływa na wszystkie procesy, jeśli target nie jest określony. Nieobsługiwane w systemach BSD. |
|
prof_enable[=<target>] |
Włącz profilowanie. Wpływa na wszystkie procesy, jeśli target nie jest określony. Włączone profilowanie dostarcza szczegółów wszystkich rwlocks/mutexes według nazwy funkcji. |
process type - wszystkie procesy określonego typu (np. history syncer).Zobacz wszystkie typy procesów proxy. process type,N - typ procesu i numer (np. history syncer,1).pid - identyfikator procesu ( 1 do 65535). Dla większych wartości określ target jako 'process type,N'.scope - rwlock, mutex, processing mogą być użyte z typem procesu i numerem (np. history syncer,1,processing) lub ze wszystkimi procesami danego typu (np. history syncer,rwlock). |
prof_disable[=<target>] |
Wyłącz profilowanie. Wpływa na wszystkie procesy, jeśli target nie jest określony. |
process type - wszystkie procesy określonego typu (np. history syncer).Zobacz wszystkie typy procesów proxy. process type,N - typ procesu i numer (np. history syncer,1).pid - identyfikator procesu ( 1 do 65535). Dla większych wartości określ target jako 'process type,N'. |
Gdy typ procesu jest określony jako target sterowania w czasie działania, polecenie ma zastosowanie tylko do uruchomionych procesów tego typu. Jeśli żaden proces określonego typu nie jest obecnie uruchomiony, polecenie zwraca błąd:
zabbix_proxy -R log_level_increase='data sender'
Cannot redirect signal: "data sender" process does not exist
Przykład użycia sterowania w czasie działania do przeładowania pamięci podręcznej konfiguracji proxy:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R config_cache_reload
Przykład użycia sterowania w czasie działania do wyczyszczenia pamięci podręcznej historii dla pozycji:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R history_cache_clear=42243
Przykłady użycia sterowania w czasie działania do zebrania informacji diagnostycznych:
# Zbierz wszystkie dostępne informacje diagnostyczne w pliku dziennika proxy:
zabbix_proxy -R diaginfo
# Zbierz statystyki pamięci podręcznej historii w pliku dziennika proxy:
zabbix_proxy -R diaginfo=historycache
Przykład użycia sterowania w czasie działania do przeładowania pamięci podręcznej SNMP:
zabbix_proxy -R snmp_cache_reload
Gdy interfejs SNMPv3 jest aktualizowany za pomocą interfejsu Zabbix UI, Zabbix w większości przypadków automatycznie przeładuje nowe poświadczenia SNMPv3 dla tego interfejsu; używaj -R snmp_cache_reload tylko wtedy, gdy odpytywanie nadal kończy się niepowodzeniem po zmianie poświadczeń (na przykład z powodu niespójności engineBoots/engineID lub urządzeń niezgodnych z RFC), albo gdy chcesz wymusić globalne wyczyszczenie pamięci podręcznej SNMP w celu rozwiązywania problemów.
Przykład użycia sterowania w czasie działania do uruchomienia housekeepera:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R housekeeper_execute
Przykłady użycia sterowania w czasie działania do zmiany poziomu logowania:
# Zwiększ poziom logowania wszystkich procesów:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase
# Zwiększ poziom logowania drugiego procesu poller:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=poller,2
# Zwiększ poziom logowania procesu o PID 1234:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=1234
# Zmniejsz poziom logowania wszystkich procesów http poller:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_decrease="http poller"
Użytkownik procesu
Zabbix proxy jest zaprojektowany do działania jako użytkownik inny niż root. Będzie działać jako dowolny użytkownik inny niż root, jako który zostanie uruchomiony. Możesz więc uruchomić proxy jako dowolnego użytkownika innego niż root bez żadnych problemów.
Jeśli spróbujesz uruchomić go jako root, przełączy się na zakodowanego na stałe użytkownika zabbix, który musi być obecny w twoim systemie.
Możesz uruchomić proxy jako root tylko wtedy, gdy odpowiednio zmodyfikujesz parametr AllowRoot w pliku konfiguracji proxy.
Plik konfiguracyjny
Szczegółowe informacje o konfigurowaniu zabbix_proxy można znaleźć w opcjach pliku konfiguracyjnego.
Typy procesów i wątki proxy
agent poller- asynchroniczny proces pollera dla kontroli pasywnych z wątkiem roboczym;availability manager- proces do aktualizacji dostępności hostów;browser poller- poller do kontroli pozycji przeglądarki;configuration syncer- proces zarządzający pamięcią podręczną danych konfiguracyjnych;data sender- wysyłacz danych proxy;discovery manager- proces zarządzający wykrywaniem urządzeń;discovery worker- proces obsługujący zadania wykrywania z discovery manager;history syncer- zapisujący dane historyczne do bazy danych;housekeeper- proces usuwający nieaktualną historię pozycji;http agent poller- asynchroniczny proces pollera dla kontroli HTTP z wątkiem roboczym;http poller- poller monitorowania WWW;icmp pinger- poller dla kontroli icmpping;internal poller- poller dla kontroli wewnętrznych;ipmi manager- menedżer pollera IPMI;ipmi poller- poller dla kontroli IPMI;java poller- poller dla kontroli Java;odbc poller- poller dla kontroli ODBC;poller- standardowy poller dla kontroli pasywnych;preprocessing manager- menedżer zadań preprocessingu z wątkami roboczymi preprocessingu;preprocessing worker- wątek do preprocessingu danych;self-monitoring- proces zbierający wewnętrzne statystyki serwera;snmp poller- asynchroniczny proces pollera dla kontroli SNMP z wątkiem roboczym (tylko pozycjewalk[OID]iget[OID]);snmp trapper- trapper dla pułapek SNMP;task manager- proces do zdalnego wykonywania zadań żądanych przez inne komponenty (np. zamknięcie problemu, potwierdzenie problemu, sprawdzenie wartości pozycji teraz, funkcjonalność zdalnych poleceń);trapper- trapper dla kontroli aktywnych, pułapek i komunikacji proxy;unreachable poller- poller dla niedostępnych urządzeń;vmware collector- kolektor danych VMware odpowiedzialny za zbieranie danych z usług VMware.
Plik dziennika proxy może być używany do obserwowania tych typów procesów.
Plik dziennika proxy jest tworzony z uprawnieniami do odczytu i zapisu tylko dla właściciela pliku. Dodatkowo plik jest czytelny dla grupy właściciela. Wszystkie pozostałe uprawnienia są zabronione.
Różne typy procesów proxy Zabbix można monitorować za pomocą wewnętrznej pozycji zabbix[process,<type>,<mode>,<state>].
Statystyki transakcji synchronizatora historii
Tytuł procesu synchronizatora historii wyświetla szczegółowe statystyki dotyczące transakcji synchronizatora historii.
205276 ? S 0:00 zabbix_proxy: history syncer #1 [processed 1 values in 0.001179 (0.001167,0.000000) sec, idle 1 sec]
205277 ? S 0:00 zabbix_proxy: history syncer #2 [processed 0 values in 0.000022 (0.000000,0.000000) sec, idle 1 sec]
Czasy w formacie processed...in N (<timings>) sec oznaczają:
- Czas spędzony na zapisywaniu wartości pozycji do bazy danych.
- Czas spędzony na aktualizowaniu danych pozycji (stan, błędy).
Procedura housekeeping
Proxy Zabbix ma proces housekeeper, który usuwa przestarzałą historię i trendy pozycji.
Działa on w cyklach, a częstotliwość jest określana przez HousekeepingFrequency, natomiast limit usuwania w jednym cyklu jest określany przez ProxyLocalBuffer i ProxyOfflineBuffer.
W przeciwieństwie do procedury housekeeping serwera Zabbix, proces housekeeper proxy nie korzysta z tabeli housekeeper — usuwa wszystkie przestarzałe dane raz na każdy cykl housekeeping.
Obsługiwane platformy
Proxy Zabbix działa na tej samej liście obsługiwanych platform co serwer Zabbix.
Bufor pamięci
Bufor pamięci umożliwia przechowywanie nowych danych (wartości pozycji, wykrywanie sieci, automatyczna rejestracja hosta) w buforze i przesyłanie ich do serwera Zabbix bez dostępu do bazy danych. Bufor pamięci został wprowadzony dla proxy w Zabbix 7.0.
W instalacjach sprzed Zabbix 7.0 zebrane dane były przechowywane w bazie danych przed przesłaniem do serwera Zabbix. W takich instalacjach po uaktualnieniu do Zabbix 7.0 pozostaje to domyślne zachowanie.
Aby uzyskać optymalną wydajność, zaleca się skonfigurowanie użycia bufora pamięci na proxy.
Można to zrobić, zmieniając wartość ProxyBufferMode z disk (wbudowana wartość domyślna dla istniejących instalacji) na hybrid (zalecane) lub memory.
Wymagane jest również ustawienie rozmiaru bufora pamięci (parametr ProxyMemoryBufferSize).
W trybie hybrydowym bufor jest chroniony przed utratą danych przez opróżnianie nieprzesłanych danych do bazy danych, jeśli proxy zostanie zatrzymany, bufor się zapełni lub dane staną się zbyt stare. Gdy wszystkie wartości zostaną opróżnione do bazy danych, proxy wraca do używania bufora pamięci.
W trybie pamięciowym bufor pamięci będzie używany, jednak nie ma ochrony przed utratą danych. Jeśli proxy zostanie zatrzymany lub pamięć zostanie przepełniona, nieprzesłane dane zostaną odrzucone.
Tryb hybrydowy (ProxyBufferMode=hybrid) jest stosowany do wszystkich nowych instalacji od Zabbix 7.0.
Dodatkowe parametry, takie jak ProxyMemoryBufferSize i ProxyMemoryBufferAge, określają odpowiednio rozmiar bufora pamięci oraz maksymalny wiek danych w buforze.
Należy pamiętać, że w przypadku sprzecznej konfiguracji proxy wyświetli błąd i nie uruchomi się, na przykład jeśli:
ProxyBufferModejest ustawiony nahybridlubmemory, aProxyMemoryBufferSizema wartość0.ProxyBufferModejest ustawiony nahybridlubmemory, aProxyLocalBuffernie ma wartości0.
Ustawienia regionalne
Należy pamiętać, że proxy wymaga ustawień regionalnych UTF-8, aby niektóre tekstowe pozycje mogły być poprawnie interpretowane. Większość nowoczesnych systemów typu Unix ma domyślnie ustawione ustawienia regionalne UTF-8, jednak w niektórych systemach może być konieczne ich ręczne skonfigurowanie.
Obliczanie kolejek podczas konserwacji
Zabbix proxy nie jest świadomy okresów konserwacji; szczegółowe informacje można znaleźć w sekcji Obliczanie kolejek podczas konserwacji.