Как мониторить и управлять Apache Tomcat
Кратко: это подробное руководство по добавлению Apache Tomcat в инвентаризацию мониторинга Verax NMS, настройке датчиков на базе JMX и HTTP, сбору счётчиков производительности и созданию оповещений. Плюс — методики устранения неполадок, чек-листы ролей и рекомендации по безопасности.
Введение
Это руководство показывает, как мониторить и управлять сервером приложений Apache Tomcat с использованием Verax NMS (бесплатная версия) и стандартных средств JMX/HTTP. Материал включает пошаговые инструкции по добавлению инстанса Tomcat в инвентарь, настройке датчиков (sensors), шаблонов счётчиков производительности, созданию политик оповещений и базовой безопасности.
Коротко о терминах:
- JMX — Java Management Extensions, протокол и API для мониторинга JVM и приложений.
- Датчик (sensor) — активный монитор, периодически опрашивающий сервис и определяющий его доступность.
- Счётчик производительности (performance counter) — метрика, собираемая для отображения трендов и построения графиков.
Источники и инструменты:
- Apache Tomcat: http://tomcat.apache.org/
- Verax NMS express: http://www.veraxsystems.com/en/products/nms
Добавление Apache Tomcat в инвентарь устройства
Цель: зарегистрировать экземпляр Tomcat как приложение на устройстве, где он запущен. Система Verax NMS поддерживает несколько инстансов одного типа на одном устройстве.
Шаги:
- Войдите в Verax NMS и выберите Home в основном меню.
- В дереве аспектов (aspect tree) слева выберите устройство, на котором работает Tomcat.

- Во вкладке Summary выберите действие “Manage applications” в секции действий.

- В появившемся диалоге выберите Add application и нажмите Go.

- Выберите Apache Tomcat в списке типов приложений и заполните параметры инстанса:
- Instance name — имя инстанса для инвентаризации.
- Host — адрес хоста (обычно IP-адрес устройства).
- Port — порт, на котором работает сервер приложений.
- User / Password — учётные данные для подключения (если требуется).
- JMX Connection — URL JMX-подключения (например, service:jmx:rmi:///jndi/rmi://
: /jmxrmi). - JMX User / JMX Password — учётные данные JMX (если включена аутентификация).
Заметка: набор параметров зависит от выбранного типа приложения.
- Нажмите Save changes.
- Система может предложить добавить набор датчиков и счётчиков по умолчанию. В этом руководстве мы добавляем датчики вручную — выберите No.
- После сохранения новый инстанс будет виден в дереве аспектов в категории Managed Applications.

Способы мониторинга инстанса Tomcat в Verax NMS:
- Show advanced view — получение актуальной информации и статистики по запросу.
- Сбор метрик через счётчики JMX (JMX counter) или преднастроенные шаблоны JMX.
- Проверка доступности приложения через JMX-датчики.
- Проверка веб-приложения и измерение пользовательского опыта через HTTP-датчики.
Настройка датчиков для Apache Tomcat
Tomcat предоставляет данные мониторинга через JMX. Перед добавлением датчиков убедитесь, что JMX включён и доступен на сервере Tomcat. На стороне сервера JVM нужно передать параметры при старте.
Пример параметров для Windows/Catalina (сохраните синтаксис как в документации):
set CATALINA_OPTS=-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=%my.jmx.port% \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=falseПодробности см. в официальной документации Tomcat: http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html
Как работают датчики:
Датчики — это периодически выполняемые проверки. Если сервис отвечает ожидаемым образом, он считается доступным; при тайм-ауте или несоответствии — недоступным.
Типы датчиков по умолчанию для приложения Apache Tomcat:
- JMX Operation — вызывает операцию MBean через JMX и проверяет, возвращается ли результат.
- JMX Attribute — читает атрибут MBean и проверяет наличие значения.
- HTTP — проверяет, возвращает ли HTTP/HTTPS-адрес ожидаемый код ответа и (по необходимости) соответствует ли тело ответа регулярному выражению.
Добавление датчика в интерфейсе:
- В дереве аспектов выберите устройство.
- Откройте вкладку Monitors и переключитесь на список датчиков (Sensor list).
- Нажмите Add в глобальном меню действий и Go — откроется мастер добавления.

