Monitorowanie Tomcata przy użyciu Jopra

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

Tags: , , , , ,

Monitorowanie bazy danych Postgres przy użyciu RHQ Server

Wtyczka do monitorowania bazy danych Postgres jest jedną ze standardowo dostarczanych razem z serwerem RHQ. Pozwala ona zarówno na monitorowanie działanie bazy danych, uzyskiwanie o niej informacji statystycznych oraz także zarządzanie serwerem.

Bezpośrednio po instalacji serwera RHQ nie jest ona skonfigurowana do pracy. Baza danych powinna zostać odnaleziona poprawnie, jednak nie będzie ona monitorowana. Wygląda to mniej więcej tak:

Postgres - brak monitorowania

Postgres - brak monitorowania

Domyślnie RHQ stara się wykorzystać do monitorowania konto użytkownika postgres. W systemie Debian użytkownik ten nie ma skonfigurowanego hasła. Jego dostęp do bazy danych następuje poprzez identyfikację użytkownika zalogowanego w systemie (czyli tylko będąc zalogowanym użytkownikiem postgres możemy dostać się do bazy i nie musimy wtedy podawać hasła). Konfiguracja tego zachowania znajduje się w pliku /etc/postgresql/8.3/main/pg_hba.conf:

65
66
67
68
69
70
71
72
73
74
# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database
# super user can access the database using some other method.
# Noninteractive
# access to all databases is required during automatic maintenance
# (autovacuum, daily cronjob, replication, and similar tasks).
#
# Database administrative login by UNIX sockets
local   all         postgres                          ident sameuser

I tak jak nie jest zalecane wprowadzenie zmian w tej konfiguracji, tak nic nie stoi na przeszkodzie zdefiniowanie odpowiedniego hasła dla tego użytkownika. Tym samym umożliwimy mu łączenie przy wykorzystaniu lokalnego interfejsu sieciowego.

Zdefiniowanie hasła można wykonać tak:

  • połączenie się z bazą danych na uprawnieniach użytkownika postgres:
    # su - postgres -c psql
  • ustawienie hasła dla użytkownika:
    postgres=# ALTER USER postgres WITH PASSWORD 'hasło';

Teraz pozostaje podanie tych informacji w RHQ. Należy wybrać na liście zasobów bazę danych Postgres a następnie zakładkę Inventory. W ramach tej zakładki mamy możliwość wyboru polecenie CONNECTION. Pozwoli ona na konfigurację parametrów połączenia.

Postgres - konfiguracja połączenia

Postgres - konfiguracja połączenia

Należy wybrać przycisk EDIT i wprowadzić poprawnie wartości w polach role name oraz role password. Jeżeli hasło zostanie podane poprawnie, to monitorowanie powinno działać. Ponieważ użytkownik postgres jest super użytkownikiem, mamy także możliwość modyfikowania parametrów bazy danych (w zakładce CONFIGURE).

Postgres - konfiguracja parametrów

Postgres - konfiguracja parametrów

Tags: , , , , , , ,

Instalacja RHQ Server wraz z wtyczkami Jopr w systemie Debian oraz Red Hat

W tym wpisie przedstawię w jaki sposób można zainstalować oraz skonfigurować serwer monitorujący RHQ Server wraz z odpowiednimi wtyczkami z projektu Jopr. Przedstawię instalację aplikacji skompilowanych ze źródeł tych projektów. Można również pobrać odpowiedni pakiet ze strony Jopr i uprościć sobie trochę życie. W takim przypadku jednak (przynajmniej w momencie pisanie tego tekstu) nie będzie działało monitorowanie serwera aplikacji JBoss EAP 5.

Na zakończenie artykuły powinniśmy dysponować zainstalowanym serwerem RQH wraz z wtyczkami z Jopr, udostępnionym poprzez serwer WWW Apache oraz monitorujący swoje działanie. Jeżeli nie ma potrzeby budowania takiej konfiguracji zawsze można niektóre kroki pominąć.

