java notifications jmx alerts

java - ¿Podemos usar JMX para Alertas/Notificación?



notifications alerts (5)

¿Te refieres a JMS (en lugar de JMX)? JMS es una API de mensajería, mientras que JMX es una API de monitoreo / administración. Usar JMS como back-end es una buena forma de implementar los mensajes de back-end, y se ocupará de la eliminación de errores, el equilibrio de carga y la persistencia. Pero aún debe tener un componente que reciba los mensajes y los envíe al usuario.

Estas son las especificaciones que estoy tratando de implementar en pocas palabras:

1) Algunas alertas deben enviarse en ciertos eventos en la aplicación.

2) Estas Alertas tienen usuarios suscritos a ellas.

3) Y los usuarios han establecido sus propias preferencias de notificación (por ejemplo, correo electrónico y / o SMS).

Hasta ahora no he podido encontrar una solución de código abierto en Java.

¿Las notificaciones JMX son una opción? Cuanto más leo sobre JMX, más siento que está tratando de lograr algo diferente a mi problema.

Cualquier ayuda sería útil.


JMX puede ser un mecanismo para resolver este problema, pero no es la solución completa.

JMX proporciona instalaciones y servicios a sus programas para permitirles a los clientes acceder a los datos de monitoreo, así como también permitir que los clientes realicen llamadas de control a la aplicación.

Como mencionó, un aspecto de JMX es el sistema de notificación. Lo que proporciona este sistema es una infraestructura que facilita a su programa el hacer alertas y notificaciones disponibles para los clientes, y las JVM modernas también proporcionan un servidor JMX gratuito para permitir que el cliente se conecte a su aplicación de forma remota y se suscriba a esos eventos.

Pero una cosa es hacer una alerta JMX, y otra cosa es actuar completamente.

Lo que tendría que hacer es tener un cliente JMX, en alguna parte, "suscribirse" a las notificaciones JMX de sus programas, y luego ESE cliente puede actuar sobre esas notificaciones mediante el envío de correos electrónicos, o lo que sea.

El cliente JMX puede ser un cliente remoto que habla con su aplicación a través de TCP, o puede ser un cliente JMX interno dentro del programa, ejecutándose en un hilo, por ejemplo, y puede actuar sobre las notificaciones.

Así que, básicamente, JMX proporciona la plomería y la infraestructura para lo que desea hacer, pero no lo lleva a "la última milla" para convertir alertas en correos electrónicos.

Como @fawce mencionó, hay algunos clientes JMX "genéricos" de varias sofisticaciones que pueden actuar según los datos de JMX y pueden hacer lo que quieran (no estoy familiarizado con ellos, así que no puedo decirlo de primera mano), o pueden codificar su propio sistema para monitorear los datos JMX.


Si se refiere a JMX, hay un puente JBoss / Nagios llamado monju que tiene un gancho JMX genérico.


Sugeriría usar notificaciones JMX y SNMP, que debería ser compatible con su escenario, 2) y 3) estar cubierto por el software SNMP.

También puede codificarlo en Java usted mismo siempre que tenga acceso a una puerta de enlace SMS con alguna API. Usar javax.mail es sencillo siempre que tenga acceso a un host SMTP que permita el acceso anónimo. Se puede usar un mecanismo flexible de publicación y suscripción para 2) para conectar 1) y 3).


Aquí hay un buen artículo con código de muestra para usar jms en su aplicación para enviar alertas al texto del enlace . una vez que tenga eso trabajando con monitoreo local, necesita configurar -Dom.sun.management.jmxremote.port = 9999 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false que puedes conectarte desde una máquina remota. un buen programa simple para monitorear jmx habilitado java que puede trazar páginas web de gráficos en movimiento y enviar alertas por correo electrónico cuando los umbrales cambian es texto de enlace . también le permitirá controlar de forma remota sus aplicaciones a través de las páginas web. agradable y simple. por supuesto, si está utilizando jmx puede cambiar fácilmente para usar algo más complejo como nagios o alguna herramienta comercial costosa. los puntos clave sobre esas herramientas es que tienen flujo de trabajo, rotas y demás para administrar un gran equipo de personas que desean cuidar muchas cosas (bases de datos, servidores, Java, etc.), lo que puede ser demasiado complejo si recién comienzas. con el funcionamiento del lado java de jmx.