Você está na página 1de 4

2018/04/17 18:54 1/4 5 Java gateway

5 Java gateway

Visão geral

O Zabbix 2.0 inovou com o suporte nativo ao monitoramento de aplicações Java através de JMX, este
suporte foi adicionado através do componente “Zabbix Java Gateway”. Ele é um processo de
background (daemon) escrito em Java. Quando o Zabbix Server precisa coletar um item (dado)
através de um contador JMX em um host, ele solicita ao Zabbix Java Gateway, que utiliza a API de
gerência JMX para requisitar da aplicação o dado de interesse. A aplicação não precisa de softwares
adicionais, apenas necessita ter sido iniciada com a opção -Dcom.sun.management.jmxremote no
momento de sua inicialização (linha de comando).

O Zabbix Java Gateway aceita conexões oriundas do Zabbix Server e do Zabbix Proxy e só pode ser
utilizado como um “proxy passivo”. Ao contrário do que ocorre com um Zabbix Proxy o Zabbix Java
Gateway pode estar atrás de outro proxy (um Zabbix Proxy). O acesso a cada Zabbix Java Gateway é
configurado diretamente no arquivo de configuração do Zabbix Server ou do Zabbix Proxy e só pode
existir um Zabbix Java Gateway por Zabbix Server ou Zabbix Proxy. Se você precisar de ter mais de
um Zabbix Java Gateway em um mesmo ambiente da solução Zabbix você precisará configurar um
novo Zabbix Proxy para cada Zabbix Java Gateway. Se um host possuir itens do tipo JMX agent e
itens de outros tipos, apenas os itens do tipo JMX agent serão solicitados ao Zabbix Java Gateway.

O Zabbix Java Gateway não faz cache de nenhum valor coletado.

O Zabbix Server ou Zabbix Proxy tem um processo específico para se conectar ao Zabbix Java
Gateway, controlado pela opção StartJavaPollers. Internamente o Zabbix Java Gateway inicia
múltiplas threads, controladas pela opção START_POLLERS. No lado do servidor, se a conexão
demorar mais do que o limite em segundos da opção Timeout, a requisição será terminada
(abortada), mas o Zabbix Java Gateway continuará aguardando pela coleta do contador JMX. Para
resolver isso, desde o Zabbix 2.0.15, Zabbix 2.2.10 e Zabbix 2.4.5 foi adicionada a opção TIMEOUT
no Zabbix Java Gateway que permite definir o tempo máximo para as operações remotas do JMX.

O Zabbix Server ou o Zabbix Proxy irá agrupar as requisições em uma única requisição JMX, sempre
que possível (é afetado pelos intervalos entre coletas), e enviar para o Zabbix Java Gateway em uma
única conexão visando obter melhor performance.

É recomendável configurar a opção StartJavaPollers com valor menor ou igual à opção


START_POLLERS, de outra forma existirão situações onde não existirão trheads disponíveis para
atender às requisições.

A sessão abaixo descreve como obter e como executar o Zabbix Java Gateway, como configurar o
Zabbix Server (ou Zabbix Proxy) para usar o Zabbix Java Gateway para monitoração JMX, e como
configurar os itens do Zabbix em sua interface web para coletar um contador JMX específico.

5.1 Obtendo o Zabbix Java Gateway

Existem duas formas de se obter o Zabbix Java Gateway. A primeira forma é adquirir o pacote do
Zabbix Java Gateway package do site da Zabbix e a segunda é compilar a partir de seu código fonte.

Zabbix Documentation 3.4 - https://www.zabbix.com/documentation/3.4/


Last update: 2016/09/28 08:26 pt:manual:concepts:java https://www.zabbix.com/documentation/3.4/pt/manual/concepts/java

5.1.1 Adquirir do site da Zabbix

Os pacotes do Zabbix Java Gateway (RHEL, Debian, Ubuntu) estão disponíveis para download em
http://www.zabbix.com/download.php.

5.1.2 Compilando a partir do código fonte

Para compilar o Zabbix Java Gateway, primeiramente execute o script ./configure com o
parâmetro --enable-java. É aconselhável que você especifique também o parâmetro --prefix
para utilizar outro caminho que não o padrão (/usr/local), o Zabbix Java Gateway irá criar toda a
árvore de diretórios, não somente o executável.

$ ./configure --enable-java --prefix=$PREFIX

Para compilar e empacotar o Zabbix Java Gateway em um arquivo JAR, execute o make. Observe que
para este passo você precisará dos executáveis javac e jar em seu path.

$ make

Após a execução do make será criado o arquivo zabbix-java-gateway-$VERSION.jar em


src/zabbix_java/bin. Se você preferir poderá ajustar o Zabbix Java Gateway para funcionamento a
partir de src/zabbix_java no diretório da distribução, para tanto, precisará seguir as instruções de
configuração e execução do Zabbix Java Gateway. Caso contrário, se você possuir privilégios
suficientes, execute make install.

$ make install

5.2 Visão geral dos arquivos na da distribuição do Zabbix Java Gateway

Independentemente da forma de obtenção do Zabbix Java Gateway, neste momento você possui uma
coletânia de scripts para o shell, arquivos JAR e arquivos de configuração localizados em
$PREFIX/sbin/zabbix_java. O papel deles é descrito a seguir:

