Pages: [1]   Go Down
Author Topic: Monitorizar proceso de Java  (Read 502 times)
0 Members and 2 Guests are viewing this topic.
micky
Full Member
***

Karma: 1
Offline Offline

Posts: 32


View Profile
« on: October 25, 2010, 03:58:49 PM »

Estoy haciendo pruebas con un modulo de la libreria de recursos de nombre "JVM Performance", este es el código:
Code:
module_begin
module_name jvmperf
module_type generic_data
module_exec jstat -gcutil $(jps |grep -v Jps|tail -1|awk '{print $1}') 1000 1
module_description JVM Performance
module_end

El problema lo tengo a la hora de monitorizar un proceso de una aplicación java que tengo lanzada.

Si ejecuto el comando jps desde linea de comandos, me muestra el propio Jps y el nombre de mi aplicación. Perfecto, con un grep y wc ya tengo la salida 0/1 que quiero.

El problema sucede cuando es el agente de pandora el que ejecuta el comando jps, puesto que solo obtiene "Jps" como resultado, por tema de permisos supongo.

¿Hay alguna manera de que el agente obtenga el mismo resultado que cuando yo hago la ejecución?
¿Alguien ha hecho algo parecido?
Logged

Sancho Lerena
Administrator
Expert member
*****

Karma: 24
Offline Offline

Posts: 1151


I can see everything... with my glasses :-)


View Profile WWW
« Reply #1 on: November 02, 2010, 12:45:41 PM »

Si es un tema de permisos, bastaria con ejecutar el comando con sudo, para que la ejecucion sea con el entorno de ese usuario, p.e:


# sudo -u slerena id

me Devuelve:

uid=1000(slerena) gid=100(users) grupos=33(video),100(users),1000(vboxusers)

Si en tu caso llamas a ese comando con el usuario que toque, deberia funcionar igual.

Por curiosidad, ¿que mas cosas se pueden sacar con ese comando?, esque en java andamos pez.
Logged

-- See you in the other screen.

micky
Full Member
***

Karma: 1
Offline Offline

Posts: 32


View Profile
« Reply #2 on: November 02, 2010, 03:05:04 PM »

Vaya, olvidé comentar que en este caso se trata de una máquina Windows.
De todas formas he optado por monitorizar la app Java habilitando el agente SNMP que proporciona la JVM de Sun. Creo que es menos "intrusivo" hacerlo así.

El comando jstat devuelve básicamente la misma información que se puede obtener con la herramienta gráfica JConsole para obterner estadísticas del colector de basura de Java.
Más info: http://download.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html.

No he profundizado más porque en mi caso bastaba con saber si el proceso del servidorFoo.jar existe, o no existe.
Logged

Pages: [1]   Go Up
Print
 
Jump to:  


SourceForge.net Logo  This site is monitored by Pandora FMS   ArticaST