Posts Tagged jon

Definiowanie grupy usług w serwerze RHQ

Serwer RHQ pozwala nie tylko na zarządzanie poszczególnymi usługami, ale także na tworzenie ich grup i kompleksowe zarządzanie nimi. Pozwalają one także na zarządzanie uprawnieniami do poszczególnych część systemu.

Koncepcja grup w RHQ:

  • definicja członkostwa w grupie:
    • do grupy można ręcznie dodać poszczególne zasoby
    • możliwość tworzenia reguł, na podstawie których będą definiowane poszczególne zasoby
    • w jednej grupie mogą znajdować się różne klasy zasobów
  • uwierzytelnianie
    Na poziomach grup można definiować odpowiednie uprawnienia dla różnych ról, używając grup dynamicznych można definiować dynamiczne ACL (czyli dana rola będzie miała odpowiedni dostęp do wszystkich zasobów spełniających podane warunki).
  • właściwości grupy
    Grupy składające się z takich samych zasobów mogą mają szereg dodatkowych możliwości, które ułatwiają zarządzanie tymi zasobami:

    • grupa jest traktowana tak jak pojedynczy zasób danego typu, co pozwala na masowe wykonywanie określonych akcji, oczywiście w pewnym zakresie)
    • mierzenie parametrów maksymalnych, minimalnych oraz średnich w ramach grupy
    • połączone przeglądanie zdarzeń mających miejsca w ramach członków grupy
    • możliwość modyfikowania pewnych parametrów konfiguracyjnych jednocześnie w ramach wszystkich członków grupy

Tworzenie nowej grupy statycznej

Utworzenie nowej statycznej grupy wymaga wykonania kilku kroków. W przykładzie utworzymy grupę, w skład której będą wchodziły dwa serwery JBoss 5 pracujące w ramach klastra.

Definiowanie nowej grupy rozpoczynamy poprzez wybranie odpowiedniej pozycji z menu: Groups->New Group.

RHQ Server - dodaj nową grupę

RHQ Server - dodaj nową grupę

Będziemy teraz mogli zdefiniować podstawowe parametry związane z grupą:

  • Name – nazwa grupy
  • Contains – wskaznie, jakie zasoby mają zanelźć się w ramach grupy, do wyboru mamy:
    • Compatible Resources – wybranie tej opcji będzie wskazywało, że w ramach grupy mają znajdować się zasoby tego samego typu (pojawi się także pole w którym będziemy mogli zdefiniować rodzaj zasobów). Użycie tej opcji umożliwi zbiorowe zarządzanie wybranymi usługami.
    • Mixed Resources – w ramach grupy będę wchodziły zasobu różnych typów. Przydatne rozwiązanie w momencie użycia grup do konfiguracji uprawnień dla ról.
  • Recursive – włączenie tej opcji spowoduje, że w ramach wybranych usług będziemy mieli także dostęp do usług zawartych w nich, czyli np. jeżeli do grupy dodamy serwer JBoss, to zaznaczenie tej opcji spowoduje że będziemy mieli dostęp do jego wszystkich usług, aplikacji. W przeciwnym wypadku będzie możliwy dostęp tylko zdefiniowanych zasobów (i odpowiednio tylko na nich będzie istniała możliwość dokonywania określonych operacji)
RHQ Server - definiowanie grupy

RHQ Server - definiowanie grupy

Po zatwierdzeni definicji grupy należy dodać odpowiednich jej członków. Można to zrobić wybierając przycisk ADD TO GROUP. Będzie można wtedy wybrać odpowiednie usługi, które mają należeć do grupy.

RHQ Server - dodanie nowych członków do grupy

RHQ Server - dodanie nowych członków do grupy

Po dodaniu wszystkich potrzebnych zasobów, można ich listę zobaczyć w informacji o grupie:

RHQ Server - lista członków grupy

RHQ Server - lista członków grupy

Tworzenie nowej grupy dynamicznej

Grupy dynamiczne pozwalają na zdefiniowanie reguł, jakie mają spełnić zasoby aby do niej należeć. Pozwala to na utworzeniu ogólnych reguł, które pozwolą zarówno na zarządzanie jak i dynamiczne definiowanie reguł dostępu do poszczególnych zasobów.

Dzięki takim regułom możemy zdefiniować grupę, w której skład będą wchodziły wszystkie agenty monitorujące. Będzie można dzięki temu na przykład je wszystkie na raz zrestartować, czy też kazać pobrać nową listę wtyczek (agenci monitorujący odświeżają listę wtyczek w momencie startu lub na żądanie).

Definicję grupy dynamicznej rozpoczynamy poprzez wybranie z menu pozycji Groups->New Group Definition.

RHQ Server - tworzenie grupy dynamicznej

RHQ Server - tworzenie grupy dynamicznej

Kolejnym krokiem będzie zdefiniowanie grupy, czyli podanie:

  • Name – nazwy grupy
  • Description – opis grupy
  • Recursive – oznaczenie, czy mają być także dostępne zasoby potomne
