Java 게이트웨이
개요
Zabbix Java 게이트웨이는 소스 코드 또는 패키지로 설치할 수 있습니다.
JMX 애플리케이션 모니터링에 대한 기본 지원은 "Zabbix Java 게이트웨이"라는 Zabbix 데몬 형태로 제공됩니다.
Zabbix Java 게이트웨이는 Java로 작성된 데몬입니다.
호스트에서 특정 JMX 카운터의 값을 확인하기 위해 Zabbix 서버는 Zabbix Java 게이트웨이에 질의하고, Java 게이트웨이는 JMX 관리 API를 사용해 대상 애플리케이션에 원격으로 질의합니다.
해당 애플리케이션에는 추가 소프트웨어를 설치할 필요가 없으며, 명령줄에서 -Dcom.sun.management.jmxremote 옵션을 지정해 시작하기만 하면 됩니다.
Java 게이트웨이는 Zabbix 서버 또는 프록시로부터 들어오는 연결을 수신하며 "패시브 프록시"로만 사용할 수 있습니다. Zabbix 프록시와 달리, Zabbix 프록시에서도 사용할 수 있습니다(Zabbix 프록시는 체인으로 연결할 수 없습니다). 각 Java 게이트웨이에 대한 접근은 Zabbix 서버 또는 프록시 설정 파일에서 직접 구성하므로, Zabbix 서버 또는 Zabbix 프록시당 하나의 Java 게이트웨이만 구성할 수 있습니다. 호스트에 JMX 에이전트 유형의 아이템과 다른 유형의 아이템이 함께 있는 경우, JMX 에이전트 아이템만 값 조회를 위해 Java 게이트웨이로 전달됩니다.
아이템을 Java 게이트웨이를 통해 갱신해야 할 때, Zabbix 서버 또는 프록시가 Java 게이트웨이에 연결해 값을 요청하고, Java 게이트웨이는 그 값을 조회해 서버 또는 프록시로 되돌려줍니다. 따라서 Java 게이트웨이는 어떤 값도 캐시하지 않습니다.
Zabbix 서버 또는 프록시에는 Java 게이트웨이에 연결하는 전용 프로세스 유형이 있으며, StartJavaPollers 옵션으로 제어됩니다.
내부적으로 Java 게이트웨이는 여러 스레드를 시작하며, 이는 START_POLLERS 옵션으로 제어됩니다.
서버 측에서는 연결이 "Timeout" 초를 초과하면 종료되지만, Java 게이트웨이는 여전히 JMX 카운터에서 값을 조회하는 중일 수 있습니다.
이를 해결하기 위해 Java 게이트웨이에는 JMX 네트워크 작업의 타임아웃을 설정할 수 있는 TIMEOUT 옵션이 있습니다.
Zabbix 서버 또는 프록시는 성능 향상을 위해 단일 JMX 대상에 대한 요청을 가능한 한 모아서(아이템 주기의 영향을 받음) 하나의 연결로 Java 게이트웨이에 전송하려고 시도합니다.
StartJavaPollers는 START_POLLERS 이하로 설정하는 것을 권장합니다. 그렇지 않으면 Java 게이트웨이에 들어오는 요청을 처리할 스레드가 없는 상황이 발생할 수 있습니다.
이런 경우 Java 게이트웨이는 ThreadPoolExecutor.CallerRunsPolicy를 사용하며, 이는 메인 스레드가 들어온 요청을 처리하고 일시적으로 새로운 요청을 받지 않는다는 의미입니다.
Zabbix Java 게이트웨이로 Wildfly 기반 Java 애플리케이션을 모니터링하려는 경우, Wildfly 다운로드 페이지에서 제공되는 최신 jboss-client.jar를 설치하세요.