- Выберите нужный тип датчика и Next.

- Заполните параметры датчика в диалоге и нажмите Finish.
- Добавленные датчики появятся в списке на вкладке Monitors.
Рекомендации по выбору датчиков и счётчиков
- Доступность критичных сервисов: HTTP-датчик на URL health-check приложения.
- JVM-здоровье: счётчики heap/non-heap, GC pauses (через JMX).
- Пул соединений и состояние контейнера сервлетов: количество активных сессий, размер пула JDBC.
- Трафик и ошибки: счётчики HTTP-статусов, latency (время ответа).
Важно: баланс между частотой опроса и нагрузкой. Частые опросы дают более свежие данные, но увеличивают нагрузку на мониторинг и сам Tomcat.
Настройка оповещений и политик тревог
Оповещения должны соответствовать SLA и ролям команды. Примеры:
- Критический: полная недоступность приложений или длительный GC, приводящий к тайм-аутам.
- Важный: рост числа 5xx ответов или увеличение времени ответа выше порога.
- Информационный: периодические ошибки аутентификации, пики нагрузки.
Практика:
- Используйте эскалацию: уведомление по e-mail → push → звонок для критических инцидентов.
- На этапе настройки тестируйте правила на тренировочном окружении.
Обзор плагина Tomcat в Verax NMS
Плагин предоставляет шаблоны JMX-счётчиков и готовые датчики для основных MBean Tomcat. Он упрощает начальную конфигурацию, но рекомендуется адаптировать шаблоны под специфику вашего приложения.
Устранение неполадок (Troubleshooting)
Симптом: датчик JMX не возвращает данные. Проверки:
- Доступен ли порт JMX с сервера Verax NMS (проверка сетевого доступа/файервола).
- Правильный ли JMX URL: service:jmx:rmi:///jndi/rmi://
: /jmxrmi. - Включена ли аутентификация JMX (если да — заданы верные учётные данные).
- Посмотрите логи Tomcat и JVM на предмет ошибок при инициализации JMX.
Симптом: высокий latency HTTP-датчика. Проверки:
- Нагрузка на приложение (CPU, GC, потоковые блокировки).
- Ошибки в логах приложения (например, долгие запросы к БД).
- Сетевая задержка между мониторинговым узлом и приложением.
Методика (mini-methodology) для ввода в эксплуатацию мониторинга
- Инвентаризация: перечислите все инстансы Tomcat и их роли (prod, staging, test).
- Базовый мониторинг: добавьте HTTP health-check и JMX-счётчики JVM.
- Настройка оповещений: определите уровни и каналы оповещений.
- Тест: смоделируйте отказ и проверьте срабатывание оповещений.
- Улучшение: добавьте метрики приложения и бизнес-метрики.
Чек-листы по ролям
Операционной команде:
- Проверить доступность JMX-порта и корректность URL.
- Настроить базовые датчики («здоровье», JVM, HTTP).
- Наладить оповещения и эскалацию.
Разработчикам:
- Обеспечить метрики приложения через MBeans или endpoint health.
- Документировать зависимости (БД, очереди) и их пороговые значения.
SRE/архитекторам:
- Определить SLI/SLO для веб-приложений и JVM.
- Настроить ретеншн метрик и план реагирования на инциденты.
Плейбук: добавление нового инстанса Tomcat в мониторинг (SOP)
- Проверьте, что инстанс зарегистрирован в CMDB и указаны контакты владельца.
- Добавьте приложение в Verax NMS, заполните JMX URL и учётные данные.
- Добавьте базовые датчики: HTTP health, JMX Attribute (HeapMemoryUsage), JMX Operation (ThreadDump при необходимости).
- Настройте графики для критичных метрик (heap, GC, active threads).
- Создайте правила оповещений и протестируйте их.
- Документируйте конфигурацию в репозитории знаний.
Инцидентный план и откат
При полной недоступности сервиса:
- Проверка состояния хоста (CPU, память, дисковое пространство).
- Проверка сети и файерволов между мониторинговым хостом и Tomcat.
- Перезапуск сервиса Tomcat (если подтверждена блокировка) на менее загруженном ноде.
- Откат к последнему стабильному билду (если проблема связана с релизом).
- После восстановления — постинцидентный разбор, обновление playbook.
Критерии приёмки
- Инстанс Tomcat отображается в дереве Managed Applications.
- Минимальные датчики (HTTP health, JVM heap) добавлены и возвращают данные.
- Оповещения тестированы и доставляются в каналы ответственных лиц.
- Документация процесса добавления и контактные лица доступны в runbook.
Примеры конфигураций и сниппеты
Пример JMX URL (RMI):
- service:jmx:rmi:///jndi/rmi://tomcat-host.example.com:9000/jmxrmi
Пример полей датчика HTTP:
- URL: http://tomcat-host.example.com:8080/health
- Response code: 200
- Regex: “UP|OK”
Полезные MBean-имена (ориентир):
- java.lang:type=Memory — метрики памяти JVM
- Catalina:type=ThreadPool,name=”http-nio-8080” — пул потоков Tomcat
- Catalina:type=GlobalRequestProcessor,name=”http-nio-8080” — статистика HTTP
Альтернативные подходы
- Prometheus + JMX Exporter: экспорт JMX-метрик в Prometheus, визуализация в Grafana.
- Jolokia: HTTP-адаптер для JMX, упрощает доступ к MBeans через JSON/HTTP.
- Коммерческие APM: New Relic, Dynatrace — дают глубокий анализ трассировок и распределённых транзакций.
Когда эти подходы не подходят: если необходимо минимальное по накладным средство и нет возможности разворачивать дополнительные сервисы, то встроенные JMX-датчики в Verax NMS остаются простым выбором.
Безопасность и конфиденциальность
- Не оставляйте JMX без аутентификации в проде. Включите jmxremote.authenticate=true и используйте SSL.
- Разрешите доступ к JMX только с доверенных IP через файервол.
- Логи и метрики могут содержать персональные данные — применяйте маскирование/ретеншн согласно политике конфиденциальности и GDPR.
Модели зрелости мониторинга
- Нулевой уровень: ручные проверки, нет метрик.
- Базовый: доступность и базовые JVM-метрики.
- Промежуточный: алерты по ключевым SLA, графики и тренды.
- Продвинутый: трассировка запросов, корреляция событий, автоматические ремедиации.
Частые ошибки и когда мониторинг даёт ложные срабатывания
- Неправильно настроенные пороги для пиковой нагрузки — приводит к шуму в алертах.
- Слишком частые опросы создают нагрузку на инфраструктуру.
- Использование одного датчика для нескольких сервисов — затрудняет локализацию проблемы.
Резюме
Мониторинг Apache Tomcat включает корректную настройку JMX, добавление HTTP-датчиков и создание счётчиков производительности. Важно балансировать частоту опроса и объём собираемых метрик, настраивать осмысленные оповещения и обеспечивать безопасность доступа к JMX. Применяйте чек-листы при вводе инстанса в эксплуатацию и ведите документацию для быстрого реагирования на инциденты.
Важное
- Тестируйте оповещения в безопасной среде перед продакшеном.
- Всегда включайте аутентификацию и ограничение доступа к JMX в продакшен-средах.
Конец руководства.
Похожие материалы
Троян Herodotus: как он работает и как защититься
Включить новое меню «Пуск» в Windows 11
Панель полей PivotTable в Excel — руководство
Включить новый Пуск в Windows 11 — инструкция
Как убрать дубликаты Диспетчера задач Windows 11