RHQ Server - definiowanie grupy dynamicznej

RHQ Server - definiowanie grupy dynamicznej

Po zatwierdzeniu podstawowych informacji o grupie czas zdefiniować, jakie zasoby powinny się w niej znaleźć. W przeciwieństwie do grupy statycznej nie wybieramy tutaj zasobów, ale definiujemy reguły, jakie mają one spełniać.

Reguła wybierająca skrypty agenta monitorującego wygląda następująco:

1
2
resource.type.plugin = RHQAgent
resource.type.name = Launcher Script

Warto zapoznać się z wyglądem dostępnych szablonów, pozwoli to na zorientowanie się w jaki sposób takie reguły się tworzy.

Drugą opcję która należy ustawić jest Recalculation interval. Jest to po prostu określenie interwału czasowego, z jakim będą wyszukiwane zasoby, które spełniają zdefiniowaną regułę.

RHQ Server - tworzenie reguł grupy dynamicznej

RHQ Server - tworzenie reguł grupy dynamicznej

Ostatnim elementem, będzie wywołanie akcji Calculate Groups. Pozwoli ona na natychmiastowe wykonanie reguły i odszukanie zasobów które powinny należeć do danej grupy.

RHQ Server - szukanie zasobów dla grupy dynamicznej

RHQ Server - szukanie zasobów dla grupy dynamicznej

Po wybraniu z listy zdefiniowanej reguły, otrzymamy stronę na której będzie można zarządzać zdefiniowanymi systemami.

RHQ Server - lista zasobów grupy dynamicznej

RHQ Server - lista zasobów grupy dynamicznej

Teraz wystarczy wybrać zakładkę OPERATIONS a następnie akcję Restart. Spowoduje to wykonane restartu wszystkich agentów monitorujących.

Tags: , , , ,

Monitorowanie logów sysloga przy użyciu RHQ Server

Kolejną możliwością serwera RHQ jest zbieranie logów systemowych tworzonych przez aplikację Syslog. Agent monitorujący może pobierać informację z dowolnego pliku, należy tylko go odpowiednio zdefiniować.

Dodanie pliku do monitorowania można zrobić w następujący sposób:

  1. Wybrać maszynę (platformę), na której chcemy monitorować plik z logami.
  2. Wybrać zakładkę INVENTORY->CONNECTION
  3. Na dole strony będzie znajdowała się lista monitorowanych plików oraz przycisk EDIT, który należy wybrać.
    RHQ Server - lista monitorowanych plików z logami

    RHQ Server - lista monitorowanych plików z logami

  4. Wybrać przycisk Add New
  5. Zdefiniować monitorowany plik:
    RHQ Server - dodanie pliku loga do monitorowania

    RHQ Server - dodanie pliku loga do monitorowania

    Najważniejsze są następujące parametry:

    • Log Tracking Enabled = Yes – włączenie monitorowania informacji z sysloga
    • Log Tracking Type = file – wybranie monitorowania pliku
    • Syslog File Path = /var/log/syslog – ścieżka dostępu do monitorowanego pliku, w przypadku Debiana może to być /var/log/syslog, w przypadku Red Hata /var/log/messages
  6. Zatwierdzamy zmiany dotyczące pliku wybierając Ok i następnie zatwierdzamy wszystkie wprowadzone zmiany.

Informacje pobierane z logów będą dostępne w zakładce EVENTS. Można w niej przeglądać wpisy, sortować je, wyszukiwać.

RHQ Server - przeglądanie logów

RHQ Server - przeglądanie logów

Tags: , , , , , ,

RHQ Server – dodanie monitorowania zainstalowanych pakietów RPM

W serwerze RHQ istnieje możliwość monitorowania listy zainstalowanych pakietów RPM. Włączyć tę funkcję można w następujący sposób:

  1. Wybierz serwer (platformę) w której chcesz włączyć monitorowanie RPM (w moi przypadku był to system oparty o RHEL 5.5).
  2. Wybierz opcję INVENTORY->CONNECTION
  3. Wybierz przycisk EDIT, aby móc modyfikować parametry.
  4. Włącz opcję Enable Content Discovery.

    RHQ Server: monitorowanie pakietów RPM

    RHQ Server: monitorowanie pakietów RPM

  5. Zatwierdź przyciskiem OK.

Powyższe kroki pozwolą na włączenie monitorowania zainstalowanych pakietów. Aby je przeglądać, należy wybrać teraz zakładkę CONTENT. Znajdzie się tam lista wszystkich pakietów, z możliwością ich filtrowania oraz sortowania.

RHQ Server: lista zainstalowanych pakietów RPM

RHQ Server: lista zainstalowanych pakietów RPM

Tags: , , , , , ,

Monitorowanie serwera Apache przy użyciu RHQ Server – konfiguracja RHQ

Serwer RHQ umożliwia monitorowania funkcjonowania serwera WWW Apache. Konfiguracja połączenia między agentem monitorującym a Apachem nie jest jednak zbyt prosta. Trzeba nie tylko odpowiednie informacje podać w RHQ, ale również dodać dodatkowe moduły do Apache oraz je skonfigurować.

Jeżeli chcesz, aby poprawnie zadziałało Ci monitorowanie, oraz udało się wszystko skonfigurować tak jak jest to podane poniżej, napierw zapoznaj się z artykułami, w których znajdują się informacje w jaki sposób należy skonfigurować Apacha:

Konfigurację można podzielić na dwa kroki: najpierw należy dodać serwer do zasobów Apache a następnie zdefiniować (poprawić) wpisy do poszczególnych serwerów wirtualnych.

Dodanie serwera Apache do zasobów RHQ

Pierwszym krokiem będzie dodanie serwera Apache do zasobów monitorowanych. Jeżeli serwer jest już widoczny na liście, można ten punkt opuścić i od razu przejść do konfiguracji połączenia w ustawieniach serwera.

Pierwszym krokiem będzie wybór serwera (platformy) na której jest zainstalowany serwer, a następnie wybranie zakładki INVENTORY->OVERVIEW. Na dole strony znajdziemy przycisk pozwalający na dodanie nowego zasobu:

RHQ: dodanie serwera Apache

RHQ: dodanie serwera Apache

Teraz należy zdefiniować potrzebne ścieżki dostępu do poszczególnych elementów serwera (poniższe ścieżki są podane na przykładzie Debiana):

  • Server Root = /etc/apache2
    absolutna ścieżka dostępu do katalogu głównego Apacha
  • Executable Path = /usr/sbin/apache2
    ścieżka dostępu do pliku wykonywalnego serwera Apache
  • Control Script Path = /etc/init.d/apache2
    ścieżka dostępu do skryptu kontrolującego Apacha
  • Config File = /etc/apache2/apache2.conf
    ścieżka dostępu do pliku konfiguracyjnego
  • URL = http://blog.stelmisoft.pl:80/
    adres URL do jakiegoś zasobu udostępnianego przez serwer, będzie on badany w celu sprawdzenia czy serwer działa
  • SNMP Agent Host = 127.0.0.1
    konfiguracja agenta SNMP, który będzie monitorował serwer Apache (będziemy go konfigurować w dalszej części wpisu)
  • SNMP Agent Port = 1610
    port, na którym nasłuchuje agent
  • SNMP Agent Community = public
  • Error Log File Path = /var/log/apache2/error.log
    Lokalizacja pliku w którym będą znajdowały się komunikaty o błędach
  • Error Log Events Enabled = Yes
    Tworzenie nowych zdarzeń w momencie wystąpienia błędów w logu.
  • Error Log Minimum Severity = error
    Minimalny poziom ważności informacji w logu, który będzie użyty
  • Error Log Includes Pattern =  
  • Zatwierdzenie powyższych informacji umożliwi serwerowi RHQ podstawowe monitorowanie dostępności serwera Apache. Będziemy także mieli możliwość zarządzania nim (start, restart, zatrzymanie).

    Konfiguracja serwerów wirtualnych

    Jeżeli serwer Apache został wykryty popranie, to w jego zakładce INVENTORY->OVERVIEW powinny się pokazać wszystkie wykryte serwery wirtualne. Informacje te są pobrane z SNMP.

    Należy teraz zdefiniować dla każdego z tych serwerów odpowiednie pliki, w których będą się znajdowały czasy odpowiedzi serwera (tworzone przez moduł Response Time). Kolejne kroki, które trzeba wykonać:

    1. Wybieramy serwer wirtualny, w moim przypadku to będzie blog.stelmisoft.pl
    2. Otworzyć zakładkę INVENTORY->CONNECTION
    3. Nacisnąć przycisk EDIT
    4. Zmodyfikować linię Response Time Log File. Powinna ona wskazywać na miejsce przechowywania zapisów przez moduł Response Time.

    I to wszystko, po powtórzeniu tych kroków dla wszystkich serwerów powinno działać monitorowanie serwera Apache.

    Źródła

Tags: , , , , ,

Monitorowanie serwera Apache przy użyciu RHQ Server – instalacja modułu SNMP

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:

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.

$ cd apache-snmp/sources
$ ./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ć:

$ cd apache-snmp/binaries
$ 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:

# cd snmp_module_2.2
# mkdir -p /usr/local/lib/apache2/modules
# cp module/*.so /usr/local/lib/apache2/modules/

Kopiujemy plik konfiguracyjny modułu:

# mkdir -p /etc/apache2/snmpd/conf
# 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ł:

# mkdir -p /var/lib/apache2/snmpd/var

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:

# a2enmod snmpd

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:

# /etc/init.d/apache2 restart

Źródła

Tags: , , , , , ,