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:

# chown tomcat55.adm /etc/tomcat5.5/jmx.password /etc/tomcat5.5/jmx.access
# 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 oraz rhq-rtfilter.jar do katalogu lib

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:

JOPR - ręczne dodanie Tomcata

JOPR - ręczne dodanie Tomcata

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:

Definicja połączenie z Tomcatem

Definicja połączenie z Tomcatem

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 URLservice:jmx:rmi:///jndi/rmi://localhost:22123/jmxrmi
    Połączenie z interfejsem JMX serwera, port oraz host muszą być takie jak podano przy konfiguracji JVM
  • Principalrhqadmin
    Login użytkownika, taki jak podano podczas konfiguracji JMX.
  • Credentialshasł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