2010-12-29 4 views
2

Im ищет идеи о том, как лучше всего контролировать приложение, работающее в Tomcat. Я не говорю о Tomcat Monitoring, а скорее проверяю, что «веб-приложение» активно/активно.Мониторинг webapp в Tomcat - (не мониторинг Tomcat)

Я знаю, что есть несколько инструментов для мониторинга Tomcat (lamdbaprobe, Nagios и т. Д.), Но я хочу контролировать фактическое приложение, которое работает в Tomcat. Причина этого в том, что существует несколько ситуаций, когда Tomcat может работать, но приложение не может быть доступно.

Одно из решений, о котором я думаю, - это написать инструмент, который будет пытаться получить доступ к приложению. Например, напишите java-инструмент для отправки и HTTP-запроса и выполните мониторинг ответа.

Каков наилучший подход для этого? Я слышал о JMX, о котором упоминалось много, но я не знаю много об этом. Можно ли использовать это выше? Знаете ли вы о каком-либо другом существующем инструменте, который бы это сделал, или вы знаете о более эффективном подходе?

ответ

1

JMX - это то, что вы должны выбрать.

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

Используя эту оценку, вы имеете бесшовную интеграцию, например, с Tomcat. Tomcat также публикует свою информацию с помощью JMX.

Связь основана на стандарте, есть много инструментов вокруг, которые говорят «JMX over RMI», например jconsole или jvisualVM. Большинство программ мониторинга имеют JMX-плагины (Nagios и другие - мы используем Hyperic).

EDIT

Ну, давайте посмотрим на него наоборот. Напишите класс, который собирает информацию, которую вы хотите опубликовать. Конечно информация мут быть публичным где ...

class MyInfo { 
    public int getCurrentValue() { 
    // lookup this value wherever yoy want 
    return 42; 
    } 
} 

Написать интерфейс

interface MyInfoMBean { 
    public int getCurrentValue(); 
} 

Написать ContextListener, который регистрирует этот MBean при запуске веб-приложения.

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

+0

Это звучит интересно. Должен ли интерфейс быть частью приложения или он является отдельным? то есть я должен сделать какие-либо изменения кода, чтобы это разрешить? – ziggy

+0

Привет, не могли бы вы указать мне пример для настройки этого. Я просмотрел документацию, но это оказалось слишком запутанным для новичков в использовании JMX. – ziggy

+0

В http://java.sun.com/developer/technicalArticles/J2SE/jmx.html - пример кода из 3 частей. Все, что проще, - это не-op. – mtraut

1

Вы пробовали использовать JVisualVM? Он поставляется с Oracle SDK и может дать вам то, что вам нужно.

+0

Да, я видел это, я думаю, что он поставляется с JDK. Он отслеживает работу Tomcat или любого JVM, но меня больше интересует webapp, работающий внутри Tomcat. Я не думаю, что JVisualVM может сказать мне, активно ли приложение. Или это может быть? – ziggy

1

Я когда-то работал с AppDynamics Lite, и это было действительно полезно для мониторинга производительности приложений, развернутых на Tomcat. Есть расширенная версия, но я не думаю, что это бесплатно. облегченная версия бесплатна.

0

Я просто открыть новый инструмент для мониторинга приложений Performace

https://github.com/scouter-project/scouter/

мониторинга Служба действительно отличается, то Tomcat мониторинга. SCOUTER - это инструмент мониторинга сервисов веб-приложений. Вы можете проверить производительность (также profole/sqls) каждой отдельной транзакции (запрос услуги) на диаграмме рассеяния ответа (график XLOG)

Смежные вопросы