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

IT-копирайтер
Время чтения: 5 минут
В любой компании время от времени возникают ситуации, когда пользователи корпоративной сети сталкиваются с низкой производительностью, а иногда и с полным отсутствием доступа к бизнес-приложениям. По сути, приложение является программным комплексом для поддержки конкретных бизнес-процессов компании и отвечает за эффективность решения ежедневных рабочих задач.
Архитектура бизнес-приложения включает в себя веб-сервер, сервер приложений и сервер БД. Если один из компонентов становится недоступен или испытывает снижение производительности, происходят сбои в работе приложения. Это сказывается на общей доступности существующей в компании IT-среды.
Для обеспечения стабильности IT-инфраструктуры бизнеса используются системы мониторинга бизнес-приложений. Они отслеживают состояние платёжной системы, сайта или приложения компании, и предупреждают возможные поломки, обращая внимание администраторов на критические показатели. Это позволяет буквально держать руку на пульсе и вовремя предпринимать необходимые действия.
Сегодня на рынке существует целый ряд платных и бесплатных решений для мониторинга IT-инфраструктуры. Все они проводят мониторинг операционных систем, баз данных, бизнес-приложений и другого ПО. Мы остановимся на самых распространенных системах для мониторинга – инструментах мониторинга Java приложений.
Набор отслеживаемых показателей зависит от типа мониторинговой системы. Некоторые мониторинговые системы встраиваются в Java приложение и видят изнутри, что происходит с приложением. Другие наблюдают со стороны, считывая показатели по JMX.
Для наших проектов мы попробовали несколько систем мониторинга и в результате остановились на двух: Zabbix и JavaMelody. Обе системы обеспечивают высокое качество мониторинга, однако полностью отличаются друг от друга принципом работы, поэтому вместе помогают решать разные задачи. Zabbix позволяет следить за приложением в долгосрочном периоде, используя JMX. JavaMelody встраивается в приложение и даёт полноценное представление о происходящих в приложении процессах. Рассмотрим каждую из систем в деталях.
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 используется в тех случаях, когда Java программа впервые запускается на промышленном сервере и неизвестно, как поведёт себя под нагрузкой. Также JavaMelody пригодится, если ваша программа ломается при нагрузке и причины не ясны.
JavaMelody встраивается в Java программу и позволяет наблюдать за её функционированием изнутри. Благодаря этому можно получить гораздо больше параметров, специфичных для Java веб-приложения, недоступных при внешнем наблюдении. Встроить систему мониторинга в бизнес-приложение несложно, достаточно прописать несколько настроек в дескриптор развёртывания web.xml вашего приложения.
После этого вы сможете наблюдать огромное количество показателей:
- загрузка процессора;
- статистика http запросов;
- количество активных потоков;
- статистика обращений в базу данных;
- срабатывание сборщика мусора (garbage-collector);
- количество потоков;
- количество загруженных классов;
- статистика использования памяти;
- общая системная загрузка;
- общая загрузка процессора;
- количество открытых файлов;
- время жизни http сессий;
- количество транзакций в базу данных;
- свободное место на жестком диске;
- количество занятых потоков Tomcat;
- статистика сетевой загрузки;
- статистика работы JSP;
- ошибки в логах.
Отслеживание столь большого числа показателей работоспособности Java программы помогает сделать обнаружение и анализ проблемы проще и быстрее.
Система JavaMelody очень удобна для мониторинга веб-приложения, которое находится на стадии стабилизации, когда ещё неизвестно его поведение в экстремальных условиях. Однако, есть свои недостатки. Поскольку JavaMelody встраивается в бизнес-приложение и отслеживает множество разнообразных параметров, то это может, хоть и незначительно, сказываться на производительности самого приложения.
Учитывая плюсы и минусы, мы рекомендуем применять систему мониторинга JavaMelody в краткосрочных целях – на этапе стабилизации бизнес-приложения.
Окончательный выбор системы мониторинга веб-приложений Java зависит от того, какие факторы работы приложений для вас в приоритете. Как показывает практика, обращаясь к разным системам и используя дифференцированный подход, можно отслеживать любые бизнес-приложения, сервера и базы данных, независимо от их объёма и сложности.
Мониторинг бизнес-приложений помогает своевременно выявлять риск возникающих проблем, проводить их анализ и находить подходящие решения, ориентируясь на подробные показатели работы приложения. Другими словами, мониторинг показывает полную картину внутренней «кухни» приложения и способствует улучшению взаимодействия пользователя с приложением. Вовремя предупрежденные проблемы позволяют поддерживать стабильность всей IT-инфраструктуры компании, что очень важно для современного бизнеса.
Комментарии