Java gateway
Visão geral
O Java gateway do Zabbix pode ser instalado a partir do código-fonte ou de pacotes.
O suporte nativo ao 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 determinado contador JMX em um host, o Zabbix server consulta o Zabbix Java gateway, que usa a API de gerenciamento JMX para consultar remotamente a aplicação de interesse.
Não é necessário instalar software adicional na aplicação; basta iniciá-la com a opção -Dcom.sun.management.jmxremote na linha de comando.
O Java gateway aceita conexões de entrada do Zabbix server ou do proxy e só pode ser usado como um "proxy passivo". Ao contrário do proxy do Zabbix, ele também pode ser usado a partir de um proxy do Zabbix (os proxies do Zabbix não podem ser encadeados). O acesso a cada Java gateway é configurado diretamente no arquivo de configuração do server do Zabbix ou do proxy do Zabbix; portanto, apenas um Java gateway pode ser configurado por Zabbix server ou Zabbix proxy. Se um host tiver itens do tipo JMX agent e itens de outros tipos, somente os itens JMX agent serão enviados ao Java gateway para obtenção.
Quando um item precisa ser atualizado por meio do Java gateway, o server ou proxy do Zabbix se conecta ao Java gateway e solicita 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 server ou proxy do Zabbix 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.
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 timeout para operações de rede JMX.
Veja também:
- Parâmetros de configuração: Zabbix Java gateway
- Configuração a partir dos pacotes Debian/Ubuntu
- Configuração a partir dos pacotes RHEL
- Configuração a partir do código-fonte
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.