5 Java gateway

Visão geral

O Zabbix Java gateway pode ser instalado a partir do código-fonte ou de pacotes.

Há suporte nativo para monitoramento de aplicações JMX 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 Zabbix server 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; ela apenas deve ser iniciada com a opção -Dcom.sun.management.jmxremote na linha de comando.

O Java gateway aceita conexões de entrada do Zabbix server ou proxy 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 (proxies do Zabbix não podem ser encadeados). O acesso a cada Java gateway é configurado diretamente no arquivo de configuração do Zabbix server ou proxy; assim, apenas um Java gateway pode ser configurado por Zabbix server ou Zabbix proxy. Se um host tiver items do tipo JMX agent e items de outro tipo, somente os items do tipo JMX agent serão encaminhados ao Java gateway para coleta.

Quando um item precisa ser atualizado via Java gateway, o Zabbix server ou proxy irá 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 processo que se conecta ao Java gateway, controlado pela opção StartJavaPollers. Internamente, o Java gateway inicia múltiplas threads, controladas pela opção START_POLLERS opção. No lado do server, se uma conexão demorar mais do que 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 tanto quanto possível (afetado pelos intervalos dos items) e enviá-las para o Java gateway em uma única conexão para melhor desempenho.

Sugere-se que o StartJavaPollers seja menor ou igual a START_POLLERS, caso contrário, pode haver situações em que nenhuma thread esteja disponível no Java gateway para atender às solicitações recebidas; nesse caso, o Java gateway usa ThreadPoolExecutor.CallerRunsPolicy, o que significa que a thread principal atenderá à solicitação recebida e não aceitará novas solicitações temporariamente.

Se você estiver tentando monitorar aplicações Java baseadas em Wildfly com o Zabbix Java gateway, instale o jboss-client.jar mais recente disponível na página de download do Wildfly.