Monitorowanie Tomcat'a i Lambda Probe

10 lipca 2009 | 0 komentarze

Dzisiaj swoją szanse dostała Lambda Probe (wcześniej Tomcat Probe) - aplikacja do administracji i monitorowania serwera Apache Tomcat. Instalacja w formie war'a, licencja GNU GPL, ładne GUI - to atuty znane przed instalacją ze strony produktu.

Najważniejsze ficzery

-działa na Tomcie od 5.0 wzwyż i na jBossie
-na dzień dobry wszystko to co daje Manager
-szczegółowe monitorowanie pamięci + wykresy
-monitorowanie obciążenia CPU
-szczegółowe monitorowanie wątków, możliwość zabicia wątku
-monitoriwanie ruchu i liczby zapytań w podziale na connectors
-przeglądanie plików JSP, re-kompilacja JSP
-lista i przeglądanie logów (Tomcat 6 => tylko LOG4J)
-lista DataSource, test połączenia, wykonanie zapytania SQL
-monitorowanie klastra + wykresy ruchu
-możliwość restartu JVM - wymagana istalacja Java Service Wrapper

Pełna lista możliwości tutaj.


Instalacja

Jest bardzo prosta. Z oficjalnej strony pobieram binarkę. Dla własnego komfortu publikuję wara w formie exploded. W środku JSP, Spring i SiteMesh - żadnych szaleństw i oto chodzi. Na JVM na której pracuje serwer konieczne jest włączenie JMX agent'a z dostępem lokalnym przez dodanie parametru:
-Dcom.sun.management.jmxremote
Po restarcie serwera aplikacja wstaje za pierwszym razem. Autentykacja przez kontener, wymagany user posiadający rolę "manager" - tak jak w Tomcat Manager (do wyboru są jeszcze role probeuser, poweruser, poweruserplus). Instalacja poszła gładko.

Pierwsze wrażenie

Bardzo ładny, czytelny, funkcjonalny interfejs. Od razu wiadomo gdzie czego szukać. Automatyczne odświeżanie wykresów i tabel w Ajax'ie (prototype + scriptaculous). Jest kilka przydatnych bajerów - każdy wykres jednym kliknięciem można powiększyć na pełny ekran. W porównaniu do Tomcat Manager'a to skok w inną epokę.


Drugie wrażenie

Nie wszystko działa idealnie. Irytuje wyskalowanie wykresów do maksymalnej aktualnie wyświetlanej wartości, zamiast do maksymalnej możliwej. Górną granicą Perm Gen powinien być MaxPermSize! Dobrze że w tabelce jest procentowy progres.

Brakuje powiadomień. Chciałbym dostać e-maila z informacją jeśli dzieje się coś niedobrego. Nie ma możliwości zachowania pełnych danych historycznych, nie mówiąc o wysłaniu ich w mailu. Domyślnie wykresy przedstawiają tylko ostatnie 2 godziny. Na szczęście można poprosić Spring'a o ustawienie innych niż domyślne triggerów Quartz (30 sekund) i zmienić długość przechowywanych serii (/WEB-INF/spring-stats.xml). Trzeba uważać żeby nie przesadzić - dane są serializowane przez XStream na bieżąco do pliku (/work/Catalina/localhost/probe/stats.xml) i przy większym rozmiarze serii może wystąpić problem wydajnościowy. Poniżej przykład zmiany długości strumienia do 720 - przy logowaniu co 30sek. daje to 6 godzin (spring-stats.xml).

<bean name="memoryStatsCollector"
class="org.jstripe.tomcat.probe.beans.stats.collectors.JvmMemoryStatsCollectorBean">
<property name="jvmMemoryInfoAccessor" ref="jvmMemoryInfoAccessor"/>
<property name="statsCollection" ref="statsCollection"/>
<property name="maxSeries" value="720"/>
</bean>


Martwi brak aktualizacji projektu przez ostatnie 3 lata - najnowsza wersja 1.7b (beta?) jest z listopada 2006. Pewnie dlatego że jest taka dobra i nie zawiera żadnych błędów. ;)

Lambda to bardzo dobre narzędzie. Praca z takim GUI to czysta przyjemność. Od dzisiaj pierwszym krokiem po instalacji Tomcata powinno być wyrzucenie Managera i instalacja w to miejsce Lambda Probe. ;)

0 komentarze: