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 do Zabbix consulta o Zabbix Java gateway, que usa a API de gerenciamento JMX para consultar remotamente a aplicação de interesse.
A aplicação não precisa de nenhum software adicional instalado; basta iniciá-la com a opção -Dcom.sun.management.jmxremote na linha de comando.
O Java gateway aceita conexões de entrada do server ou proxy do Zabbix e só pode ser usado como um "proxy passivo". Ao contrário do Zabbix proxy, ele também pode ser usado a partir do Zabbix proxy (os Zabbix proxies não podem ser encadeados). O acesso a cada Java gateway é configurado diretamente no arquivo de configuração do server ou proxy do Zabbix; portanto, apenas um Java gateway pode ser configurado por server ou proxy do 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 via Java gateway, o Zabbix server ou proxy se conectará ao Java gateway e solicitará o valor, que o Java gateway, por sua vez, recupera e repassa ao server ou proxy. Assim, o Java gateway não armazena em cache nenhum valor.
O Zabbix server ou proxy possui um tipo específico de processos que se conectam ao Java gateway, controlados 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 pode estar ocupado recuperando o valor do contador JMX.
Para resolver isso, existe a opção TIMEOUT no Java gateway, que permite definir o 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.