Введение в JMX и MBeans в Java
Java Management Extensions (JMX) — это технология, входящая в J2SE начиная с J2SE 5.0. JMX предназначен для контроля и управления приложениями, системными объектами, устройствами (например, принтерами) и компьютерными сетями. Она позволяет управлять внутренним состоянием так называемых MBean-ов, которые по сути являются классами Java, предоставляющими доступ к части своих полей и методов извне.
Разумеется, для того чтобы лучше представлять, что это такое, нужно написать небольшое приложение.
Стандартный MBean определяется с помощью интерфейса с именем MBean и его реализацией соответственно. Интерфейс определяет все экспортируемые наружу методы и атрибуты MBean-а. Атрибуты должны следовать правилам именования getter-ов и setter-ов.
Напишем простой интерфейс для MBean-а:
Как работать с Java Management Extensions (JMX) API
Откройте мир JMX API и узнайте, как управлять и мониторить Java приложения с помощью MBeans и примеров кода!
Алексей Кодов
Автор статьи
10 июля 2023 в 17:48
Java Management Extensions (JMX) — это технология, позволяющая управлять и мониторить приложения, разработанные на языке Java. JMX API предоставляет набор инструментов для взаимодействия с ресурсами управления, такими как MBeans (Managed Beans). В этой статье мы рассмотрим основы работы с JMX API и приведем примеры использования.
Что такое MBean
MBean — это Java объект, который предоставляет методы для управления и мониторинга приложения. Он может представлять собой сервис, компонент или любой другой ресурс, который можно контролировать. MBean’ы регистрируются в MBean-сервере, который является центральным компонентом JMX архитектуры.
Создание и регистрация MBean
Для создания MBean’а нужно определить интерфейс, который наследует javax.management.MBean . В этом интерфейсе объявляются методы для управления и мониторинга. Затем создается класс, который реализует этот интерфейс.
import javax.management.MBean; public interface SimpleMBean
public class Simple implements SimpleMBean < private String parameter; @Override public void setParameter(String parameter) < this.parameter = parameter; >@Override public String getParameter() < return parameter; >>
Для регистрации MBean’а в MBean-сервере необходимо выполнить следующий код:
import javax.management.*; public class Main < public static void main(String[] args) throws Exception < MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); ObjectName name = new ObjectName("com.example:type=Simple"); SimpleMBean mbean = new Simple(); mbs.registerMBean(mbean, name); // Теперь MBean доступен для управления и мониторинга через JMX >>
Java-разработчик: новая работа через 11 месяцев
Получится, даже если у вас нет опыта в IT
Взаимодействие с MBean
Для работы с MBean’ами можно использовать различные JMX клиенты, например, JConsole, который поставляется вместе с JDK. Для подключения к MBean-серверу через JConsole выполните следующие шаги:
- Запустите JConsole: jconsole
- Выберите процесс вашего приложения в списке подключений.
- Во вкладке MBeans найдите зарегистрированный MBean и воспользуйтесь его методами.
Вот и все! Теперь вы знаете основы работы с JMX API и можете использовать его для управления и мониторинга своих Java приложений.
Мониторинг в реальном времени с использованием интерфейса JMX
В этой статье описывается, как выставлять JMX MBeans в JIRA для мониторинга с помощью JMX-клиента.
Это руководство представляет собой базовое введение в интерфейс JMX и предоставляется как есть. Наша группа поддержки может помочь вам устранить неполадку по конкретной проблеме JIRA, но не может помочь вам настроить вашу систему мониторинга или интерпретировать результаты.
Что такое JMX?
JMX (Java Management Extensions) — это технология мониторинга и управления приложениями Java. JMX использует объекты, называемые MBeans (Managed Beans), чтобы выставлять данные и ресурсы из вашего приложения. Для больших экземпляров JIRA Server или JIRA Data Center включение JMX позволяет вам более легко контролировать потребление ресурсов приложений. Это позволяет вам принимать более эффективные решения о том, как поддерживать и оптимизировать ресурсы машины.
Метрики, собранные JIRA
В следующей таблице перечислены показатели (MBeans), которые собираются JIRA. Все они сгруппированы в собственность com.atlassian.jira.
Сброс после перезапуска JIRA
Количество просмотров всех панелей управления пользователями.
Мониторинг и управление Java-приложениями (JMX)
AggreGate Network Manager осуществляет мониторинг сервисов, серверов приложений и обычных приложений, реализованных на Java, при помощи технологии Java Management Extensions (JMX). JMX – одна из основных функциональных частей современного процесса управления приложениями.
Архитектура JMX основана на понятии «сервера управляемых объектов», который выступает как управляющий агент и может быть запущен на многих устройствах и компьютерах, которые поддерживают Java. Эту технологию сегодня используют практически все производители крупных Java/J2EE-приложений:
Данные, полученные по JMX
Возможности мониторинга и управления Java-приложениями
AggreGate Network Manager осуществляет мониторинг сервисов, серверов, кластеров и обычных приложений, реализованных на Java, при помощи технологии JMX, позволяя:
Настроить эффективный процесс мониторинга производительности Java-машины | Оказывать помощь Администраторам в принятии решений о корректировке работы Java приложений |
Быстро создавать единый и удобный интерфейс для непрерывного управления и мониторинга удалённых и локальных Java/J2EE-приложений | Настраивать оповещения в соответствии с критичностью для бизнес-процессов компании |
Построить доступное и надёжное решение для эффективного управления приложениями | Разграничить уровень доступа к системе мониторинга |
Масштабировать созданные решения от небольших до очень крупных систем | Корректировать заданные параметры Java приложений в автоматическом режиме по запросу, по расписанию или в ответ на тревогу |
Расширять концепцию в будущем, в том числе интегрировать с Web-based Enterprise Management (WBEM) | Обращаться к управляемым объектам Java (MBeans), как к стандартным, так и специфичным для приложений |
Производить сводный анализ статистик и делать отчёты за день / сутки / месяц | Просматривать, сохранять и изменять атрибуты объектов Java приложений |
Строить начальные предположения о причинах некорректной работы сервиса/приложения, базируясь на графиках использования памяти, потоков и прочих метриках | Получать, сохранять и отвечать на события, полученные от объектов Java |
>Отслеживать процессы, протекающие в Java машине: работу garbage collector, использование памяти, жизненный цикл потоков, а также иные специфичные для вашего проекта показатели посредством MBean | Использовать весь спектр интегрированных средств для интеллектуальной обработки данных, полученных по JMX |
Оперативно оповещать Администраторов приложений (Application Manager) по электронной почте, СМС и уведомлением в консоли управления о превышении метриками заданных порогов |
Мониторинг памяти Java-машины
Модуль мониторинга памяти Java-машины, доступный в AggreGate Network Manager, предоставляет доступ к следующим метрикам:
- Динамическая память (Размер инициализации, Использованная, Зафиксированная, Максимальный размер)
- Нединамическая память (Размер инициализации, Использованная, Максимальный размер)
- Сборщики мусора (Количество, Время сбора пометок с очисткой, Время удаления мусора, Общее время сбора)
- Пулы памяти (Размер инициализации, Использованные, Зафиксированные, Максимальные размеры, Зафиксированные пулы памяти)
Другие метрики мониторинга Java-машины
Отслеживаемые в стандартных инструментальных панелях метрики включают общую информацию о сервере, устройстве, Java машине, операционной системе и её версии, времени работы приложения, использовании памяти, а также:
- Мониторинг процессора Java-машины (Загрузка процессора Java-приложением)
- Мониторинг кэша Java-машины/приложения (счётчик попаданий в кэш и ошибок, вытеснение данных)
- Классы (Количество загруженных, Общее количество загруженных, Количество незагруженных)
- Потоки (Общее количество запущенных, Процессы-демоны, Пиковые)
- И другое
Диаграмма по одному из JMX-показателей
Управление с использованием JMX
Помимо стандартного мониторинга Java-машины с помощью MBean, AggreGate Network Manager может выполнить любой стандартный или пользовательский метод MBean по запросу, событию или расписанию. Это позволяет эффективно управлять как самой Java-машиной, так и любыми модулями Java-приложения и сопутствующими модулями/фреймворками, такими как пулы кэшей или широко доступными JDBC-библиотеками. Управление с использованием JMX — важная часть процесса управления IT-инфраструктурой.
Бесплатная утилита для мониторинга Java
Бесплатная версия AggreGate Network Manager на 10 устройств позволяет обеспечить мониторинг 10 Java-приложений или серверов приложений. Возможности мониторинга в бесплатной версии никак не ограничены и позволяют осуществлять чтение и запись параметров MBean, выполнять соответствующие методы и обрабатывать уведомления.