| Termin | Definicja |
|---|---|
| Automatyzacja monitoringu | Automatyzacja monitoringu to zaplanowane procesy cyklicznie sprawdzające stan i wydajność infrastruktury bazodanowej. Zakres automatyzacji monitoringu infrastruktury bazodanowejAutomatyzacja monitoringu polega na zaplanowaniu procesów, które cyklicznie pobierają informacje o stanie, dostępności i wydajności infrastruktury bazodanowej. Taki proces może sprawdzać między innymi możliwość nawiązania połączenia z usługą bazy danych, czas odpowiedzi na proste zapytanie kontrolne, zajętość procesora, wykorzystanie pamięci operacyjnej oraz ilość wolnego miejsca na woluminach używanych przez pliki danych, dzienniki transakcji i pliki tymczasowe. Wyniki są zapisywane w systemie monitoringu, dzięki czemu można analizować zarówno bieżący stan, jak i zmiany zachodzące w czasie. Zakres kontroli powinien odpowiadać architekturze konkretnego środowiska. Inne wskaźniki są istotne dla pojedynczego serwera z bazą danych, a inne dla instalacji korzystającej z replikacji, wielu instancji lub osobnych woluminów dla danych i dzienników. Monitorowanie samego procesu usługi nie wystarcza, ponieważ usługa może działać, a jednocześnie baza może odrzucać połączenia, oczekiwać na blokady albo nie mieć miejsca na zapis nowych danych. Z tego powodu automatyzacja obejmuje zwykle zarówno testy dostępności, jak i odczyt metryk systemowych oraz parametrów pracy silnika bazy danych. Kontrole cykliczne i zbieranie wiarygodnych metrykProces monitorujący wykonuje kontrole według ustalonego harmonogramu. Częstotliwość sprawdzania musi uwzględniać charakter monitorowanego parametru. Dostępność usługi i możliwość wykonania zapytania kontrolnego można sprawdzać często, natomiast analiza trendu zajętości dysku lub wzrostu dziennika transakcji ma sens także w dłuższych przedziałach czasu. Każdy pomiar powinien mieć znacznik czasu, identyfikator instancji, nazwę sprawdzanego zasobu oraz informację o wyniku. Bez tych danych trudno odróżnić pojedynczy incydent od powtarzającego się problemu. Ważna jest także poprawna interpretacja wartości. Wysokie użycie procesora nie zawsze oznacza awarię, ponieważ może wynikać z zaplanowanego zadania, dużego zapytania analitycznego albo okresowego przetwarzania danych. Podobnie krótki wzrost opóźnienia nie musi wymagać interwencji, jeżeli mieści się w typowym zakresie dla danego środowiska. Automatyzacja powinna dlatego korzystać z progów, wartości bazowych i reguł oceny trendu. Próg ostrzegawczy może sygnalizować pogorszenie sytuacji, a próg krytyczny — stan wymagający szybkiej analizy. Oba progi powinny być ustalone na podstawie rzeczywistego obciążenia, a nie przypadkowych wartości. Przy pobieraniu metryk należy ograniczać wpływ samego monitoringu na monitorowaną bazę. Zapytania kontrolne powinny być krótkie, przewidywalne i wykonywane z uprawnieniami wystarczającymi do odczytu wymaganych informacji. Należy również uwzględnić błędy chwilowe, przekroczenie czasu oczekiwania oraz niedostępność sieci. Pojedynczy nieudany pomiar może być oznaczony jako zdarzenie przejściowe, natomiast seria kolejnych niepowodzeń powinna zostać oceniona według osobnej reguły. Takie rozdzielenie ogranicza liczbę fałszywych alarmów. Alarmowanie, korelacja zdarzeń i reakcja na odchyleniaAutomatyczne alarmowanie powinno przekazywać nie tylko informację, że wystąpił problem, lecz także jego kontekst. Komunikat może wskazywać nazwę instancji, rodzaj metryki, zmierzoną wartość, próg, czas trwania odchylenia oraz poprzednie wyniki kontroli. Dzięki temu osoba analizująca zdarzenie może szybciej ustalić, czy problem dotyczy dostępności, wydajności, zasobów systemowych, blokad, opóźnień operacji wejścia i wyjścia czy braku wolnego miejsca. Reguły alarmowe powinny uwzględniać zależności między zdarzeniami. Jeżeli serwer przestanie odpowiadać, równoczesne alarmy o braku odpowiedzi bazy, niedostępności zapytań i braku metryk mogą opisywać jeden incydent, a nie trzy niezależne awarie. Korelacja pozwala ograniczyć powielanie powiadomień i wskazać zdarzenie nadrzędne. Z kolei sytuacja, w której baza odpowiada, lecz rośnie czas wykonywania zapytań, może wymagać innego toku analizy niż całkowita niedostępność usługi. Automatyzacja może również uruchamiać bezpieczne działania pomocnicze, takie jak zapisanie dodatkowych metryk, zebranie informacji diagnostycznych albo utworzenie zgłoszenia. Działania zmieniające konfigurację, restartujące usługę lub usuwające pliki wymagają szczególnej ostrożności, ponieważ mogą pogorszyć stan systemu albo utrudnić późniejszą analizę. Każda akcja automatyczna powinna mieć jasno określony warunek uruchomienia, zakres, sposób rejestrowania oraz możliwość weryfikacji wyniku. Weryfikacja działania monitoringu i analiza trendówSam fakt utworzenia zadań monitorujących nie potwierdza, że monitoring działa prawidłowo. Należy sprawdzać, czy proces rzeczywiście wykonuje kontrole, zapisuje wyniki i generuje alarmy w sytuacjach testowych. Weryfikacja może obejmować kontrolowane przerwanie połączenia, przekroczenie ustalonego progu zajętości zasobu lub sprawdzenie reakcji na brak wolnego miejsca w środowisku testowym. Po takim teście trzeba potwierdzić zarówno powstanie zdarzenia, jak i jego prawidłowe zamknięcie po ustąpieniu przyczyny. Wyniki gromadzone przez dłuższy czas pozwalają analizować trendy. Stopniowe zmniejszanie wolnego miejsca, regularny wzrost czasu odpowiedzi albo powtarzające się skoki obciążenia mogą wskazywać na problem, który jeszcze nie powoduje awarii. Analiza historyczna ułatwia odróżnienie normalnego cyklu pracy od stopniowej degradacji wydajności. Powinna obejmować także sprawdzenie jakości samych danych: brakujące pomiary, zmienione identyfikatory instancji, różne jednostki oraz przerwy w działaniu agenta mogą prowadzić do błędnych wniosków. W środowisku bazodanowym szczególne znaczenie ma spójność między monitoringiem a rzeczywistym stanem infrastruktury. Jeżeli alarm informuje o problemie, ale nie można wskazać odpowiadającej mu metryki, czasu wystąpienia i warunku wyzwalającego, reguła wymaga przeglądu. Dobrze zaprojektowana automatyzacja tworzy powtarzalny łańcuch: kontrola, pomiar, zapis, ocena, alarm i potwierdzenie rozwiązania. Taki przepływ ogranicza zależność od ręcznego sprawdzania oraz ułatwia wykrywanie nieprawidłowości w pracy baz danych i zasobów, z których korzystają. |