Системы мониторинга IT-инфраструктуры: мониторинг Java приложений

автор Сергей Каньшин

10 Мар 2016

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

Архитектура бизнес-приложения включает в себя веб-сервер, сервер приложений и сервер БД. Если один из компонентов становится недоступен или испытывает снижение производительности, происходят сбои в работе приложения. Это сказывается на общей доступности существующей в компании IT-среды.

Для обеспечения стабильности IT-инфраструктуры бизнеса используются системы мониторинга бизнес-приложений. Они отслеживают состояние платёжной системы, сайта или приложения компании, и предупреждают возможные поломки, обращая внимание администраторов на критические показатели. Это позволяет буквально держать руку на пульсе и вовремя предпринимать необходимые действия.

Сегодня на рынке существует целый ряд платных и бесплатных решений для мониторинга IT-инфраструктуры. Все они проводят мониторинг операционных систем, баз данных, бизнес-приложений и другого ПО. Мы остановимся на самых распространенных системах для мониторинга – инструментах мониторинга Java приложений.

Набор отслеживаемых показателей зависит от типа мониторинговой системы. Некоторые мониторинговые системы встраиваются в Java приложение и видят изнутри, что происходит с приложением. Другие наблюдают со стороны, считывая показатели по JMX.

Для наших проектов мы попробовали несколько систем мониторинга и в результате остановились на двух: Zabbix и JavaMelody. Обе системы обеспечивают высокое качество мониторинга, однако полностью отличаются друг от друга принципом работы, поэтому вместе помогают решать разные задачи. Zabbix позволяет следить за приложением в долгосрочном периоде, используя JMX. JavaMelody встраивается в приложение и даёт полноценное представление о происходящих в приложении процессах. Рассмотрим каждую из систем в деталях.

Zabbix

zabbix

Мониторинговая система Zabbix позволяет собирать статистику с большого числа разных устройств, например, c Linux сервера или базы данных. Как мы уже говорили, мониторинг Java приложений в Zabbix происходит с использованием JMX. Встраивать в приложение ничего не нужно, достаточно запустить Java с дополнительными настройками, и вы уже можете следить за памятью или количеством потоков. Вместе с тем, главная задача данной системы – своевременное уведомление о проблемах, которые возникли или могут возникнуть в ближайшем будущем.

Принцип работы Zabbix состоит в следующем. На каждый компьютер (узел мониторинга) устанавливается zabbix-agent, специальная программа, которая работает в фоновом режиме и собирает сведения о работоспособности вашей программы, например, о базе данных. Кроме этого, в системе есть zabbix-server, централизованный сервер, который периодически забирает информацию со всех агентов и сохраняет её в свою базу данных. Затем сервер анализирует собранную информацию, распознаёт критические параметры и уведомляет администратора о надвигающейся проблеме. В дополнение к этому пользователь Zabbix получает широкий набор инструментов для составления отчёта о работе приложения в наиболее удобном формате.

Система Zabbix позволяет отслеживать множество параметров, в том числе:

  • загрузка процессора;
  • использование памяти;
  • свободное пространство жёстких дисков;
  • доступность подключенных к компьютеру устройств;
  • доступность файловых систем;
  • количество потоков в Java;
  • количество загруженных классов Java;
  • срабатывание сборщика мусора (garbage-collector);
  • количество http запросов, пришедших на ваш сервер;
  • время выполнения http запросов;
  • количество пользовательских сессий;
  • количество запросов в базу данных;
  • время выполнения запросов в базу данных.

Мониторинговая система Zabbix хорошо подходит для долгосрочного мониторинга, когда наблюдаемые системы в целом стабильны. Zabbix практически не снижает производительность отслеживаемых приложений.

JavaMelody

JavaMelody

Система мониторинга JavaMelody используется в тех случаях, когда Java программа впервые запускается на промышленном сервере и неизвестно, как поведёт себя под нагрузкой. Также JavaMelody пригодится, если ваша программа ломается при нагрузке и причины не ясны.

JavaMelody встраивается в Java программу и позволяет наблюдать за её функционированием изнутри. Благодаря этому можно получить гораздо больше параметров, специфичных для Java веб-приложения, недоступных при внешнем наблюдении. Встроить систему мониторинга в бизнес-приложение несложно, достаточно прописать несколько настроек в дескриптор развёртывания web.xml вашего приложения.

После этого вы сможете наблюдать огромное количество показателей:

  • загрузка процессора;
  • статистика http запросов;
  • количество активных потоков;
  • статистика обращений в базу данных;
  • срабатывание сборщика мусора (garbage-collector);
  • количество потоков;
  • количество загруженных классов;
  • статистика использования памяти;
  • общая системная загрузка;
  • общая загрузка процессора;
  • количество открытых файлов;
  • время жизни http сессий;
  • количество транзакций в базу данных;
  • свободное место на жестком диске;
  • количество занятых потоков Tomcat;
  • статистика сетевой загрузки;
  • статистика работы JSP;
  • ошибки в логах.

Отслеживание столь большого числа показателей работоспособности Java программы помогает сделать обнаружение и анализ проблемы проще и быстрее.

Система JavaMelody очень удобна для мониторинга веб-приложения, которое находится на стадии стабилизации, когда ещё неизвестно его поведение в экстремальных условиях. Однако, есть свои недостатки. Поскольку JavaMelody встраивается в бизнес-приложение и отслеживает множество разнообразных параметров, то это может, хоть и незначительно, сказываться на производительности самого приложения.

Учитывая плюсы и минусы, мы рекомендуем применять систему мониторинга JavaMelody в краткосрочных целях – на этапе стабилизации бизнес-приложения.

Окончательный выбор системы мониторинга веб-приложений Java зависит от того, какие факторы работы приложений для вас в приоритете. Как показывает практика, обращаясь к разным системам и используя дифференцированный подход, можно отслеживать любые бизнес-приложения, сервера и базы данных, независимо от их объёма и сложности.

Мониторинг бизнес-приложений помогает своевременно выявлять риск возникающих проблем, проводить их анализ и находить подходящие решения, ориентируясь на подробные показатели работы приложения. Другими словами, мониторинг показывает полную картину внутренней «кухни» приложения и способствует улучшению взаимодействия пользователя с приложением. Вовремя предупрежденные проблемы позволяют поддерживать стабильность всей IT-инфраструктуры компании, что очень важно для современного бизнеса.

  • 0 Репосты

Комментарии

Фильтр

Закрыть

Технологии

Индустрии