System monitorujący Jopr (lub też JON) posiada możliwość monitorowania serwera Tomcat. Jednak wymaga to wcześniejszej odpowiedniej konfiguracji zarówno Tomcata jak i Jopra.
Jopr pozwala na monitorowanie Tomcata w wersji od 5.5.23 oraz 6.0.18 działającego pod maszyną wirtualną Javy w wersji przynajmniej 5.
Poniższa konfiguracja dotyczy Tomcata w wersji 5.5.26 dostępnego w Debianie Lenny, działającym w ramach JVM w wersji 1.6.20. Te same kroki w można w praktyce wykonać na dowolnym systemie, jedynie modyfikując odpowiednio ścieżki. W przedstawionym opisie nie ma podanej instalacji agenta Jopr, zakładam że jest już instalowany i poprawnie działa.
Zwracam uwagę, że agent monitorujący nie wykrywa automatycznie Tomcata, należy go odpowiednio skonfigurować zanim zacznie będzie można go monitorować.
Konfiguracja serwera Tomcat
Konfiguracja maszyny wirtualnej Javy
Pierwszym krokiem będzie włącznie możliwości dostępu do interfejsu JMX dostarczanego przez Tomcata. Umożliwi do jego zdalną kontrolę. Aby to zrobić, należy zdefiniować odpowiednie parametry podczas uruchamiania JVM. W przypadku Tomcata najlepiej dodać je do w pliku /etc/default/tomcat5.5
, najlepiej na końcu pliku:
30 31 32 33 34 35 36 37 38 39 | # włączenie portu, na którym JVM ma nasłuchiwać na połączenia JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.port=22123" # wyłączenie SSL JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.ssl=false" # plik z informacjami o uprawnieniach poszczególnych użytkowników JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.access.file=/etc/tomcat5.5/jmx.access" # plik z loginami i hasłami użytkowników JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.password.file=/etc/tomcat5.5/jmx.password" # włączenie uwierzytelnienia JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.authenticate=true" |
Teoretycznie może wystarczyć jedynie definicja portu na którym nasłuchuje JVM oraz wyłączenie uwierzytelniania. Doprowadzi to jednak do sytuacji, że każdy kto pozna ten port, będzie w stanie zdalnie zarządzać naszą instancją Tomcata. Dlatego zaleca się zdefiniowanie odpowiednich informacji potrzebnych do uwierzytelnienia. Szczegółowe informacje na ten temat można znaleźć w tym artykule: Monitoring and Management Using JMX.
Pierwszym krokiem będzie zdefiniowanie pliku z loginem użytkownika oraz jego hasłem w pliku /etc/tomcat5.5/jmx.password
, plik będzie po prostu zawierał login użytkownika oraz przypisane dla niego hasło dostępowe:
1 | rhqadmin hasło |
Teraz należy zdefiniować uprawnienia, jakie dany użytkownik będzie posiadał, w pliku /etc/tomcat5.5/jmx.access
:
1 | rhqadmin readwrite |
Nie można także zapomnieć o konfiguracji odpowiednich uprawnieć dostępu do pliku. W przypadku zbyt szerokich uprawnień serwer Tomcat nie wystartuje:
# chmod 600 /etc/tomcat5.5/jmx.password /etc/tomcat5.5/jmx.access
Konfiguracja moduły Response Time
Włączenie modułu o nazwie Response Time
wiąże się z konieczności wprowadzenia zmian w konfiguracji serwera Tomcat lub też aplikacji dla których chcemy ten moduł włączyć. Jeżeli chcemy go włączyć dla wybranych aplikacji, odpowiednie wpisy należy umieścić w jej pliku konfiguracyjnym web.xml
. Natomiast tutaj skonfigurujemy ten moduł dla całego serwera. Wymaga to wprowadzenia poniższych modyfikacji do pliku /etc/tomcat5.5/web.xml
. Odpowiednie wpisy należy umieścić głównymi pomiędzy tagami ograniczającymi web-app
.
1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 | <!-- The RHQ Response Time Metric Filter. --> <!-- This filter gathers response time information for processed requests --> <!-- for all hosted applications. This requires that the --> <!-- rhq-rtfilter-X.X.X.jar also be placed properly in the Tomcat --> <!-- deployment. The jar file can be downloaded from the RHQ Server. --> <!-- Using the GUI, navigate to the Administration page. Then click --> <!-- 'Download Agent Connectors'. --> <!-- Download connector-rtfilter.zip. Unzip to extract the jar. --> <filter> <filter-name>RhqRtFilter</filter-name> <filter-class>org.rhq.helpers.rtfilter.filter.RtFilter</filter-class> </filter> <!-- The mapping for the RHQ Filter --> <!-- To limit to only certain applications various filters can be --> <!-- defined. This will perform RT metric collection for all --> <!-- applications. --> <filter-mapping> <filter-name>RhqRtFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> |
Należy teraz jeszcze udostępnić serwerowi Tomcat odpowiednie biblioteki. Można je znaleźć:
- na stronie o nazwie
Downloads
, tej z której można pobrać agenta monitorującego, plik nazywa sięconnector-rtfilter.zip
- w katalogu z instalacją serwera RHQ:
rhq-server/jbossas/server/default/deploy/rhq.ear/rhq-downloads/connectors/connector-rtfilter.zip
Plik ten należy pobrać oraz rozkompresować. Wewnątrz znajdują się dwa pliki (podaję ich nazwy bez wersji): commons-logging.jar
oraz rhq-rtfilter.jar
. Teraz w zależności od wersji Tomcata musimy je skopiować w odpowiednie miejsca:
- w przypadku Tomcata w wersji 5.5 kopiujemy plik
rhq-rtfilter.jar
do katalogu/usr/share/tomcat5.5/common/lib
- w przypadku Tomcata w wersji 6 kopiujemy oba pliki
commons-logging.jar
orazrhq-rtfilter.jar
do katalogulib
Po tych operacjach można ponownie uruchomić serwer Tomcat. Jeżeli nie wystąpiły żadne błędy, można przystąpić do konfiguracji serwera Jopr.
Konfiguracja serwera Jopr/JON
Agent monitorujący potrafi w dużej mierze wykryć samodzielnie różne usługi i serwery jakie działają na naszych maszynach. Niestety, ma problemy z automatyczną konfigurację serwera Tomcat. Trzeba mu tutaj trochę pomóc, czy ręcznie dodać odpowiedni zasób i go skonfigurować.
Najpierw należy wybrać serwer, na którym działa nasza instancja Tomcata, a następnie wybrać zakładkę Inventory
. Zostanie wyświetlona lista wszystkich serwerów działających na wybranej maszynie. Należy przewinąć stronę i na dole będzie znajdowała się możliwość dodanie ręcznego nowego zasobu:
Należy z rozwijalnej listy wybrać pozycję Tomcat Server
i nacisnąć przycisk OK.
Pojawi się formularz, który umożliwi wprowadzenia podstaowych informacji o Tomcacie:
Najważniejsze opcje konfiguracyjne, które należy podać:
- Catalina Home –
/usr/share/tomcat5.5
Katalog, gdzie znajduje się zainstalowany Tomcat. - Catalina Base –
/usr/share/tomcat5.5
Katalog, gdzie znajduje się instancja Tomcata. - Manager URL –
service:jmx:rmi:///jndi/rmi://localhost:22123/jmxrmi
Połączenie z interfejsem JMX serwera, port oraz host muszą być takie jak podano przy konfiguracji JVM - Principal –
rhqadmin
Login użytkownika, taki jak podano podczas konfiguracji JMX. - Credentials –
hasło
Hasło dla użytkownika, takie jak podano podczas konfiguracji JMX
Pozostaje zatwierdzić konfigurację, i można się już cieszyć monitorowaniem serwera Tomcat przez Jopr.
Źródła
- Best Practices for Managing Tomcat Servers
- Monitoring and Management Using JMX