Pobranie instalatora

Istnieją następujące sposoby pobrania plików z serwerem RQH oraz z Joprem:

  1. Pobrać ze strony Jopr: Jopr – Releases, w chwili pisanie tego artykułu ostatnią dostępną wersją była 2.3.1, wersja ta zawiera w sobie zarówno serwer RHQ jak odpowiednie wtyczki pozwalające na monitorowanie serwera aplikacji JBoss.
  2. Pobranie źródeł serwera RHQ oraz Jopr i ich kompilacja, opis tego procesu można przeczytać w tym wpisie: Jak skompilować ze źródeł aplikacje RHQ Server oraz Jopr.
  3. Można pobrać wersję skompilowaną przeze mnie:

W przypadku wybrania metody pierwszej nie będzie potrzeby integrowania ze sobą serwera RHQ z wtyczkami Jopr. W pozostałych dwóch metodach będzie trzeba to zrobić (oczywiście, może się coś zmieni w międzyczasie i także tak konieczność zniknie).

Instalacja bazy danych

Serwer RHQ pozwala na użycie następujących baz danych:

  • systemy produkcyjne – PostgreSQL oraz Oracl
  • testowo – HSQL oraz MSSQL

Serwer bazy danych HSQL można użyć, jeżeli chcemy sprawdzić jak wygląda całe rozwiązania, czy też w celach demonstracyjnych. Nie należy go używać jednak w systemie produkcyjnym. My zajmiemy się instalacją bazy danych PostgreSQL oraz jej konfiguracją tak, aby dało się używać razem z nią serwer RHQ.

Należy pamiętać, że RHQ Server wymaga wersji PostreSQL przynajmniej 8.2.4, wersja 8.1 nie jest w ogóle wspierana.

W przypadku Debiana instalacja PostgreSQL sprowadza się do wydania polecenia:

# aptitude install postgresql

Spowoduje ono instalację bazy danych w wersji 8.3. W repozytorium z backportami występuje także wersja 8.4, ale na potrzeby tego wpisu instalacja jej nie jest konieczna.

Z Red Hatem w wersji 5.5. problemów też nie będzie, instalacja odbywa się poprzez komendę:

# yum install postgresql84

Należy zwrócić uwagę na instalację odpowiedniej wersji bazy danych. W przypadku wydań RHEL wcześniejszych niż 5.5 będzie dostępna tylko wersja 8.1 bazy danych. W takim przypadku należy skorzystać z repozytoriów zewnętrznych lub pobrać odpowiednią wersję ze strony domowej PostgreSQL.

Pozostaje teraz dodać użytkownika rhqadmin wraz z hasłem:

# su - postgres -c 'createuser -S -D -R -P rhqadmin'
Enter password for new role:
Enter it again:

Tworzymy bazę danych rhq, która będzie używana przez system monitorujący:

# su - postgres -c 'createdb -O rhqadmin rhq'

To wszystko, co jest niezbędne do uruchomienia RHQ Server wraz z PostreSQL, dla osób nie znających tej bazy danych polecam przeczytanie dokumentacji.

Instalacja plików binarnych

Pobrane lub skompilowane pliki binarne należy teraz rozkompresować do odpowiedniego katalogu. Może to być dowolny katalog na naszej maszynie, ja zakładam że serwer RHQ będzie znajdować się w katalogu /opt/rhq-server. Do do rozpakowania archiwum dobrze jest użyć narzędzia konsolowego unzip.

Najprostszym sposobem będzie zatem wydanie następujących komend:

# cd /opt
# unzip < ścieżka do pliku zip z RHQ>

Po rozpakowaniu serwera RHQ należy jego nazwę zmienić na rhq-server (lub też utworzyć odpowiedni link).

Pierwsze uruchomienie serwera

Skrypt uruchamiający RHQ znajduje się w katalogu /opt/rhq-server/bin i nazwy się rhq-server.sh. Posiada on następujące komendy:

  • start – uruchamia serwer w trybie demona
  • console – uruchamia serwer w ramach konsoli, logi z serwera są wypisywane na ekranie
  • stop – pozwala na wyłączenie serwera
  • kill – zabija serwer (usuwa proces JVM z pamięci)
  • status – pokazuje, czy serwer działa

Pierwsze uruchomienie proponuje wykonać przy użyciu komendy console. Pozwala ona na wyświetlenie logów z serwera bezpośrednio na konsolę, więc od razu będzie wiadomo czy wszystko działa.

# cd /opt/rhq-server/bin
# ./rhq-server.sh console

Komenda ta powinna uruchomić serwer i w ciągu kilkunastu sekund powinniśmy otrzymać komunikat o jego pomyślnym starcie:

[Server] JBoss (MX MicroKernel) [4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)] Started in 5s:450ms

Jak widać uruchomiony został serwer aplikacji JBoss w wersji 4.2.3. Po pomyślnym uruchomieniu serwer powinien nasłuchiwać na wszystkich interfejsach sieciowych na następujących portach:

# netstat -tulpn | grep java
tcp        0      0 0.0.0.0:37024           0.0.0.0:*               LISTEN      21481/java      
tcp        0      0 0.0.0.0:9093            0.0.0.0:*               LISTEN      21481/java      
tcp        0      0 0.0.0.0:5446            0.0.0.0:*               LISTEN      21481/java      
tcp        0      0 0.0.0.0:7080            0.0.0.0:*               LISTEN      21481/java      
tcp        0      0 0.0.0.0:57165           0.0.0.0:*               LISTEN      21481/java      
tcp        0      0 0.0.0.0:34703           0.0.0.0:*               LISTEN      21481/java      
tcp        0      0 0.0.0.0:9009            0.0.0.0:*               LISTEN      21481/java      
tcp        0      0 0.0.0.0:2098            0.0.0.0:*               LISTEN      21481/java      
tcp        0      0 0.0.0.0:7443            0.0.0.0:*               LISTEN      21481/java      
tcp        0      0 0.0.0.0:2099            0.0.0.0:*               LISTEN      21481/java      
tcp        0      0 0.0.0.0:7444            0.0.0.0:*               LISTEN      21481/java      
tcp        0      0 0.0.0.0:7445            0.0.0.0:*               LISTEN      21481/java

Jak widać są to inne porty niż te standardowo zajmowane przez JBossa czy też Tomcata. Może się jednak zdarzyć, że wystąpi tutaj jakiś konflikt z innymi aplikacjami. Proszę się wtedy skonsultować z dokumentacją JBossa, gdzie można znaleźć informacje o tym jak zmienić te porty na inne.

Dla nas na tę chwilę najważniejsza jest informacja, że RHQ nasłuchuje na ruch HTTP na porcie 7080 oraz na ruch HTTPS na porcie 7443. Będzie nam to potrzebne do dalszej konfiguracji serwera.

Konfiguracja serwera RHQ

Powinniśmy do tej chwili dysponować działającym serwerem RHQ ale jeszcze nie został on skonfigurowany. Dalsza część tego porcesu odbywa się przez przeglądarkę. Proszę połączyć się z portem 7080 z maszyną na której została uruchomiona usługa. W moim przypadku będzie to połączenie na adres: http://localhost:7080.

Po połączeniu się powinien pokazać się następujący ekran:

Ekran powitalny RHQ Server

Ekran powitalny RHQ Server

Nie pozostaje teraz nic innego jak wybrać link do kontynuacji instalacji. Pozwoli on na zdefiniowaniu dostępu do bazy danych oraz innych podstawowych elementów serwera.

Instalacja RHQ Server - parametry bazy danych

Instalacja RHQ Server - parametry bazy danych

  • Database Type – typ bazy danych, w naszym przypadku PostgreSQL
  • Database Connection URL – definicja połączenia z bazą danych, czyli serwer oraz jej nazwa
  • Database JDBC Driver Class – klasa sterownika odpowiadająca za obsługę bazy danych
  • Database XA DataSource Class – klasa źródła danych
  • Database User Name – nazwa użytkownika, który będzie używany do łączenia się z bazą danych
  • Database Password – hasło użytkownika

