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:

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:

aptitude install apache2-dev gcc autoconf automake

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.

$ cd apache-rt/sources
$ ./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.

# mkdir -p /usr/local/lib/apache2/modules
# 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:

# a2enmod rt

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.

Źródła