Serwer RHQ może monitorować Apache, ale do uzyskania informacji o wirtualnych serwerach wy,aga instalacji modułu SNMP. Umożliwi to agentowi monitorującemu pobieranie tych informacji bezpośrednio z serwera Apache, bez potrzeby analizy plików konfiguracyjnych.
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ł lub użyć plików binarnych oraz zainstalować w ramach serwera Apache
- należy odpowiednio skonfigurować serwer tak, aby z niego korzystał
Informacje skąd można pobrać pliki źródłowe można znaleźć we wpisie: Monitorowanie serwera Apache przy użyciu RHQ Server – instalacja modułu Response Time.
Po dekompresji pliku connector-apache.zip
pliki modułu można znaleźć w katalogu apache-snmp
. Tutaj również można naleźć dwa katalogi: ze wersjami binarnymi pakietów oraz ze źródłami. Tym razem jednak mamy w źródłach skompilowane moduły dla różnych wersji serwera Apache oraz dla architektur intelowskich 32 i 64 bitowych.
Kompilacje ze źródeł jest opisana w pliku apache-snmp/sources/README.txt
, w praktyce powinno wystarczyć wywołanie polecenia build_apache_snmp.sh
.
$ ./build_apache_snmp.sh 2.0 /usr/bin/apxs2
Jednak z moim przypadku kompilacja się nie powiadała. Na szczęście w tym przypadku są dostępne już skompilowane wersje modułów z których można skorzystać.
Czyli trzeba moduły rozkompresować:
$ unzip snmp_module-x64-linux-apache2.2.zip
Zostanie utworzony katalogu snmp_module_2.2
a w nim niezbędne pliki konfiguracyjne oraz z modułami. Moduły dla serwera Apache znajdują się w katalogu module
, czyli kopiujemy je teraz do odpowiedniej lokalizacji:
# mkdir -p /usr/local/lib/apache2/modules
# cp module/*.so /usr/local/lib/apache2/modules/
Kopiujemy plik konfiguracyjny modułu:
# cp conf/snmpd.conf /etc/apache2/snmpd/conf
W domyślnej konfiguracji moduł SNMP nasłuchuje na przychodzące połączenia od klientów na porcie 1610 na wszystkich interfejsach sieciowych. Ponieważ w naszym przypadku klientem będzie agent monitorujący działający na maszynie lokalnej, można otworzyć jedynie ten port na interfejsie localhost
. Czyli należy w pliku /etc/apache2/snmpd/conf/snmpd.conf
zmienić wpis agentaddress
na taki:
34 | agentaddress 1610@127.0.0.1 |
Należy jeszcze utworzyć specjalny katalog na pliki tworzone przez moduł:
Tworzymy plik /etc/apache2/mods-available/snmpd.load
ładujący moduł SNMP do serwera Apache:
1 2 | LoadModule snmpcommon_module /usr/local/lib/apache2/modules/libsnmpcommon.so LoadModule snmpagt_module /usr/local/lib/apache2/modules/libsnmpmonagt.so |
Teraz tworzymy plik konfigurujący moduł /etc/apache2/mods-available/snmpd.conf
:
1 2 | SNMPConf /etc/apache2/snmpd/conf SNMPVar /var/lib/apache2/snmpd/var |
Ostatnim krokiem będzie włączenie modułu:
Aby moduł SNMP działał poprawnie, muszą zostać precypitynie zdefiniowane nazwy serwerów wirtualnych. W nazwie musi znaleźć się nie tylko nazwa tego serwera, ale także port na którym serwer Apache będzie nasłuchiwał. Czyli odpowiedni wpis w definicji serwera wirtualnego musi mieć następującą postać:
1 2 3 4 | <VirtualHost *:80> ServerName blog.stelmisoft.pl:80 .... </VirtualHost> |
Teraz pozostaje restart serwera Apache i sprawdzenie czy wszystko zadziała: