Welcome to Pandora FMS Community!

Find answers, ask questions, and connect with our community around the world.

Welcome to Pandora FMS Community Forums Soporte de la comunidad Monitorizar proceso de Java

  • Monitorizar proceso de Java

    Posted by micky on October 25, 2010 at 18:58

    Estoy haciendo pruebas con un modulo de la libreria de recursos de nombre “JVM Performance”, este es el código:

    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?

    micky replied 14 years, 3 months ago 2 Members · 2 Replies
  • 2 Replies
  • Sancho

    Administrator
    November 2, 2010 at 15:45
    2309 Karma points
    Community awards: bulb Bright ideas
    Community rank: tentacle_master_icon Tentacle Master
    Like it
    Up
    0
    Down
    Drop it
    ::

    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.

  • micky

    Member
    November 2, 2010 at 18:05
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    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.