On this page

5 Java gateway

Przegląd

Zabbix Java gateway można zainstalować z kodu źródłowego lub z pakietów.

Natywna obsługa monitorowania aplikacji JMX jest dostępna w postaci demona Zabbix o nazwie „Zabbix Java gateway”. Zabbix Java gateway jest demonem napisanym w języku Java. Aby ustalić wartość określonego licznika JMX na hoście, serwer Zabbix odpytuje Zabbix Java gateway, który używa API zarządzania JMX do zdalnego odpytywania interesującej aplikacji. Aplikacja nie wymaga instalacji żadnego dodatkowego oprogramowania, musi jedynie zostać uruchomiona z opcją -Dcom.sun.management.jmxremote w wierszu poleceń.

Java gateway akceptuje połączenia przychodzące z serwera Zabbix lub proxy i może być używany wyłącznie jako „pasywny proxy”. W przeciwieństwie do Zabbix proxy, może być również używany przez Zabbix proxy (proxy Zabbix nie mogą być łączone kaskadowo). Dostęp do każdego Java gateway jest konfigurowany bezpośrednio w pliku konfiguracji serwera Zabbix lub proxy, dlatego dla jednego serwera Zabbix lub jednego proxy Zabbix można skonfigurować tylko jeden Java gateway. Jeśli host będzie miał pozycje typu JMX agent oraz pozycje innego typu, tylko pozycje typu JMX agent będą przekazywane do Java gateway w celu pobrania danych.

Gdy pozycja musi zostać zaktualizowana przez Java gateway, serwer Zabbix lub proxy połączy się z Java gateway i zażąda wartości, którą Java gateway z kolei pobierze i przekaże 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. 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 rozwiązać ten problem, w Java gateway dostępna jest opcja TIMEOUT, która pozwala ustawić limit czasu dla operacji sieciowych JMX.

Serwer Zabbix lub proxy będzie próbował w jak największym stopniu grupować żądania do jednego celu JMX razem (z uwzględnieniem interwałów pozycji) i wysyłać je do Java gateway w ramach jednego połączenia w celu uzyskania lepszej wydajności.

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 wątków do obsługi przychodzących żądań; w takim przypadku Java gateway używa ThreadPoolExecutor.CallerRunsPolicy, co oznacza, że główny wątek będzie obsługiwał 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.