Po zakończeniu konfiguracji bazy danych dobrze jest wybrać przycisk Test Connection, który sprawdzi, czy można się z bazą danych połączyć. W przypadku problemów trzeba będzie je skorygować.

Teraz czas na zdefiniowanie, jak będziemy się łączyć z serwerem:

Instalacja RHQ Server - parametry instalacji

Instalacja RHQ Server - parametry instalacji

  • Server Name – nazwa maszyny na której instalujemy RHQ
  • Server Public Address – publiczna nazwa maszyny
  • HTTP Port – port HTTP na którym serwer będzie nasłuchiwał
  • Secure HTTPS Port – port HTTPS na którym serwer będzie nasłuchiwał

Ostatnim elementem będzie skonfigurowanie samego serwera:

Instalacja RHQ Server - parametry serwera

Instalacja RHQ Server - parametry serwera

  • Server Bind Address – adres interfejsu sieciowego z którego ma korzystać serwer RHQ
  • Embedded Agent Enabled – opcja umożliwia włączenie agenta wbudowanego w serwer RHQ, pozwoli to na monitorowanie maszyny na której działa serwer, nie jest zalecane uruchamianie tego w środowisku produkcyjny, w takim przypadku należy skonfigurować oddzielnego agenta
  • Email SMTP Hostname – nazwa serwera przyjmującego pocztę
  • Email From Address – adres z którego ma wychodzić poczta z serwera RHQ

I to wszystko jeżeli chodzi o instalacją. Nie pozostaje nic innego jak nacisnąć przycisk Install Server! i poczekać chwilę.

Instalacja RHQ Server - proces instalacji

Instalacja RHQ Server - proces instalacji

W czasie instalacji w logach powinniśmy obserwować wzmożony ruch, powinna zostać utworzona baza danych, zainicjalizowane aplikacje. Mogę pojawić się różne błędy, ale jeżeli dostaniemy na końcu komunikat Done! Click here to get started! to wszystko powinno być OK.

Jeżeli instalacja się zakończyła, możemy się zalogować do systemu. Domyślny użytkownik to rhqadmin a domyślne hasło jest takie samo, czyli brzmi rhqadmin.

RHQ Server - logowanie

RHQ Server - logowanie

Po zalogowaniu pojawi się ekran powitalny. Instalacja została zakończona. Należy zmienić domyślne hasło i można rozpocząć monitorowanie.

Instalacja wtyczek Jopr

W przypadku braku wtyczek Jopr, należy jeszcze je doinstalować. Czyli najpierw należy rozpakować plik z wtyczkami i skopiować ich zawartość do katalogu /opt/rhq-server:

# cp -a jbossas /opt/rhq-server/

Należy zwrócić uwagę na to, aby skopiować zawartość katalogu jbossas do katalogu takiego samego w instancji serwera RHQ. Dzięki temu odpowiednie pliki zostaną skopiowane we właściwe miejsce.

Operacja ta może być wykonana na działającym serwerze RHQ, po chwili powinien automatycznie wczytać wtyczki oraz zaktualizować agenty.

Jeżeli pliki zostały skopiowane w dobre miejsca, w logach powinny pojawić się takie komunikaty:

