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:
- 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.
- 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.
- 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:
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ę:
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:
Enter password for new role:
Enter it again:
Tworzymy bazę danych rhq
, która będzie używana przez system monitorujący:
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:
# 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 demonaconsole
– uruchamia serwer w ramach konsoli, logi z serwera są wypisywane na ekraniestop
– pozwala na wyłączenie serwerakill
– 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.
# ./rhq-server.sh console
Komenda ta powinna uruchomić serwer i w ciągu kilkunastu sekund powinniśmy otrzymać komunikat o jego pomyślnym starcie:
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:
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:
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.
Database Type
– typ bazy danych, w naszym przypadku PostgreSQLDatabase Connection URL
– definicja połączenia z bazą danych, czyli serwer oraz jej nazwaDatabase JDBC Driver Class
– klasa sterownika odpowiadająca za obsługę bazy danychDatabase XA DataSource Class
– klasa źródła danychDatabase User Name
– nazwa użytkownika, który będzie używany do łączenia się z bazą danychDatabase 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:
Server Name
– nazwa maszyny na której instalujemy RHQServer Public Address
– publiczna nazwa maszynyHTTP 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:
Server Bind Address
– adres interfejsu sieciowego z którego ma korzystać serwer RHQEmbedded 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 agentaEmail 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ę.
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
.
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
:
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,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
- 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> - Należy włączyć moduły odpowiedzialne za obsługę przesyłania połączeń:
# a2enmod proxy_http
- Włączyć zdefiniowany serwer wirtualny:
# a2ensite rhq
- Ponownie wymusić załadowanie konfiguracji przez serwer Apache
# /etc/init.d/apache2 reload
Konfiguracja Red Hata
- 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> - W przypadku RHEL 5.5 moduły
mod_proxy
orazmod_proxy_http
są włączone standardowo. W razie wątpliwości należy sprawdzić plik/etc/httpd/conf/httpd.conf
:192LoadModule proxy_http_module modules/mod_proxy_http.so - Ponowne wczytanie konfiguracji serwera Apache:
# /etc/init.d/httpd reload
Po tych operacjach powinniśmy mieć możliwość otworzenia strony z poziomu Internetu.