O Zabbix Java Gateway em sí.

bin/zabbix-java-gateway-$VERSION.jar

Dependências do Zabbix Java Gateway: Logback, SLF4J, e Android JSON library.

lib/logback-core-0.9.27.jar
lib/logback-classic-0.9.27.jar
lib/slf4j-api-1.6.1.jar
lib/android-json-4.3_r3.1.jar

Arquivos de configuração de log.

lib/logback.xml

https://www.zabbix.com/documentation/3.4/ Printed on 2018/04/17 18:54


2018/04/17 18:54 3/4 5 Java gateway

lib/logback-console.xml

Scripts para inicialização e finalização do Zabbix Java Gateway.

shutdown.sh
startup.sh

Arquivo de configuração dos scripts anteriores.

settings.sh

5.3 Configurando e executando o Zabbix Java gateway

Por padrão o Zabbix Java Gateway escuta a porta 10052. Se você planeja executa-lo em outra porta
é possível a configuração usando o script settings.sh. Veja a descrição do arquivo de configuração
do Zabbix Java Gateway para melhor entendimento de suas opções.

A porta 10052 não é registrada no IANA.

Uma vez que as configurações estejam conforme sua necessidade, você poderá inicia-lo através do
script de inicialização:

$ ./startup.sh

Por outro lado, se você necessita de parar o serviço, execute o script de finalização:

$ ./shutdown.sh

Diferentemente do Zabbix Server e do Zabbix Proxy o Zabbix Java Gateway é leve e não necessita de
um banco de dados.

5.4 Configurando o Zabbix Server para uso em conjunto com o Zabbix Jav Gateway Java
gateway

Neste momento o Zabbix Java Gateway está apto para execução e você pode configurar o Zabbix
Server para que ele saiba localiza-lo. Esta tarefa pode ser concluída especificando os parâmetros
JavaGateway e JavaGatewayPort no arquivo de configuração do Zabbix Server. Se o host com a
aplicação JMX em execução for monitorado através de um Zabbix Porxy, você deverá definir tais
parâmetros no arquivo de configuração do proxy.

JavaGateway=192.168.3.14
JavaGatewayPort=10052

Por padrão o Zabbix Server não inicia nenhum processo relacionado à monitoração JMX. Se você
necessita deste tipo de monitoração deverá especificar uma quantidade de processos de pooler Java
a serem pré-alocados. Esta configuração é feita no mesmo arquivo através do parâmetro a seguir:

Zabbix Documentation 3.4 - https://www.zabbix.com/documentation/3.4/


Last update: 2016/09/28 08:26 pt:manual:concepts:java https://www.zabbix.com/documentation/3.4/pt/manual/concepts/java

StartJavaPollers=5

Não se esqueça de reiniciar o Zabbix Server ou Zabbix Proxy após alterar suas configurações.

5.5 Debugando o Zabbix Java Gateway

Caso ocorram problemas com o Zabbix Java Gateway ou caso a mensagem de erro apresentada na
interface web do Zabbix não seja clara o suficiente, você poderá necessitar analisar o arquivo de log
do Zabbix Java Gateway.

Por padrão, as atividades do Zabbix Java Gateway são registradas no arquivo /tmp/zabbix_java.log
com o nível de log: “info”. Algumas vezes o nível de detalhe da informação lá constante pode não ser
suficiente, sendo necessário o incremento da quantidade de informações registradas. Este
incremento de nível de log pode ser feito ao modificar o arquivo lib/logback.xml modificando o
parâmetro “level” da tag <root> para “debug”:

<root level="debug">
<appender-ref ref="FILE" />
</root>

Observe que, diferentemente do Zabbix Server ou Zabbix Proxy, não é necessário o reinicio do Zabbix
Java Gateway quando o arquivo logback.xml é modificado. Quando você concluir o debug, poderá
retornar o nível para “info”.

Se você necessitar de registrar o log de outras formas, poderá ajustar o logback.xml conforme suas
necessidades. Observe o manual do log para mais detalhes.

Algumas vezes para as ações de debug é útil iniciar o Zabbix Java Gateway é útil inicia-lo como uma
aplicação de console (shell) ao invés do modo de background (daemon). Para fazer isso comente a
variável PID_FILE em settings.sh. Se a variável PID_FILE estiver ausente, o script startup.sh
iniciará o Zabbix Java Gateway como uma aplicação de console e configurará o Logback para o
arquivo lib/logback-console.xml, tal configuração não apenas demonstrará as mensagens na console,
também irá habilitar o modo de log para “debug”.

Finalmente, observe que o Zabbix Java Gateway usa o SLF4J para as atividades de log, você pode
substituir o Logback pelo framework de sua escolha ao colocar o arquivo JAR apropriado dentro do
diretório lib. Para mais detalhes consulte o manual do SLF4J.

From:
https://www.zabbix.com/documentation/3.4/ - Zabbix Documentation 3.4

Permanent link:
https://www.zabbix.com/documentation/3.4/pt/manual/concepts/java

Last update: 2016/09/28 08:26

https://www.zabbix.com/documentation/3.4/ Printed on 2018/04/17 18:54

Você também pode gostar