11:20:23,780 INFO  [ProductPluginDeployer] Discovered agent plugin [RHQServer]
11:20:23,859 INFO  [ProductPluginDeployer] Discovered agent plugin [Tomcat]
11:20:23,967 INFO  [ProductPluginDeployer] Discovered agent plugin [JBossCache]
11:20:24,070 INFO  [ProductPluginDeployer] Discovered agent plugin [JBossAS5]
11:20:24,160 INFO  [ProductPluginDeployer] Discovered agent plugin [JBossAS]
11:20:24,230 INFO  [ProductPluginDeployer] Discovered agent plugin [JBossCache3]
11:20:24,335 INFO  [ProductPluginDeployer] Discovered agent plugin [Hibernate]
11:20:24,353 INFO  [ProductPluginDeployer] Deploying [7] new or updated agent plugins: [RHQServer, JBossAS5, JBossAS, Hibernate, JBossCache3, Tomcat, JBossCache]
11:20:29,520 INFO  [ProductPluginDeployer] Plugin metadata updates are complete for [7] plugins: [RHQServer, JBossAS5, JBossAS, Hibernate, JBossCache3, Tomcat, JBossCache]

Utworzenie wirtualnego serwera Apacha

Ostatnim elementem będzie udostępnienie instancji serwera poprzez serwer WWW Apache. Tutaj będą chyba największe różnice między Debianem a Redhatem.

Konfigruracja Debiana

  1. Utworzyć plik o nazwie rhq w katalogu /etc/apache2/sites-available. Zdefiniujemy w ten sposób nowy serwer wirtualny, zawartość tego pliku prawdopodobnie będzie trzeba dostosować do własnej konfiguracji:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <VirtualHost *:80>
            ServerName rhq
            ServerAdmin administrator@example.com
            ProxyRequests On
            ProxyPreserveHost On
            <Proxy *>
                    Order deny,allow
                    Allow from all
            </Proxy>
            ProxyPass / http://localhost:7080/
            ProxyPassReverse / http://localhost:7080/
            <Location />
                    Order allow,deny
                    Allow from all
            </Location>

            ErrorLog /var/log/apache2/error.rhq.log
            LogLevel warn
            CustomLog /var/log/apache2/access.rhq.log combined
            ServerSignature Off
    </VirtualHost>
  2. Należy włączyć moduły odpowiedzialne za obsługę przesyłania połączeń:
    # a2enmod proxy_http
  3. Włączyć zdefiniowany serwer wirtualny:
    # a2ensite rhq
  4. Ponownie wymusić załadowanie konfiguracji przez serwer Apache
    # /etc/init.d/apache2 reload

Konfiguracja Red Hata

  1. Utworzyć plik o nazwie rhq.conf w katalogu /etc/httpd/conf.d:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <VirtualHost *:80>
            ServerName rhq
            ServerAdmin administrator@example.com
            ProxyRequests On
            ProxyPreserveHost On
            <Proxy *>
                    Order deny,allow
                    Allow from all
            </Proxy>
            ProxyPass / http://localhost:7080/
            ProxyPassReverse / http://localhost:7080/
            <Location />
                    Order allow,deny
                    Allow from all
            </Location>

            ErrorLog /var/log/httpd/error.rhq.log
            LogLevel warn
            CustomLog /var/log/httpd/access.rhq.log combined
            ServerSignature Off
    </VirtualHost>
  2. W przypadku RHEL 5.5 moduły mod_proxy oraz mod_proxy_http są włączone standardowo. W razie wątpliwości należy sprawdzić plik /etc/httpd/conf/httpd.conf:
    192
    LoadModule proxy_http_module modules/mod_proxy_http.so
  3. Ponowne wczytanie konfiguracji serwera Apache:
    # /etc/init.d/httpd reload

Po tych operacjach powinniśmy mieć możliwość otworzenia strony z poziomu Internetu.

Źródła

Tags: , , , , , , ,

Konfiguracja serwera aplikacji JBoss 5 do pracy z Jopr

Nowa wersja aplikacji Jopr (2.3.1) teoretycznie wspiera obsługę zarządzania serwerem aplikacji JBoss EAP 5. W praktyce niestety agent nie wyrywa w ogóle tego serwera aplikacji. Spowodowane jest to brakiem odpowiedniej wtyczki, która obsługiwałaby tę wersję JBoss (z wersją 4.x nie tutaj żadnych problemów, jest w pełni obsługiwana).

