Monitoração da JVM via JMX e SNMP
2010/08/21 Deixe um comentário
Este post apresenta de forma sucinta os passos necessários para configuração dos agentes JMX e SNMP na Máquina Virtual Java (JVM) assim como exemplos de utilização das ferramentas jconsole e snmpwalk para monitoração. Esse conteúdo é baseado na documentação de gerenciamento da JDK Sun/Oracle.
A instalação padrão da JRE/JDK possui um modelo dos arquivos management.properties e snmp.acl com todas as configurações disponíveis (ambos em $JAVA_HOME/jre/lib/management/). Para facilitar a leitura e manutenção recomendo criar estes arquivos na estrutura de diretórios da sua aplicação, principalmente porque isso será necessário caso queira monitorar mais de uma JVM na mesma máquina (ver exemplo do Tomcat abaixo).
snmp.acl
Crie o arquivo snmp.acl no local desejado com as linhas abaixo. Tenha em mente que o dono desse arquivo deve ser o mesmo do processo da JVM, a não ser que esteja executando com root que não é recomendável, diga-se de passagem:
acl = {
{
communities = public, private
access = read-only
managers = 0.0.0.0/0
}
}
altere as permissões do mesmo para 600 (leitura e escrita apenas para o dono):
chmod 600 <CAMINHO_ARQUIVO_SNMP_ACL>
management.properties
Crie o arquivo management.properties no local desejado e insira as linha a seguir. Neste exemplo utilizamos as portas 9998 e 9999 para os agentes SNMP e JMX consecutivamente. Não esqueça de substituir <CAMINHO_ARQUIVO_SNMP_ACL> pelo caminho absoluto do arquivo snmp.acl:
com.sun.management.jmxremote.port=9999 com.sun.management.jmxremote.authenticate=false com.sun.management.jmxremote.ssl=false com.sun.management.snmp.port=9998 com.sun.management.snmp.interface=0.0.0.0 com.sun.management.snmp.acl.file=<CAMINHO_ARQUIVO_SNMP_ACL>
Inicialização da JVM
Adicione o seguinte parâmetro na inicialização da JVM:
-Dcom.sun.management.config.file=<CAMINHO_ARQUIVO_MANAGEMENT_PROPERTIES>
Tomcat
Sugiro o seguinte padrão para a configuração dos agentes no Tomcat:
- Crie os arquivos management.properties e snmp.acl no diretório $CATALINA_BASE/conf.
- Crie ou edite o arquivo $CATALINA_HOME/bin/setenv.sh e adicione a linha a seguir. O script catalina.sh carrega esse arquivo na inicialização caso exista:
-
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.config.file=<CAMINHO_MANAGEMENT_PROPERTIES>"
-


