Можем ли мы использовать JMX для оповещений / уведомлений - PullRequest
6 голосов
/ 20 ноября 2008

Вот спецификации, которые я пытаюсь реализовать в двух словах:

1) Некоторые оповещения должны отправляться на определенные события в приложении.

2) На эти оповещения подписаны пользователи.

3) И пользователи установили свои собственные настройки уведомлений (например, электронная почта и / или SMS).

Мне пока не удалось найти решение с открытым исходным кодом в Java.

Является ли JMX-уведомления опцией? Чем больше я читаю о JMX, тем больше я чувствую, что он пытается достичь чего-то другого, чем моя проблема.

Любая помощь будет полезна.

Ответы [ 6 ]

12 голосов
/ 20 ноября 2008

JMX может быть механизмом решения этой проблемы, но это не полное решение.

JMX предоставляет средства и сервисы для ваших программ, чтобы позволить клиентам получать доступ к данным мониторинга, а также разрешать клиентам совершать контрольные вызовы для приложения.

Как вы упомянули, одним из аспектов JMX является система уведомлений. Эта система предоставляет инфраструктуру, позволяющую вашей программе легко делать оповещения и уведомления доступными для клиентов, а современные JVM также предоставляют бесплатный сервер JMX, позволяющий клиенту удаленно подключаться к вашему приложению и подписываться на эти события.

Но одно дело сделать оповещение JMX, а другое - полностью действовать на него.

То, что вам нужно было бы сделать, это иметь где-нибудь JMX-клиент, «подписаться» на JMX-уведомления ваших программ, и тогда ЭТО-клиент может действовать на основании этих уведомлений, отправляя электронные письма или что-то подобное.

JMX-клиент может быть удаленным клиентом, который общается с вашим приложением через TCP, или он может быть внутренним JMX-клиентом в программе, скажем, работающим в потоке, и он может действовать на уведомления.

Итак, в основном, JMX обеспечивает водопровод и инфраструктуру для того, что вы хотите сделать, но не берет «последнюю милю» на конвертацию оповещений в электронные письма.

Как уже упоминалось @fawce, есть несколько "универсальных" JMX-клиентов различной сложности, которые могут работать с данными JMX и могут делать то, что вы хотите (я не знаком с ними, поэтому не могу сказать из первых рук), или Вы можете написать свою собственную систему для мониторинга данных JMX.

0 голосов
/ 22 апреля 2019

Solarwinds - это инструмент для мониторинга коммерческих предприятий, который может подключаться к JMX для мониторинга. Имеет возможность генерировать SMS и оповещения по электронной почте.

0 голосов
/ 10 сентября 2010

Вот хорошая статья с примером кода для использования jms в вашем приложении для создания предупреждений текст ссылки . как только у вас будет эта работа с локальным мониторингом, вам нужно установить -Dom.sun.management.jmxremote.port = 9999 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false, так что вы можете подключиться с удаленной машины. хорошая простая программа для отслеживания java с поддержкой jmx, которая может отображать веб-страницы с движущимися графиками и отправлять оповещения по электронной почте при изменении порогов текст ссылки . это также позволит вам удаленно управлять своими приложениями через веб-страницы. красиво и просто. Конечно, если вы используете jmx, вы можете легко заменить его на что-нибудь более сложное, например, nagios или какой-нибудь дорогой коммерческий инструмент. Ключевым моментом этих инструментов является то, что у них есть рабочий процесс, рот и прочее для управления большой командой людей, желающих позаботиться о многих вещах (базы данных, серверы, Java и т. д.) - что может быть слишком сложно, если вы только начинаете с получением Java стороны JMX работает.

0 голосов
/ 08 января 2009

Я бы предложил использовать уведомления JMX и SNMP, которые должны поддерживать ваш сценарий, 2) и 3), охватываемые программным обеспечением SNMP.

Вы также можете кодировать его на Java самостоятельно, если у вас есть доступ к шлюзу SMS с некоторым API. Использовать javax.mail просто, если у вас есть доступ к узлу SMTP, позволяющему анонимный доступ. Гибкий механизм публикации-подписки для 2) может использоваться для соединения 1) и 3).

0 голосов
/ 20 ноября 2008

Если вы имеете в виду JMX, существует мост JBoss / Nagios с именем monju , который имеет обобщенный хук JMX.

0 голосов
/ 20 ноября 2008

Вы имеете в виду JMS (вместо JMX)? JMS - это API обмена сообщениями, а JMX - API мониторинга / администрирования. Использование JMS в качестве внутреннего интерфейса является хорошим способом реализации внутренних сообщений, оно позаботится о развязке, балансировке нагрузки и постоянстве. Но вам все равно нужен компонент, который получает сообщения и отправляет их пользователю.

...