Okazuje się na szczęście, że odpowiedni plugin istnieje, i nawet działa, ale należy skompilować go samodzielnie. Odpowiednią procedurę przedstawiłem w tym wpisie: Jak skompilować ze źródeł aplikacje RHQ Server oraz Jopr. Po kompilacji kodu powinniśmy dysponować odpowiednią wersję wtyczki, która już powinna wykryć wersję 5 serwera JBoss.

Jednakże nie wystarczy tylko do włączenia zarządzania instancją serwera przy użyciu Jopra. Od wersji 5 wyłączono anonimowy dostęp do konsoli JMX (dzięki której można ta naprawdę zarządzać serwerem). W związku z tym, dopóki po stronie serwera aplikacji nie zdefiniujemy użytkownika mogącego się łączyć z konsolą, nie będziemy w stanie korzystać z konsoli JMX.

Przy domyślnej konfiguracji dane użytkowników są przechowywane w dwóch plikach, zapisanych w wybranej konfiguracji serwera:

  • conf/props/jmx-console-users.properties – informacje o loginach i hasłach użytkowników
  • conf/props/jmx-console-roles.properties – informacje o grupach użytkowników

W najprostszym przypadku wystarczy odkomentować jedną linię z pliku jmx-console-users.properties i już można cieszyć się kontem administracyjnym. Ze względu bezpieczeństwa jednak proponowałbym zmienić chociaż hasło dostępu dla tego użytkownika na jakieś mniej standardowe.

Drugim niezbędnym elementem jest odpowiednia konfiguracja Jopra. Robi się to poprzez:

  • import serwera JBoss do monitorowanych zasobów
  • konfigurację użytkownika i hasła pozwalającego na dostęp do konsoli JMX

Konfigurację loginu i hasła należy zrobić poprzez:

  • wybranie z listy serwerów interesujący nas serwer JBossa
  • wybranie zakładki Inventory
  • wybranie opcji Connection
  • edycję pozycji[cci] Principal/cci] i [cci]Credential/cci] (najpierw należy wybrać przycisk [cci]Edit/cci] znajdujący się na dole strony)
    Połączenie Jopr - JBoss 5

    Połączenie Jopr - JBoss 5

  • po zatwierdzeniu zmian powinniśmy już dysponować dostępem do serwera aplikacji JBoss i możliwością jego zarządzania

Źródła

Tags: , , , ,

Jak skompilować ze źródeł aplikacje RHQ Server oraz Jopr

Poniżej znajduje się krótki przewodnik w którym przestawię w jaki sposób skompilować oraz zainstalować ze źródeł zarówno serwer RHQ jak i pluginy dostarczane z aplikację JOPR. Kroki są te niezbędne, aby udało się uruchomić monitorowanie JBossa EAP 5 (lub też wersji społecznościowe 5.1) przy użyciu Jopra. Standardowa instalacja (w wersji 2.3.1) niestety nie zawiera odpowiedniego pluginu.

Krok 1: warunki wstępne

Przed rozpoczęciem kompilacji tych aplikacji, trzeba wcześniej zainstalować w systemie następujące aplikacje:

  • Java – zainstalować JDK 6, należy także poprawnie skonfigurować zmienną systemową $JAVA_HOME, która powinna wskazywać na katalog domowy z Javą
  • Maven – zainstalowany w wersji przynajmniej 2.1.x, można pobrać go ze strony http://maven.apache.org/download.html
  • Subversion – należy zainstalować klienta tego systemu wersji
  • PostgreSQL – zainstalować bazę danych, w wersji przynajmniej 8.3 (ja używałem wersji 8.4)

Krok 2: pobranie źródeł

Zanim przystąpimy do konfiguracji kolejnych aplikacji, można rozpocząć pobieranie źródeł aplikacji. Proces ten zajmuje trochę czasu, więc może się wykonywać w czasie gdy przystosujemy kolejne elementy instalacji.

