5 Java 게이트웨이
원본 보기5 Java gateway
개요
Zabbix Java gateway는 소스 코드나 패키지로 설치할 수 있습니다.
JMX 애플리케이션 모니터링에 대한 네이티브 지원은 "Zabbix Java gateway"라고 불리는
Zabbix 데몬의 형태로 존재합니다.
Zabbix Java gateway는 Java로 작성된 데몬입니다. 호스트에서
특정 JMX 카운터의 값을 찾기 위해, Zabbix server는 Zabbix Java
gateway에 쿼리하고, 이는 JMX management
API를
사용하여 대상 애플리케이션을 원격으로 쿼리합니다. 애플리케이션은
추가 소프트웨어 설치가 필요하지 않으며, 단지 명령줄에서
-Dcom.sun.management.jmxremote 옵션으로 시작하기만 하면 됩니다.
Java gateway는 Zabbix server나 proxy로부터 들어오는 연결을 허용하고 "패시브 프록시"로만 사용할 수 있습니다. Zabbix proxy와 달리, Zabbix proxy에서도 사용할 수 있습니다(Zabbix proxy들은 연결될 수 없습니다). 각 Java gateway에 대한 접근은 Zabbix server나 proxy 설정 파일에서 직접 구성되므로, Zabbix server나 Zabbix proxy당 하나의 Java gateway만 구성할 수 있습니다. 호스트에 JMX agent 타입의 항목과 다른 타입의 항목이 있는 경우, JMX agent 항목만 Java gateway로 전달되어 검색됩니다.
Java gateway를 통해 항목을 업데이트해야 하는 경우, Zabbix server나 proxy는 Java gateway에 연결하여 값을 요청하고, Java gateway는 차례로 값을 검색하여 server나 proxy에 다시 전달합니다. 따라서 Java gateway는 어떤 값도 캐시하지 않습니다.
Zabbix server나 proxy는 Java gateway에 연결하는 특별한 타입의 프로세스를 가지고 있으며, 이는 StartJavaPollers 옵션으로 제어됩니다. 내부적으로 Java gateway는 START_POLLERS 옵션으로 제어되는 여러 스레드를 시작합니다. 서버 쪽에서 연결이 Timeout 초보다 오래 걸리면 종료되지만, Java gateway는 여전히 JMX 카운터에서 값을 검색하느라 바쁠 수 있습니다. 이를 해결하기 위해 JMX 네트워크 작업에 대한 타임아웃을 설정할 수 있는 Java gateway의 TIMEOUT 옵션이 있습니다.
Zabbix server나 proxy는 단일 JMX 대상에 대한 요청을 가능한 한 많이 함께 풀링하여(항목 간격의 영향을 받음) 더 나은 성능을 위해 단일 연결로 Java gateway에 보내려고 합니다.
StartJavaPollers를 START_POLLERS보다 작거나 같게 설정하는 것이 좋습니다. 그렇지 않으면 Java gateway에서 들어오는 요청을 처리할 수 있는 스레드가 없는 상황이 발생할 수 있습니다. 이런 경우 Java gateway는 ThreadPoolExecutor.CallerRunsPolicy를 사용하는데, 이는 메인 스레드가 들어오는 요청을 처리하고 일시적으로 새로운 요청을 받지 않는다는 의미입니다.
Zabbix Java gateway로 Wildfly 기반 Java 애플리케이션을 모니터링하려는 경우, Wildfly 다운로드 페이지에서 사용 가능한 최신 jboss-client.jar를 설치하십시오.