Dominik L.

Dominik L. Programista Java/Jee

Temat: Monitoring aplikacji

Witam!

jestem na etapie zbierania informacji, wszystkiego co może się przydać lub co warto rozważyć w podejściu do tego problemu. Otóż chodzi mi o monitorowanie aplikacji napisanych w Javie. Jedno z rozwiązań na jakie się póki co natknąłem to wykorzystanie sysloga zamiast tradycyjnego loga, może mieliście styczność z tego typu aplikacjami? jakieś podpowiedzi, wskazówki ? Będę wdzięczny za każdą pomocną opinię ...
Krzysztof Łukaszyk

Krzysztof Łukaszyk
Administrator/Progra
mista, Aesculap
Chifa Sp. z o.o.

Temat: Monitoring aplikacji

Może JMX?
http://www.oracle.com/technetwork/java/javase/tech/jav...
Musisz sprawdzić i ocenić czy JMX będzie przydatne w twoim zastosowaniu.
Dominik L.

Dominik L. Programista Java/Jee

Temat: Monitoring aplikacji

Krzysztof Łukaszyk:
Może JMX?
http://www.oracle.com/technetwork/java/javase/tech/jav...
Musisz sprawdzić i ocenić czy JMX będzie przydatne w twoim zastosowaniu.
ok spoko mogę się podpiąc pod jmx a czy orientujesz się czy spod jmx dam radę wyciągnąć więcej na temat moich aplikacji co się w nich dzieje chodzi mi o sytuację kiedy wyjątki zaczną szaleć to czy będę w stanie się o tym dowiedzieć, dzięki za szybki response :)

p.s. pisząc podpiecie się pod jmx mam na myśli console jmx działającą na jakimś serwerze aplikcyjnymDominik L. edytował(a) ten post dnia 03.03.11 o godzinie 20:01
Piotr Stawiński

Piotr Stawiński
projektant/programis
ta, Narodowy Bank
Polski

Temat: Monitoring aplikacji

Cześć
Jeśli interesują Cię rozwiązania komercyjne, np. do wykorzystania w Twojej firmie, to polecam CA Wily do monitorowania aplikacji JEE. Jest to dosyć drogie narzędzie, ale jest to kombajn. Mam z tym narzędziem styczność już około 2 lata, ale naprawdę jest niezłe. Monitoruje m.in.:
- stan dowolnego serwera aplikacyjnego,
- statystyki JVM, CPU,
- statystki zapytań SQL (liczba wywołań konkretnych zapytań, czas odpowiedzi),
- statystyki EJB (liczba wywołań konkretnych metod, czas odpowiedzi każdej z nich),
- oczywiście JMX i wszystko co z tym związane, np. podsystemy serwera aplikacyjnego.
Można pisać własnych agentów monitorujących np. stan fileSystemów, stan logów (np. zakładając pułapki na szczególny typ wyjątku, który nas interesuje), wyciągających dane z bazy danych.
Wszystkie statystyki prezentowane są na graficznych dshboardach.
Nie traktuj tego opisu, jako reklamę, ale coś z czym mam styczność i co pozwala przewidzieć awarię systemu (czasami liczą się minuty, a ta wiedza jest bezcenna).
Jeśli nie interesuje Cię monitorowania z wykorzystaniem drogich "zabawek", to polecam JConsole, standardowe narzędzie do monitorowania JVM. Na początku powinno w zupełności wystarczyć. Jak nabierzesz wprawy z JConsole, to zobaczysz co Ci jest potrzebne i na pewno znajdziesz narzędzie chociażby OpenSource; jest ich kilka i są niezłe ;)
Dominik L.

Dominik L. Programista Java/Jee

Temat: Monitoring aplikacji