Źródła należy pobrać z repozytorium SVN udostępnianego zarówno przez RHQ jak i Jopra. Najprościej to zrobić używając komendy svn, ale można też użyć innych aplikacji współpracujących z tym systemem kontroli wersji.

Pobranie kodu źródłowego RHQ Server:

svn co http://svn.rhq-project.org/repos/rhq/trunk/ rhq

Pobranie kodu źródłowego Jopr:

svn co https://anonsvn.jboss.org/repos/jopr/trunk/ jopr

W moim przypadku została dla RHQ Serwer została pobrana wersji repozytorium o numerze 5305 a dla Jopr o numerze 1360, także pozostałe informacje dotyczą tych wersji kodu. W nowszych niektóre rzeczy na pewno mogą się zmienić.

Krok 3: konfiguracja bazy danych

RHQ Server do swojego działania potrzebuje bazy danych. Może on działać produkcyjnie na bazie danych PostreSQL lub Oracle, testowo na HSQL (istnieje także eksperymentalne wsparcie dla MSSQL). Na potrzeby tej instalacji skonfigurujemy bazę danych PostgresSQL.

Konfiguracja bazy danych sprowadza się do następujących punktów:

  • konfiguracja pliku pg_hba.conf, w przypadku Ubunut plik ten znajduje się w tym katalogu: /etc/postgresql/8.4/main, należy włączyć logowanie zaufane dla użytkowników korzystających z lokalnego interfejsu sieciowego oraz z lokalnego komputera (uwaga, powoduje to, że nie będą oni pytani o hasło dostępu przy próbie łączenia się z bazą danych):
    82
    83
    84
    85
    86
    #local   all         all                               ident
    local   all         all                               trust
    # IPv4 local connections:
    #host    all         all         127.0.0.1/32          md5
    host    all         all         127.0.0.1/32          trust
  • utworzenie użytkownika w bazie danych o nazwie rhqadmin oraz z hasłem rhqadmin:
    createuser -U postgres -S -D -R -P rhqadmin
  • utworzyć bazę danych rhq, której właścicielem będzie użytkownik rhqadmin:
    createdb -U postgres -O rhqadmin rhq

Krok 4: kompilacja RHQ Server

Można teraz przystąpić do kompilacji oraz instalacji serwera RHQ. Robi się to przy użyciu aplikacji Maven, która powinna być dostępna na ścieżce. Pierwsze wykonanie kompilacji może zająć sporo czasu (w moim przypadku trwało to ponad godzinę), ponieważ muszą zostać pobrane odpowiednie biblioteki niezbędne do kompilacji.

Uruchomić kompilacje można wydając takie polecenie (należy jednocześnie znajdować się w katalogu z plikami źródłowymi RHQ Server):

mvn -Penterprise,dev -Dmaven.test.skip=true -Ddbsetup install

Parametr -Ddbsetup powoduje utworzenie schematu w bazie danych i jest wymagany podczas pierwszej kompilacji i za każdym razem gdy jej schemat zostanie zmieniony.

W trakcie procesu kompilacji zostanie utworzony schemat bazy danych. Zostanie także utworzony katalogu dev-container, w którym będzie znajdowała się aplikacji. Aby uruchomić RHQ Server, należy wejść do katalogu dev-container/bin i wykonać polecenie:

cd dev-container/bin
./rhq-server.sh start

Spowoduje to uruchomienie serwera RHQ. Po uruchomieniu powinien o być dostępny pod adresem: http://localhost:7080. Aby się do niego zalogować, należy użyć loginu rhqadmin oraz hasła rhqadmin.

About RHQ

Informacje o wersji RHQ Server

Istnieje także możliwość utworzenia archiwum z serwerem RHQ, które będzie można następnie użyć do instalacji nowej jego instancji. Należy w takim przypadku wydać następujące polecenie (będąc w katalog głównym ze źródłami RHQ):

mvn -Penterprise,dist -Dmaven.test.skip=true -Ddbsetup install

