5 Java gateway
Przegląd
Zabbix Java gateway można zainstalować z kodu źródłowego lub pakietów.
Natywna obsługa monitorowania aplikacji JMX istnieje w postaci demona Zabbix o nazwie "Zabbix Java gateway".
Zabbix Java gateway to demon napisany w języku Java.
Aby odczytać wartość określonego licznika JMX na host, serwer Zabbix wysyła zapytanie do Zabbix Java gateway, który używa JMX management API do zdalnego odpytywania interesującej aplikacji.
Aplikacja nie wymaga zainstalowania dodatkowego oprogramowania, wystarczy uruchomić ją z opcją -Dcom.sun.management.jmxremote w wierszu poleceń.
Java gateway przyjmuje połączenia przychodzące od serwer Zabbix lub proxy i może być używany wyłącznie jako "passive proxy". W przeciwieństwie do Zabbix proxy, może być również używany z poziomu Zabbix proxy (proxy Zabbix nie mogą być łączone w łańcuch). Dostęp do każdego Java gateway jest konfigurowany bezpośrednio w pliku konfiguracyjnym serwer Zabbix lub proxy, dlatego dla jednego serwer Zabbix lub proxy można skonfigurować tylko jeden Java gateway. Jeśli host będzie miał pozycje typu JMX agent oraz pozycje innego typu, tylko pozycje JMX agent zostaną przekazane do Java gateway w celu pobrania.
Gdy pozycja musi zostać zaktualizowana za pośrednictwem Java gateway, serwer Zabbix lub proxy połączy się z Java gateway i zażąda wartości, którą Java gateway następnie pobiera i przekazuje z powrotem do serwera lub proxy. W związku z tym Java gateway nie buforuje żadnych wartości.
Serwer Zabbix lub proxy ma określony typ procesów, które łączą się z Java gateway, kontrolowany przez opcję StartJavaPollers.
Wewnętrznie Java gateway uruchamia wiele wątków, kontrolowanych przez opcję START_POLLERS option.
Po stronie serwera, jeśli połączenie trwa dłużej niż "Timeout" sekund, zostanie zakończone, ale Java gateway może nadal być zajęty pobieraniem wartości z licznika JMX.
Aby to rozwiązać, w Java gateway dostępna jest opcja TIMEOUT, która umożliwia ustawienie limitu czasu dla operacji sieciowych JMX.
Serwer Zabbix lub proxy będzie próbował możliwie najbardziej grupować żądania do pojedynczego celu JMX (zależnie od interwałów pozycji) i wysyłać je do Java gateway w jednym połączeniu, aby uzyskać lepszą wydajność.
Zaleca się, aby StartJavaPollers było mniejsze lub równe START_POLLERS; w przeciwnym razie mogą wystąpić sytuacje, w których w Java gateway nie będzie dostępnych żadnych wątków do obsługi przychodzących żądań.
W takich przypadkach Java gateway używa ThreadPoolExecutor.CallerRunsPolicy, co oznacza, że główny wątek obsłuży przychodzące żądanie i tymczasowo nie będzie przyjmował żadnych nowych żądań.
Jeśli próbujesz monitorować aplikacje Java oparte na Wildfly za pomocą Zabbix Java gateway, zainstaluj najnowszy plik jboss-client.jar dostępny na stronie pobierania Wildfly.