Piotr Stawiński:
Cześć
Jeśli interesują Cię rozwiązania komercyjne, np. do wykorzystania w Twojej firmie, to polecam CA Wily do monitorowania aplikacji JEE. Jest to dosyć drogie narzędzie, ale jest to kombajn. Mam z tym narzędziem styczność już około 2 lata, ale naprawdę jest niezłe. Monitoruje m.in.:
- stan dowolnego serwera aplikacyjnego,
- statystyki JVM, CPU,
- statystki zapytań SQL (liczba wywołań konkretnych zapytań, czas odpowiedzi),
- statystyki EJB (liczba wywołań konkretnych metod, czas odpowiedzi każdej z nich),
- oczywiście JMX i wszystko co z tym związane, np. podsystemy serwera aplikacyjnego.
Można pisać własnych agentów monitorujących np. stan fileSystemów, stan logów (np. zakładając pułapki na szczególny typ wyjątku, który nas interesuje), wyciągających dane z bazy danych.
Wszystkie statystyki prezentowane są na graficznych dshboardach.
Nie traktuj tego opisu, jako reklamę, ale coś z czym mam styczność i co pozwala przewidzieć awarię systemu (czasami liczą się minuty, a ta wiedza jest bezcenna).
Jeśli nie interesuje Cię monitorowania z wykorzystaniem drogich "zabawek", to polecam JConsole, standardowe narzędzie do monitorowania JVM. Na początku powinno w zupełności wystarczyć. Jak nabierzesz wprawy z JConsole, to zobaczysz co Ci jest potrzebne i na pewno znajdziesz narzędzie chociażby OpenSource; jest ich kilka i są niezłe ;)
ok thx za wskazówkę
Tomasz D

Tomasz D Programista
Java/JEE, freelancer

Temat: Monitoring aplikacji

Ja z kolei polecam CollectD, proste narzędzie, ale o potężnych możliwościach. Można tym monitorować:
- pliki logów aplikacji (regexpy)
- stan bazy danych
- wartości w tabelach w bazie
- połączenia TCP
- logi serwera apache
- wiele innych (http://collectd.org/features.shtml, menu 'Plugins' po lewej)

Wszystko robi się za pomocą pluginów, które aktywujesz i odpowiednio konfigurujesz. Dodatkowo można określać progi, dla których mają wysyłać się powiadomienia na maila, że coś jest nie tak.

http://collectd.org/
Piotr B.

Piotr B. Handlarz też
człowiek

Temat: Monitoring aplikacji

To ja jeszcze polecam od siebie Foglighta - dobre narzędzie nie tylko do monitorowania Javy, bo nie zawsze problem leży po stronie Javy, ale na przykład po stronie bazy danych (czy VMware, czy OS itd.). Warto więc znać prawdziwe źródło problemu.

Jeśli chodzi o monitoring samej Javy to znajdziesz tam wszystko co potrzebujesz.
http://www.quest.com/application-monitoring-technology...

A swoją drogą - zajrzyj jeszcze proszę pod adres: http://www.quest.com/jprobe/ - może Ci się to przyda..
Jakub Grabowski

Jakub Grabowski Tworzenie aplikacji,
integracja SOA,
outsourcing,
szkolen...

Temat: Monitoring aplikacji

Np. na Glassfishu jest mnóstwo MBean'ów JMX pozwalających kontrolować stan serwera (łącznie z subskrypcjami na alerty, pobieranie ostatniego wyjątku itp.). Można podglądać to np. z JConsole, ale też przez API JMX lub Management API Glassfisha.
Z bardziej "wysokopoziomowych" narzędzi fajny jest Hyperic HQ. Pozwala zbierać statystyki i zdarzenia w czasie i reagować na nie. Działa z wieloma appserverami. Pewnie da się go dostosować do własnych aplikacji i popisać pluginy.
Można też kombinować z Nagiosem i coś do niego dopisać...

konto usunięte

Temat: Monitoring aplikacji

Może ten link będzie przydatny.

http://java-source.net/open-source/profilers

Pozdrawiam,
Dominik L.

Dominik L. Programista Java/Jee

Temat: Monitoring aplikacji

hej dzieki wszytkim za cenne wskazówki :)

