Serwer RHQ może monitorować Apache, ale uzyskał maksymalną ilość informacji o czasach jego odpowiedzi konieczna jest instalacja dodatkowego modułu Apache Response Time. Moduł ten będzie zapisywał w specjalnym pliku logu dodatkowe informacje pomocne w monitorowaniu.
Pozostałe wpisy z tej serii to:
- Monitorowanie serwera Apache przy użyciu RHQ Server – instalacja modułu Response Time
- Monitorowanie serwera Apache przy użyciu RHQ Server – instalacja modułu SNMP
- Monitorowanie serwera Apache przy użyciu RHQ Server – konfiguracja RHQ
Aby mieć możliwość instalacji tego modułu trzeba spełnić kilka warunków:
- Apache musi być skompilowany z obsługą modułów
- należy skompilować moduł oraz zainstalować w ramach serwera Apache
- należy odpowiednio skonfigurować serwer tak, aby z niego korzystał
Pozostaje jeszcze jedna kwestia, skąd można pobrać te moduły Znam następujące miejsca:
- Nie udało mi się znaleźć odpowiedniego poliku w wersjach społecznościowych serwera RHQ czy też Jopr.
- Są one dostarczane przez Red Hata razem z dystrybucją serwera JON 2.3.1, ale żeby je uzyskać trzeba mieć zawartą odpowiednią umową z Red Hatem. Będą one wtedy znajdować się w pliku
connector-apache.zip
razem z zainstalowanym agentem. Można także je znaleźć w w tym miejscu:jon-server-2.3.1.GA/jbossas/server/default/deploy/rhq.ear.rej/rhq-downloads/connectors/connector-apache.zip
. - Bardzo możliwe, ze moduły te są zawarte w produkcie SpringSource ERS, ale nie sprawdzałem tego
Ja pobrałem wersje dystrybuowaną wraz z serwerem JON 2.3.1. W dostarczanych źródłach nie ma niestety informacji na jakiej licencji są one rozprowadzane.
Kompilacja modułu mod_rt.so
Po rozpakowaniu pliku connector-apache.zip
pliki tego modułu będą się znajdowały się w katalogu apache-rt
. Wewnątrz tego katalogu możemy znaleźć katalog z plikami binarnymi modułu przeznaczonymi dla Apache 2 i chyba dla w wersji dla Windowsa (chyba to dlatego, że sam moduł ma rozszerzeniowy so
). W związku z tym, trzeba będzie skompilować ten moduł i ręcznie go zainstalować w ramach serwera Apache.
Pierwszym krokiem będzie instalacja odpowiednich dodatkowych pakietów, niezbędnych do przeprowadzenia kompilacji:
Teraz nie pozostaje nic innego jak skompilować moduł poprzez wywołanie skryptu build_apache_module.sh
. Jako ego parametry podajemy wersję serwera Apache dla którego tworzymy moduły oraz ścieżkę dostępu do polecenia apxs
.
$ ./build_apache_module.sh 2.x /usr/bin/apxs2
Po kompilacji moduł można znaleźć w tym miejscu: apache2.x/.libs/mod_rt.so
.
Instalacja modułu mod_rt.so
w serwerze Apache
Moduły Apache, które są instalowane z pakietów znajdują się w katalogu /usr/lib/apache2/modules
. Można również tam umieścić skompilowany moduł i korzystać z niego tak i z innych modułów serwera. Ja proponuję jednak umieść ten moduł w wydzielonym katalogu /usr/local/lib/apache2/modules
. Myślę, że lepiej nie mieszać ze sobą plików pochodzących z pakietów i kompilowanych ze źródeł samodzielnie.
# cp apache2.x/.libs/mod_rt.so /usr/local/lib/apache2/modules
Teraz plik ładujący moduł /etc/apache2/mods-available/rt.load
:
1 | LoadModule rt_module /usr/local/lib/apache2/modules/mod_rt.so |
Plik z konfiguracją modułu /etc/apache2/mods-available/rt.conf
:
1 | LogFormat "%S" rt_log |
I włączenie modułu w serwerze Apache:
Pozostaje teraz jeszcze skonfigurowanie wszystkich serwerów wirtualnych tak, aby logowały dodatkowe informacje przy użyciu tego modułu. Należy w tym celu dodać w w definicji każdego serwera następujący wpis:
1 2 3 4 5 6 | <VirtualHost *:80> ....... CustomLog /var/log/apache2/access.NAZWA_SERWERA_rt.log rt_log </VirtualHost> |
W podanym pliku będą zapisywane informacje o czasach odpowiedzi, które potem zostaną odpowiednio zinterpretowane przez serwer RHQ. Należy dla każdego serwera zdefiniować oddzielny plik. Będzie on nam potrzeby podczas konfiguracji serwera RHQ pod koniec wpisu.
Teraz nie pozostaje nic innego jak zrestartować serwer i sprawdzić powiedzie się jego uruchomienie i czy informacje są odkładane we wskazanych przez nas plikach.