terça-feira, 17 de maio de 2011

JBoss - Monitorando JBoss com o Nagios

Uma solução simples é monitorar a instância do JBoss através do Nagios. Logo vem a pergunta "Ah, mas ping e  tcp? Não vale", não, estou falando aqui de monitoramento via JMX, ou seja, mesmo tipo de consulta que o Jopr/JON e twiddle fazem na instância. 


Entendendo a coisa, serão necessários dois arquivos apenas:


check_mbean_collector - O plugin de checagem que fará a consulta.
collector.sar - É uma aplicação Java que deve ser implantada no JBoss, se seu JBoss tem habilitado Hotdeploy então basta copiar para a pasta 'deploy' da instância. NÃO UTILIZE A 'farm' em caso de cluster. Depois explico o porquê. 


Ambos podem ser obtidos em http://en.sourceforge.jp pois o link de sourceforge padrão está quebrado.  


Feito o deploy a porta 5566 deve ficar como LISTEN, pode testar com o comando abaixo:


# netstat -anp | grep 5566 


Então agora basta utilizar o plugin no seu Nagios para monitorar o objeto desejado:


$USER1$/check_mbean_collector -H $HOSTADDRESS$ -p $ARG1$ -m $ARG2$ -a $ARG3$ -w $ARG4$ -c $ARG5$


Está dada a barbada, no final um exemplo fica mais ou menos assim se quiser executar na console:


/usr/lib/nagios/libexec/check_mbean_collector -H 10.10.140.2 -p 5566 -m jboss.system:type=ServerInfo -a ActiveThreadCount -w 200 -c 400


Mas por que passar a da instância porta por parâmetro? Sim, o "-p" é porta se não deu um help no "check_mbean_collector". 


Isso porque se você tiver duas ou mais instâncias em um servidor terá de alterar a porta que o collector ouve, isso se faz extraindo o sar com um jar, alterando o parâmetro de 'port' dentro do diretório 'META-INF' e compactando novamente. AHHH, por isso não indiquei o uso do 'farm', pois como duas instâncias ou mais ouvirão na mesma porta?! Então sempre use a pasta 'deploy' ainda que em cluster. 







Nenhum comentário:

Postar um comentário