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