nov 21

SNMP es un protocolo de gestión de red, normalmente se usa para sacar estadísticas como uso de CPU, memoria, disco, etc. Pero tiene otros usos como enviar alarmas (SNMP traps), cambiar algunos aspectos del sistema, comprobar logs, ejecutar scripts, etc. Todo dependerá de la configuración que hagamos, pero esto seria otro post ;) .

Lo que vamos a hacer aquí es permitir que la JVM publique estadísticas de varios aspectos de su funcionamiento interno, como uso de memoria, hilos de ejecución, etc.

¿Qué necesitamos?
Necesitamos tener en nuestra máquina instalado una JDK de Sun (no se si con otras se puede hacer) y el paquete net-snmp, en gentoo hariamos:

localhost:~ # emerge -Dv sun-jdk net-snmp


Una vez instalados deberemos configurar el demonio snmpd y para ello editaremos con nuestro editor favorito (p.e. vim) el fichero /etc/snmp/snmpd.conf. Un ejemplo muy simple que solo permite peticiones de una IP seria como el que sigue:

rocommunity nagios 172.29.8.233
syscontact Sysadmin (root@localhost)
syslocation Server Room
proxy -v 2c -c nagios localhost:1161 .1.3.6.1.4.1.42.2.145


Con esto conseguimos que snmpd sólo escuche peticiones de la IP 172.29.8.233 y las peticiones que vengan al OID .1.3.6.1.4.1.42.2.145 las responda con el proceso que este escuchando en localhost en el puerto 1161, que en nuestro caso será la máquina virtual de Java.

¿Cómo configuramos la máquina virtual?
Para esta tarea tendremos que editar dos ficheros:

Una vez puestos en su sitio nos quedará arrancamos snmpd:

localhost:~ # /etc/init.d/snmpd start

Y lanzar nuestra aplicación Java, en mi caso esta configuración la estoy usando para monitorizar una JVM con un Tomcat, de esta forma puedo ver el uso de threads, memoria, etc. y de esta forma poder preveer o estudiar el comportamiento del Tomcat.

Bueno, espero que esta configuración os sea util y podais detectar problemas de rendimiento y/o monitorizar.

Los comentarios están cerrados.

preload preload preload