Мониторинг Java-приложений: обзор актуальных инструментов 2024 — Work Solutions
Мониторинг Spring Boot приложений — актуальные инструменты в 2024 году
ГлавнаяБлогРазработчикамМониторинг Spring Boot приложений — актуальные инструменты в 2024 году
Разработчикам25 ноября 2024

Мониторинг Spring Boot приложений — актуальные инструменты в 2024 году

Фотография автора
Кирилл ПотараловBackend-разработчик

Spring Boot представляет собой java-фреймворк для написания веб-приложений со множеством сущностей и сложных связей между ними. В таких системах важно иметь инструменты для отслеживания метрик, логов и непредвиденных ошибок в развернутых приложениях.  

В отличие от привычных многим CRUD-интерфейсов, как, например, в административных панелях PHP, инструменты для Java не предоставляют доступ к ресурсам БД, однако они обладают другими интересными свойствами. 

Существует несколько отличных инструментов мониторинга, между которыми сложно выбрать. Рассмотрим три популярных решения для мониторинга Spring Boot приложений и разберем, какой инструмент лучше подойдет под конкретные задачи.

Spring Boot Admin

Spring Boot Admin — веб-приложение, которое используется для оценки и наблюдения за проектами на базе Spring. Каждая система рассматривается как клиент и регистрируется на сервере администратора. За предоставление данных от конечных точек сервиса отвечает Spring Boot Actuator.  

  Изображение статьи

Развертывание Spring Boot Admin — процесс достаточно прямолинейный. Создаем новый проект, в который добавляем два основных компонента: серверную часть с пользовательским интерфейсом для администрирования и базовый веб-стартер. На этих компонентах будет построена наша система мониторинга.

Безопасность обеспечим с помощью двух дополнительных зависимостей: модуль аутентификации и авторизации, а также компонент для входа в административную панель. Дополнительно настроим конфигурацию для корректной работы интерфейса управления.

В свойствах приложения указываем пользователя, у которого будет доступ к панели мониторинга. Его доступы должны совпадать с тем пользователем, которого указываем в файле конфигурации spring security.

  Изображение статьи

Теперь настроим приложение, которое планируем мониторить. Для этого нам потребуются две зависимости: клиентская библиотека для подключения к панели администрирования и модуль сбора метрик. Первый компонент отвечает за коммуникацию, второй определяет, какие именно данные будут передаваться.

Для работы сервиса ресурсов, то есть приложения, метрики которого необходимо получить, добавляем два основных компонента: клиентскую библиотеку для администрирования и модуль метрик (actuator). Первый компонент обеспечит обмен информацией с панелью управления, а второй определит набор данных для отправки.

 Клиентские настройки выглядят так:

  Изображение статьи

В настройках указываем URL, куда будут отправляться метрики. При необходимости можно переопределить сервисный URL — это бывает полезно, когда хост по умолчанию автоматически берёт имя пользователя сервера в качестве базового адреса.

Настройки для actuator:

Изображение статьи

В настройках лежит  информация, которую нужно предоставить сервису-администратору.

 Административная панель Spring Boot Admin предоставляет достаточно широкий функционал.

  1.  Управление различными репликами приложения, между которыми имеется возможность переключения на главной странице;
  2. Доступ к логам; 
  3. Отображение бинов в приложении, а также их области видимости;
  4. Отображение миграции, которые были запущены в базе данных;
  5. Отображение использования ресурсов JWM в реальном времени.

Ostara

Ostara — десктопное решение с открытым исходным кодом для администрирования и мониторинга Spring Boot приложений. Скачать его можно с официального сайта или через Github.

Изображение статьи

Ostara максимально упрощает процесс настройки. Достаточно указать адрес приложения, добавить типы авторизации для защищенных адресов и подключить actuator в основном приложении. Никаких дополнительных серверов разворачивать не нужно.

Изображение статьи

Ostara предоставляет схожий функционал с Spring Admin, однако выделим несколько отличительных особенностей:  

  1. Готовое решение «из коробки», не требует тонкой настройки;
  2. Визуализация Spring Integration Graph;
  3. Вывод уведомлений для определенных метрик и логов;
  4. Встроенная защита приложений.

 В отличие от Spring Boot решений, Ostara — самостоятельное приложение со своим набором инструментов. Это дает широкие возможности для настройки через интерфейс, но ограничивает разработчиков в плане добавления собственного функционала.

