Definiowanie uprawnień dostępu w serwerze RHQ

Serwer RHQ umożliwia definiowanie uprawnień dostępu do poszczególnych zasobów, które są monitorowane. Możliwa jest także odpowiednia granulacja tych uprawnień, zarówno ze względu na dostępu do poszczególnych usług jak i operacji jakie można na nich wykonywać.

Model uwierzytelniania w RHQ opiera się o role, które są miejscem łączącym operacje jakie można wykonać wraz z odpowiednimi użytkownikami oraz grupami.

Celem będzie uzyskanie następującej sytuacji: utworzenie nowego użytkownika, który będzie miał możliwość monitorowania wszystkich zasobów oraz możliwość pełnej kontroli nad skryptami startowymi agentów monitorujących.

Rodzaje uprawnień w RHQ

Poszczególne uprawnienia dzielą sią na dwie grupy: globalne i dotyczące zasobów.

W przypadku uprawnień globalnych, są dostępne następujące zezwolenia:

  • Manage security (users/roles) – pozwala na modyfikowanie ustawień związanych z zarządzaniem rolami oraz użytkownikami. W praktyce użytkownik z tą rolą ma kontrolę nad całym systemem (zawsze może sobie odpowiednią rolę samodzielnie).
  • Manage inventory (resources/groups) – pozwala na wykonywania dowolnych akcji na każdym zasobie, niezależnie od innych uprawnień jakie mogą być skonfigurowane.
  • Administer RHQ Server settings – pozwala na modyfikowanie konfiguracji serwera RHQ

Uprawnienia do zasobów odnoszą się tylko do zasobów, które są dodanie do danej roli. Są dostępne następujące zezwolenia:

  • Modify – pozwala na modyfikacje opis zasobów w serwerze RHQ (czyli np. jego nazwy), nie umożliwia konfiguracji zasobu;
  • Delete – pozwala na usunięcie danego zasobu z serwera;
  • Create Child – pozwala na dodanie nowego zasobu potomnego;
  • Alerts – pozwala na zarządzanie alarmami;
  • Measurements – pozwala na niemodyfikowanie sposobów w jakie zbierane są informacje z monitoringu;
  • Content
  • Control – pozwala na wykonywanie akcji w ramach zasobów
  • Configure – pozwala na modyfikację konfiguracji danego zasobu

Tak się prezentuje rola super użytkownika:

RHQ Server - Super User Role

RHQ Server - Super User Role

Utworzenie grup zasobów

Ponieważ konkretne uprawnienia są przydzielane do grup, to najpierw należy zdefiniować dwie grupy, obie dynamiczne:

  • Agent Laucher Script – lista agentów działających w ramach systemu monitorującego
  • Wszystkie platformy – wszystkie platformy jakie są podłączone do serwera monitorującego

O sposobie definicji grupy dynamicznej oraz jak zdefiniować pierwszą grupę można przeczytać w tym wpisie: Definiowanie grupy usług w serwerze RHQ.

Definicja grupy obejmującej wszystkie zasoby powinna wyglądać następująco:

RHQ Server - definicja grupy "Wszystkie platformy"

Utworzenie ról dla grup

Po zdefiniowaniu odpowiednich grup zasobów przychodzi czas na zdefiniowanie odpowiednich uprawnień do nich. Robi się to poprzez utworzenie ról, w których będzie można powiązać zasoby i uprawnienia do nich przypisane.

Wyświetlenie listy dostępnych ról i ekranu pozwalającego na zarządzanie nimi jest możliwe po wybranie z menu pozycji Administration->Security->Roles:

RHQ Server - role

RHQ Server - role

Po wybranie tej pozycji z menu zostanie wyświetlona lista wszystkich dostępnych ról w systemie:

RHQ Server - lista dostępnych ról

RHQ Server - lista dostępnych ról

