Nesta página

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:

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.