Question

Voici les spécifications que j'essaie d'implémenter en quelques mots:

1) Certaines alertes doivent être envoyées sur certains événements de l'application.

2) Ces utilisateurs sont abonnés à ces alertes.

3) Et les utilisateurs ont défini leurs propres préférences de notification (par exemple, Email et / ou SMS).

Je n'ai pas encore trouvé de solution open source en Java.

Les notifications JMX sont-elles une option? Plus je lis au sujet de JMX, plus je sens qu’il essaie de réaliser quelque chose de différent de mon problème.

Toute aide serait utile.

Était-ce utile?

La solution

JMX peut être un mécanisme pour résoudre ce problème, mais ce n’est pas une solution complète.

JMX fournit des installations et des services à vos programmes pour permettre aux clients d’accéder aux données de surveillance ainsi qu’aux clients qui peuvent passer des appels de contrôle à l’application.

Comme vous l'avez mentionné, l'un des aspects de JMX est le système de notification. Ce système fournit une infrastructure qui permet à votre programme de mettre facilement des alertes et des notifications à la disposition des clients. Les machines JVM modernes fournissent également un serveur JMX gratuit qui permet au client de se connecter à votre application à distance et de s’abonner à ces événements.

Mais c’est une chose de faire une alerte JMX, et c’est une autre chose d’agir complètement.

Pour ce faire, vous devez disposer d’un client JMX quelque part, "subscribe". aux notifications JMX de vos programmes, puis CE client peut agir sur ces notifications en envoyant des courriels, ou autre chose.

Le client JMX peut être un client distant communiquant avec votre application via TCP ou un client JMX interne du programme s'exécutant dans un fil, par exemple, et pouvant agir sur les notifications.

Donc, en gros, JMX fournit la plomberie et l’infrastructure pour ce que vous voulez faire, mais ne le prend pas "le dernier kilomètre". convertir les alertes en courriels.

Comme @fawce l'a mentionné, il existe des "génériques" Les clients JMX de différentes sophistications peuvent agir sur les données JMX et faire ce que vous voulez (je ne les connais pas bien, donc je ne peux pas les dire moi-même), ou vous pouvez coder votre propre système pour surveiller les données JMX.

Autres conseils

Si vous voulez parler de JMX, il existe un pont JBoss / Nagios appelé monju qui possède un hook JMX généralisé.

Je suggérerais d'utiliser les notifications JMX et SNMP qui devraient prendre en charge votre scénario, 2) et 3) étant couvertes par le logiciel SNMP.

Vous pouvez également le coder vous-même en Java si vous avez accès à une passerelle SMS avec une API. Utiliser javax.mail est simple tant que vous avez accès à un hôte SMTP permettant un accès anonyme. Un mécanisme de publication / abonnement flexible pour 2) peut être utilisé pour connecter 1) et 3).

Voici un bon article avec un exemple de code pour utiliser jms dans votre application afin de générer des alertes texte du lien . une fois que vous avez ce travail avec la surveillance locale, vous devez définir -Dom.sun.management.jmxremote.port = 9999 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false so que vous pouvez vous connecter depuis une machine distante. un programme simple et agréable pour surveiller java activé par jmx qui permet de tracer des pages Web de graphes mobiles et d’avertir par courrier électronique lorsque le seuil est modifié est texte du lien . il vous permettra également de contrôler à distance vos applications via les pages Web. gentil et simple. Bien sûr, si vous utilisez jmx, vous pouvez facilement utiliser quelque chose de plus complexe, comme nagios ou un outil commercial coûteux. l’essentiel sur ces outils est qu’ils disposent de flux de travail, de rotations et autres outils permettant de gérer une grande équipe de personnes souhaitant s’occuper de beaucoup de choses (bases de données, serveurs, java, etc.) - ce qui risque d’être trop complexe si vous débutez pour que le côté java de jmx fonctionne.

Solarwinds est un outil de surveillance d'entreprise commerciale qui peut être connecté à JMX pour la surveillance. Il a la capacité de générer des alertes SMS et Email.

Voulez-vous dire JMS (au lieu de JMX)? JMS est une API de messagerie tandis que JMX est une API de surveillance / administration. L'utilisation de JMS en tant que serveur principal est un bon moyen d'implémenter les messages principaux. Elle prend en charge le découpage, l'équilibrage de la charge et la persistance. Mais vous devez toujours avoir un composant qui reçoit les messages et les envoie à l'utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top