Natywna obsługa monitorowania aplikacji JMX istnieje w postaci demona Zabbix o nazwie "Zabbix Java gateway", dostępnego od wersji Zabbix 2.0. Zabbix Java gateway to demon napisany w Java. Aby poznać wartość konkretnego licznika JMX na hoście, serwer Zabbix wysyła zapytanie do Zabbix Java gateway, który używa API zarządzania JMX by zdalnie odpytać aplikację o dane. Aplikacja nie wymaga instalowania żadnego dodatkowego oprogramowania, wystarczy ją uruchomić 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żywana tylko jako "pasywne proxy". W przeciwieństwie do proxy Zabbix, może być również używany z proxy Zabbix (proxy Zabbix nie mogą być łączone). Dostęp do każdej Java gateway jest konfigurowany bezpośrednio w pliku konfiguracyjnym serwera Zabbix lub proxy, dlatego tylko jedna Java gateway może być skonfigurowana na serwerze Zabbix lub proxy Zabbix. Jeśli host będzie zawierał pozycje typu agent JMX i pozycje innego typu, tylko pozycje agent JMX zostaną przekazane do Java gateway w celu pobrania.
Gdy pozycja musi zostać zaktualizowana przez Java gateway, serwer Zabbix lub proxy łą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 przechowuje żadnych wartości w pamięci podręcznej.
Serwer Zabbix lub proxy ma określony typ procesów, które łączą się z Java gateway, sterowaną 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 przerwane, ale Java gateway może nadal być zajęta pobieraniem wartości z licznika JMX. Aby rozwiązać ten problem, w Java gateway dostępna jest opcja TIMEOUT, która umożliwia ustawienie limitu czasu dla operacji sieciowych JMX.
Serwer Zabbix lub proxy spróbuje połączyć żądania do pojedynczego celu JMX tak bardzo, jak to możliwe (na co wpływają interwały pozycji) i wysłać je do Java gateway w jednym połączeniu w celu uzyskania lepszej wydajności.
Sugeruje się, aby wartość StartJavaPollers była mniejsza lub równa START_POLLERS, w przeciwnym razie mogą wystąpić sytuacje, w których w Java gateway nie będą dostępne żadne wątki do obsługi żądań przychodzących; w takim przypadku Java korzysta z ThreadPoolExecutor.CallerRunsPolicy, co oznacza, że główny wątek będzie obsługiwał przychodzące żądania i chwilowo 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.
Java gateway można zainstalować ze źródeł lub pakietów pobranych z strony internetowej Zabbix.
Korzystając z poniższych linków, możesz uzyskać dostęp do informacji, jak pobrać i uruchomić Zabbix Java gateway, jak skonfigurować serwer Zabbix (lub proxy Zabbix) do użycia Zabbix Java gateway dla monitoringu JMX, oraz jak skonfigurować pozycje Zabbix w frontendzie Zabbix, które odpowiadają poszczególnym licznikom JMX.
Instalacja z | Instrukcje | Instrukcje |
---|---|---|
Źródeł | Instalacja | Konfiguracja |
Pakiety RHEL | Instalacja | Konfiguracja |
Pakiety Debian/Ubuntu | Instalacja | Konfiguracja |