OpsMgr: Audit Collection Service jako usługa zarządzania logiem zabezpieczeń na platformie Windows, cz. 2

Udostępnij na: Facebook

Autor: Joanna Subik

Opublikowano: 2010-12-21

Wprowadzenie

W poprzedniej części artykułu Czytelnik mógł zapoznać się z podstawowymi komponentami, składającymi się na usługę ACS, oraz ich konfiguracją. W drugiej części będzie mowa o optymalizacji usługi ACS.

Optymalizacja

Jak już zostało powiedziane w pierwszej części artykułu, usługa ACS składa się z kilku komponentów: bazy danych ACS, collectora zbierającego dane od klientów przekazujących (forwarders) oraz usługi raportującej.

Warto zatrzymać się na chwilę nad samą rolą collectora – zbiera on wszystkie zdarzenia bezpieczeństwa otrzymane od klientów przekazujących i przesyła je dalej –do bazy danych, w najszybszym możliwym czasie. Co więcej – akceptuje dane i przetwarza je, sprawdzając, czy otrzymana informacja powinna zostać zapisana w bazie danych, czy też nie. (Informacja nadmiarowa, np. zdublowany opis tego samego zdarzenia, nie zostanie zapisany do bazy danych). Zwykle dane są wysyłane do bazy natychmiast, może się jednak zdarzyć, że do collectora napływa bardzo duża ilość różnych informacji i nie jest on w stanie natychmiast ich przetworzyć i przesłać dalej. W takiej sytuacji zdarzenia są umieszczane w kolejce.

Kiedy jeszcze dane mogą zostać skolejkowane przed zapisem do bazy SQL? Na przykład podczas trwania okna serwisowego (maintenance) bazy danych, w momencie kiedy baza jest niedostępna, odłączona itd. Domyślnie w kolejce może zostać przechowane 262 144 zdarzenia. Dużo? To zależy. Jeżeli w infrastrukturze znajdują się serwery generujące bardzo dużą ilość zdarzeń typu security (np. kontrolery domeny lub inne serwery odpowiedzialne np. za uwierzytelnianie użytkowników), to może się okazać, że domyślna liczba zdarzeń w kolejce to dla potrzeb administratora stanowczo za mało. W takiej sytuacji dobrym pomysłem jest zwiększenie liczby zdarzeń oczekujących w kolejce poprzez modyfikację odpowiednich kluczy w rejestrze zlokalizowanych w HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ AdtServer\Parameters. Można zmieniać także ustawienia rejestru decydujące o sposobie obsługi zdarzenia przez collector. Należy zwrócić uwagę na trzy takie ustawienia:

  1. MaximumQueueLength – ustawienie rejestru odpowiadające za rozmiar kolejki, domyślnie ustawionej na 262 144 przechowywane zdarzenia. Pytanie: o ile można zwiększyć tę wartość? O tyle, ile jest potrzebne. Warto wziąć pod uwagę, że zazwyczaj każde z przekazywanych zdarzeń zajmuje ok. 512 bajtów. Może się jednak zdarzyć, że niektóre z nich będą zawierały więcej informacji niż inne, co przy ścisłym przyjęciu ww. wartości może spowodować błąd w obliczeniach. Dlatego wartość 512 bajtów należy potraktować jako średnią, pozwalającą na zorientowanie się, jak dużą ilość pamięci trzeba będzie zaalokować pod zdarzenia, które będą oczekiwały w kolejce.

    Rys. 1. Lokalizacja kluczy w rejestrze odpowiedzialnych za prawidłowe działanie usługi ACS.

  2. BackOffTreshold – określa wartość progową wypełnienia kolejki, po przekroczeniu której nowe połączenia z klientów przekazujących (forwarders) do collectora zostaną odrzucone. Istniejące połączenia będą nadal utrzymywane. Domyślnie wartość ta wynosi 75% maksymalnej liczby zdarzeń oczekujących w kolejce i zdefiniowanych w kluczu MaximumQueueLength (czyli domyślnie 262 144 x 75% = 196608). Jednak nic nie stoi na przeszkodzie, by tę wartość zwiększyć w zależności od wymagań.

  3. DisconnectTreshold – określa wartość progową wypełnienia kolejki, po przekroczeniu której collector rozpocznie odłączanie klientów aktualnie przesyłających do niego zdarzenia. Domyślnie wartość ta wynosi 90% maksymalnej liczby zdarzeń oczekujących w kolejce i zdefiniowanych w kluczu MaximumQueueLength (czyli domyślnie 262 144 x 90% = 235 929). Można jednak skonfigurować klientów przekazujących poprzez przypisanie im odpowiednich priotytetów. Wtedy collector w pierwszej kolejności rozłączy klientów o niższym priorytecie, w dalszym ciągu pozwalając na zgłaszanie zdarzeń klientom o wysokim priorytecie (np. kontrolerom domeny). Przy definiowaniu własnych wartości trzeba pamiętać, aby wartość zdefiniowana w kluczu DisconnectTreshold była wyższa niż ta, która znajduje się w kluczu BackOffTreshold. Jest to ważne ze względu na fakt, że wówczas możemy odrzucić nowe, przychodzące połączenia do collectora przed koniecznością odłączania już raportujących klientów.

Podobnie jednak jak większość usług i aplikacji działających na platformie Microsoft Windows, usługa ACS może być monitorowana za pomocą liczników wydajności. Po jej poprawnym zainstalowaniu na dedykowanym serwerze zarządzającym (Management Server) zostają udostępnione widoki opisane poniżej:

Rys. 2. Widoki dotyczące usługi ACS dostępne w konsoli Operations Managera.

  1. Connected Clients – widok przedstawiający liczbę klientów przekazujących (forwarders) podłączonych aktualnie do collectora.


    Rys. 3. Widok typu Connected Clients.

  2. Database Queue % Full – widok przedstawiający procentową ilość zdarzeń pozostających w kolejce. Wartość ta jest obliczana na podstawie całkowitej ilości zdarzeń pozostających w kolejce podzielonej przez maksymalną ilość zdarzeń, jakie mogą zostać w niej przechowane.


    Rys. 4. Widok typu Database Queue % Full.

  3. Database Queue Backoff Threshold in % – widok przedstawiający wartość progową wypełnienia kolejki, po przekroczeniu której nowe połączenia z klientów przekazujących (forwarders) do collectora zostaną odrzucone.


    Rys. 5. Widok typu Database Queue Backoff Threshold in %.

  4. Database Queue Disconnect Threshold in % – widok przedstawiający wartość progową wypełnienia kolejki, po przekroczeniu której collector rozpocznie odłączanie klientów aktualnie przesyłających do niego zdarzenia.


    Rys. 6. Widok typu Database Queue Disconnect Threshold in %.

  5. DB Loader Event Insert/sec – widok przestawiający średnią liczbę zdarzeń, które są wstawiane do tabeli dtEvent w bazie ACS w trakcie 1 sekundy.


    Rys. 7. Widok typu DB Loader Event Insert/sec.

  6. DB String Cache Hit % – widok przedstawiający procentowe zestawienie wszystkich żądań obsłużonych przez string cache, zamiast przez tabelę w bazie danych ACS o nazwie dtString.


    Rys. 8. Widok typu DB String Cache Hit %.

  7. Incoming Events/sec – widok przedstawiający całkowitą liczbę zdarzeń przesyłanych przez klientów przekazujących do collectora w trakcie 1 sekundy.


    Rys. 9. Widok typu Incoming Events/sec.