konto usunięte

Temat: Monitoring aplikacji

IMHO polecam VisualVM (http://visualvm.java.net/) albo "zwykłe" JConsole, które jest standardowo zawarte wraz z JDK (JAVA_HOME/bin/jconsole.exe). Oczywiście to zależy czy chodzi stricte o aplikacje, czy może bardziej o diagnostykę pracy serwera aplikacji (e.g. Tomcat, GlassFish, JBoss AS).

"VisualVM is a tool to monitor and troubleshoot Java applications. It runs on Oracle/Sun JDK 6, but is able to monitor applications running on JDK 1.4 and higher. It utilizes various available technologies like jvmstat, JMX, the Serviceability Agent (SA), and the Attach API to get the data and automatically uses the fastest and most lightweight technology to impose minimal overhead on monitored applications."

http://visualvm.java.net/features.html#feature_matrix

Dodam jeszcze, że począwszy od (Oracle) JDK6u7 VisualVM jest w nim zawarty t.j. pod ścieżką JAVA_HOME/bin/jvisualvm.exe.Grzegorz Szpetkowski edytował(a) ten post dnia 11.03.11 o godzinie 17:53
Radosław Czapnik

Radosław Czapnik Partner Flopsar
Technology

Temat: Monitoring aplikacji

Temat już stary ale ja trafiłem na niego teraz, cenne wskazówki . Podzielę się wiedzą dotycząca nowego narzędzia na rynku jakim jest Flopsar (nadmienię że zawodowo zajmuje się jego promocją ale tutaj nie jest to moją intencją, chcę żebyście wiedzieli że jest alternatywa do wyżej opisanych dobrych rozwiązań, poza tym nie mam czego się wstydzić, rozwiązanie samo się broni o czym może świadczyć lista ekspertów którzy zdecydowali się na Flopsar.
Ocenę pozostawiam Wam.

Zakres monitoringu Flopsar:
1. Monitoring każdej transakcji wykonywanej w systemie.
a. Dla każdej pojedynczej transakcji jej „rozkład na pojedyncze elementy” (transaction trace)
i. Monitorowanie każdej metody dowolnego komponentu, min:
1. metody klas znajdujących się w pakietach np. pl.nazwa.*
2. metody klas dziedziczonych
3. metody klas implementujących interfejs
4. metody adnotowane
ii. Monitorowanie typowych komponentów J2EE:
1 Servletów, stron JSP, JSF
2. Komponenty GWT
3. Komponenty Spring
4. Komponenty EJB
5. Komponenty JDBC (zapytania SQL z parametrami)
iii. Wzorce monitoringu dla technologii:
1. ESB (proxy, biznes service)
2. BPEL/BPM
3. Szyny Webmethods, Tibco
iv. Wzorce monitoringu dla aplikacji
1. Oracle EBS
2. SAP
2. Dla każdej metody możliwość raportowania jej parametrów (dowolnych)
3. Korelacja danych (Cross-JVM-Tracing) po dowolnym parametrze
4. Pełny monitoring Wirtualnej Maszyny Java
a. Min. mechanizmy GC, wycieki pamięci
5. Pełne raportowanie statystyk JMX
a. Pule połączeń do bazy danych, stan wątków itp.
6. Minimalne obciążenie:
a. Do 2-3% na CPU, do 16MB na pamięci JVM
7. Minimalne wymagania na bazę zbierającą dane
8. Ogromna skalowalność bazy:
a. 40 000 metryk/sek lub 200MB/s danych
9. Unikalny interfejs graficzny
10. Brak nakładów na utrzymanie i szkolenia
11. Pełne API do bazy danych (możliwość dowolnego raportowania)
12. API „Independent technology Agent” do budowy dowolnego monitoringu:
a. Apache
b. IBM MQ
c. Tuxedo
d. inne

Następna dyskusja:

developerzy aplikacji webow...




Wyślij zaproszenie do