Na tej stronie

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 jest dostępna 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 instalacji dodatkowego oprogramowania, musi jedynie zostać uruchomiona z opcją -Dcom.sun.management.jmxremote w wierszu poleceń.

Java gateway akceptuje połączenia przychodzące z 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 serwer Zabbix lub 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 JMX agent zostaną przekazane do Java gateway w celu pobrania.

Gdy pozycja musi zostać zaktualizowana za pośrednictwem Java gateway, serwer Zabbix lub proxy łączy się z Java gateway i żąda wartości, którą Java gateway pobiera, a następnie 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. Ich liczbą steruje opcja StartJavaPollers. Wewnętrznie Java gateway uruchamia wiele wątków, których liczbą steruje opcja START_POLLERS. Po stronie serwera, jeśli połączenie trwa dłużej niż liczba sekund określona w parametrze „Timeout”, zostanie ono zakończone, ale Java gateway może nadal zajmować się pobieraniem wartości z licznika JMX. Aby rozwiązać ten problem, Java gateway udostępnia opcję 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.