Prometheus и grafana

Prometheus — БД временных рядов, заточенная под работу с метриками, в том числе Java JMX. Функционал системы выходит за рамки простого хранения данных: система умеет собирать показатели с различных источников, анализировать их, отправлять уведомления и имеет простой веб-интерфейс.

 Grafana — система анализа и визуализации данных. Сама по себе не является панелью мониторинга, однако позволяет взаимодействовать с разными источниками данных, включая метрики Java-приложений. А также базы данных MySQL, PostgreSQL, Elasticsearch, MongoDB и др. Обладает широким функционалом кастомизации: гибкая система дашбордов позволяет создавать детальные отчеты как на основе готовых шаблонов, так и с нуля.
  Изображение статьи  

Docker существенно упрощает развертывание связки Prometheus и Grafana. Для настройки мониторинга достаточно выполнить два шага: добавить модуль сбора метрик (actuator) в проект, а также настроить prometheus.yml, который будет располагаться в /etc/prometheus/prometheus.yml в вашем докер контейнере.

Изображение статьи
Для Grafana необходимо задать логин и пароль администратора, который можно будет изменить после авторизации.

  Изображение статьи

Следующий шаг — настройка источника данных в Grafana. Заходим в административную панель и указываем, откуда система будет получать метрики для наших дашбордов.


Изображение статьи

Основные популярные шаблоны можно найти на официальном портале системы. Если же стандартные решения не покрывают ваши потребности, встроенный шаблонизатор предоставляет широкие возможности для создания кастомных дашбордов.

Сравнение инструментов

Чтобы помочь вам сделать правильный выбор, мы собрали ключевые характеристики рассмотренных инструментов в сравнительную таблицу:

Характеристика

Spring Boot Admin

Ostara

Prometheus + Grafana

Тип решения

Веб-приложение на Spring Boot

Десктопное приложение

Распределенная система

Сложность настройки

Средняя

Низкая

Высокая

Интеграция со Spring

Нативная

Через Actuator

Через Actuator

Кастомизация

Средняя, через Spring

Ограниченная

Максимальная

Сбор метрик

Базовые метрики Spring

Базовые метрики Spring

Любые метрики из разных источников

Визуализация

Встроенная, базовая

Встроенная, продвинутая

Полностью настраиваемая

Масштабируемость

Средняя

Низкая

Высокая

Безопасность

Встроенная Spring Security

Базовая

Гибко настраиваемая

Требования к инфраструктуре

Отдельный сервер

Только локальная установка

Развертывание нескольких сервисов

Масштаб проекта

Подходит для небольших и средних Spring проектов

Подходит для быстрого старта и прототипирования

Подходит для крупных распределенных систем

Из таблицы видно, что у каждого инструмента своя специализация. Spring Boot Admin отлично подходит для классических Spring-приложений, Ostara — когда важна быстрота внедрения, а связка Prometheus и Grafana незаменима в сложных распределенных системах.

Вывод

Мы рассмотрели три популярных инструмента для мониторинга Java Spring Boot приложений, каждый из которых со своими преимуществами:

Spring Boot Admin — нативное решение для экосистемы Spring, отлично подходит для проектов, где важна быстрая интеграция и минимум настроек.

Ostara привлекает простотой использования — идеальный выбор, когда нужно быстро подключить мониторинг без развертывания дополнительной инфраструктуры.

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

Выбор инструмента зависит от масштаба проекта, потребности в кастомизации и ресурсов команды на внедрение. Иногда оптимальным решением может стать даже комбинация инструментов — например, Spring Boot Admin для базового мониторинга и Grafana для продвинутой аналитики.

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

103
18

Другие статьи

Ко всем статьям
Фоновое изображение: четверть круга закрыват часть круга

Интересные статьи и кейсы
от Work Solutions

Нажимая кнопку «Подписаться», я даю согласие на обработку персональных данных

Спасибо за подписку!

Фоновое изображение: верхний полукруг