Domyślnie w RHQ są dostępne dwie specjalne role:

  • Super User Role – rola super użytkownika, osoba przypisana do tej roli ma dostęp do wszystkich elementów serwera monitorującego RHQ, roli tej nie można modyfikować
  • All Resources Role – rola ta daje dostęp do wszystkich zasobów serwera, ale nie umożliwia modyfikowania uprawnień użytkowników, ról czy też konfiguracji serwera

Definicja nowej roli jest możliwa po wybraniu przycisku NEW.

RHQ Server - definicja nowej roli

RHQ Server - definicja nowej roli

Podczas definiowania nowej roli należy przede wszystkim zdefiniować jej nazwę (unikalną w ramach serwera RHQ) oraz odpowiednie uprawnienia. Dostępne uprawnienia zostały już powyżej opisane.

W naszym przypadku definiujemy nazwę roli jako RHQ Agent i przypisujemy tej roli wszystkie uprawnienia z grupy Resource Permissions a następnie zatwierdzamy nową rolę.

W tym momencie dysponujemy już zdefiniowaną rolę, ale jeszcze nie wskazaliśmy jakich zasobów ma ona dotyczyć. W związku z tym czas teraz na wybór w grupie Assigned Groups przycisku ADD TO LIST. Zostanie wyświetlona strona, która pozwoli na przypisanie grup zasobów do danej roli.

Należy wybrać z listy rolę DynaGroup - Agent Laucher Script i zatwierdzić wybór. Po zatwierdzeniu, grupa ta powinna wyglądać następująco:

RHQ Server - dodanie grup zasobów do roli

RHQ Server - dodanie grup zasobów do roli

Analogicznie należy utworzyć drugą rolę, o nazwie Monitorowanie serwerów. Jej definicja powinna wyglądać następująco:

RHQ Server - definicja roli Monitorowanie serwerów

RHQ Server - definicja roli Monitorowanie serwerów

Tym sposobem dysponujemy dwoma rolami, które definiują dostęp do agentów monitorujących oraz wszystkich innych zasobów. Teraz pozostaje utworzyć odpowiedniego użytkownika, który będzie z nich korzystał.

Utworzenie nowego użytkownika

Ostatnim elementem będzie utworzenie nowego użytkownika, który będzie należał do dwóch zdefiniowanych grup.

Wyświetlenie strony pozwalającej na zarządzanie użytkownikami jest możliwe poprzez wybranie następującej pozycji z menu: Administration->Security->Users:

RHQ Server - zarządzanie użytkownikami

RHQ Server - zarządzanie użytkownikami

Zostanie wyświetlona strona z listą zdefiniowanych użytkowników. Dodanie nowego użytkownika jest możliwe po wybraniu przycisku NEW. Pozwoli to na zdefiniowanie podstawowych informacji o nowym użytkowniku systemu:

  • Name – imię i nazwisko użytkownika
  • Email – mail
  • Password – hasło dostępu użytkownika
  • Username – login użytkownika
  • Phone – nr telefony
  • Department – dział
  • Enable Login – wyłącznie konta (wyłączenie uniemożliwi logowanie na to konto)

Przykładowa definicja użytkownika:

RHQ Server - definiowanie nowego użytkownika

RHQ Server - definiowanie nowego użytkownika

Po zatwierdzeniu danych użytkownika przechodzimy do strony pozwalającej na wybór ról, jakie mają z danym użytkownikiem zostać skojarzone. Należy wybrać role RHQ Agent oraz Monitorowanie serwerów. Po zatwierdzeniu definicja użytkownika powinna prezentować się następująco:

RHQ Server - zdefiniowany użytkownik

RHQ Server - zdefiniowany użytkownik

Od tej chwili Jan Kowalski może się zalogować do systemu, otrzyma dostęp do monitorowania wszystkich serwerów oraz usług, ale modyfikować będzie mógł tylko zachowanie agentów monitorujących.

Źródła

Tags: , , ,

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: , , , , ,