5 Java gateway
Visão geral
O Zabbix Java gateway pode ser instalado a partir do código-fonte ou de pacotes.
O suporte nativo para monitoramento de aplicações JMX existe na forma de um daemon do Zabbix chamado "Zabbix Java gateway".
O Zabbix Java gateway é um daemon escrito em Java.
Para descobrir o valor de um contador JMX específico em um host, o server Zabbix consulta o Zabbix Java gateway, que usa a JMX management API para consultar remotamente a aplicação de interesse.
A aplicação não precisa de nenhum software adicional instalado; basta ser iniciada com a opção -Dcom.sun.management.jmxremote na linha de comando.
O Java gateway aceita conexões de entrada do server Zabbix ou proxy e só pode ser usado como um "passive proxy". Ao contrário do Zabbix proxy, ele também pode ser usado a partir do Zabbix proxy (Zabbix proxies não podem ser encadeados). O acesso a cada Java gateway é configurado diretamente no arquivo de configuração do server Zabbix ou do proxy, portanto apenas um Java gateway pode ser configurado por server Zabbix ou proxy Zabbix. Se um host tiver items do tipo JMX agent e items de outro tipo, apenas os items JMX agent serão passados ao Java gateway para coleta.
Quando um item precisa ser atualizado por meio do Java gateway, o Zabbix server ou proxy se conecta ao Java gateway e solicita o valor, que o Java gateway, por sua vez, recupera e retorna ao server ou proxy. Dessa forma, o Java gateway não armazena nenhum valor em cache.
O Zabbix server ou proxy possui um tipo específico de processo que se conecta ao Java gateway, controlado pela opção StartJavaPollers.
Internamente, o Java gateway inicia várias threads, controladas pela opção START_POLLERS option.
No lado do server, se uma conexão levar mais de "Timeout" segundos, ela será encerrada, mas o Java gateway ainda poderá estar ocupado recuperando o valor do contador JMX.
Para resolver isso, o Java gateway fornece a opção TIMEOUT, que permite definir um tempo limite para operações de rede JMX.
O server ou proxy do Zabbix tentará agrupar as solicitações para um único destino JMX o máximo possível (afetado pelos intervalos dos item) e enviá-las ao Java gateway em uma única conexão para melhor desempenho.
É recomendável que StartJavaPollers seja menor ou igual a START_POLLERS; caso contrário, pode haver situações em que não haja threads disponíveis no Java gateway para atender às solicitações recebidas.
Nesses casos, o Java gateway usa ThreadPoolExecutor.CallerRunsPolicy, o que significa que a thread principal atenderá à solicitação recebida e, temporariamente, não aceitará novas solicitações.
Se você estiver tentando monitorar aplicações Java baseadas em Wildfly com o Java gateway do Zabbix, instale o jboss-client.jar mais recente disponível na página de download do Wildfly.