Spowoduje to kompilację projektu i utworzenie w katalogu modules/enterprise/server/container/target zarówno katalogu z serwerem (rhq-server-1.4.0-SNAPSHOT), jak i odpowiedniego archiwum zip (rhq-server-1.4.0-SNAPSHOT.zip). Uruchomienie tak przygotowanego serwera spowoduje konieczność przejścia przez kolejne kroki związane z jego konfiguracją.

Krok 5: kompilacja Jopr

Ostatnim elementem jest kompilacja pluginów wchodzących w skład Jopr oraz ich instalacja w ramach serwera RHQ.

Zanim jednak uda się zbudować Jopr, trzeba zmodyfikować pliki konfiguracyjne pom.xml w kilku miejscach. Jest to spowodowane tym, że znajdują się w nich odwołania do repozytorium Mavena, które nie istnieją, więc nie daje się przeprowadzić pomyślnie kompilacji projektu. Mam nadzieję, że zostanie to zmienione w repozytorium i nie będzie potrzeby wprowadzania tych zmian, ale dla wersji której ja używałem niestety było to potrzebne.

Przygotowałem plik o nazwie jopr-1360.patch, który zawiera różnice pomiędzy modyfikacjami które wprowadziłem oraz wersją źródeł które używałem. Należy pobrać ten plik i użyć aplikacji patch, która zastosuje go do źródeł. Aplikację te należy wywołać w katalogu w którym znajdują się źródła jopr:

$ patch -p0 < ../jopr-1360.patch.txt
patching file modules/tools/jbas5-plugin-descriptor-gen/pom.xml
patching file modules/plugins/jboss-as-5/testsuite/pom.xml
patching file modules/plugins/jboss-as-5/pom.xml
patching file modules/plugins/jboss-cache-v3/pom.xml
patching file pom.xml
patching file etc/jbas5-ejb2-mdb-test/pom.xml
patching file etc/jbas5-jnp-client/pom.xml
patching file etc/jbas5-ejb-client/pom.xml

Należy zwrócić uwagę na to, że niekoniecznie ten plik będzie działał, jeżeli coś się zmieniło w źródłach aplikacji. Dlatego też w przypadku gdy kompilacja nie będzie działać, proponują zobaczyć co ten plik modyfikuje i ręcznie te modyfikacje nanieść do odpowiednich plików.

Sama kompilacja Jopr polega na wywołaniu aplikacji Maven (w katalogu ze źródłami aplikacji):

mvn -Pdev -Drhq.containerDir=rhq/dev-container/ install

Za pomocą parametru -Drhq.containerDir wskazujemy miejsce, gdzie znajduje się skompilowana wersja RHQ Server. Należy zwrócić uwagę, aby podać pełną ścieżkę do tego katalogu, w innym przypadku pluginy mogą zostać skopiowane do innego katalogu.

Zamiast katalogu z wersją deweloperską serwera RHQ można także podać katalog modules/enterprise/server/container/target/rhq-server-1.4.0-SNAPSHOT. Wtedy wtyczki zostaną skopiowane do tej instancji serwera, wystarczą ją teraz skompresować i już można spróbować zainstalować na innym serwerze.

Tyle przynajmniej w teorii :(. Z jakiś magicznych powodów podczas instalacji serwera RHQ łącznie z wtyczkami z Jopra pojawiał się błąd o niemożliwości instalacji jednej z aplikacji (rhq.ear).W moim przypadku nie chciało to do końca działać. Rozwiązaniem okazało się utworzenie dwóch oddzielnych archiwów: w jednym był serwer RHQ, w drugim wtyczki Jopr. Czy w przypadku kompilacji wtyczek Jopr nie podajemy katalogu do samego serwera, ale jakiś katalog tymczasowy. Zostanie w nim odzwierciedlona odpowiednia struktura serwera, i wtyczki zostaną zapisane w odpowiednie miejsca. Wystarczy po instalacji serwera RHQ po prostu skopiować te pliki i już powinno działać.

Oto serwer RHQ Server oraz wtyczki Jopr, skompilowane: