Operation Manager 0.27.0 (full version)
 
Spis treści
Start
Spis treści
1. Konwencje typograficzne
2. Informacje ogólne o systemie David
3. Terminologia
4. Instalacja
5. Wymagania dla Operation Manager-a
6. Instalacja
7. Informacje ogólne
8. Serwer Powiadomień Graficznych (dgnsd)
9. Klient Dźwięku (sndc)
10. Dostęp do Interfejsu Danych SNMP Trap (damsnmpti)
11. Analizator Danych SNMP Trap (damsnmptaud)
12. Dostęp do Interfejsu Danych SNMP Data (damsnmpdi)
13. Analizator Danych SNMP Data (damsnmpdaud)
14. Jednostka Tworząca Bazę Danych Aktywnych Spraw (damadbud)
15. Serwis Aktywnych Spraw (damcsud)
16. Przyciski najczęściej występujące w aplikacjach WWW
17. Przeglądarka Zarejestrowanych Spraw (Recorded Operation Browser)
18. Przeglądarka Toczących się Spraw (Pending Operation Browser)
19. Prezenter Powiadomień Graficznych (xdgnp)
 
 

13.6. Opis działania

W przypadku, gdy agent oczekujący zgłoszeń klientów poprzez sieć komputerową otrzymuje nowy komunikat UDP, to dokonuje autoryzacji klienta na podstawie jego adresu IP. W tym celu przetwarzane są informacje zawarte w pliku .known.hosts. Jeśli nie można otworzyć pliku .known.hosts do czytania lub adres IP klienta nie pasuje do żadnego z wpisów w tym pliku, to pakiet UDP jest odrzucany. Dla klientów lokalnych nie jest dokonywana żadna autoryzacja.

Przetwarzanie kolejnego zaakceptowanego komunikatu rozpoczyna się od sprawdzenia, czy przetwarzana dana już istnieje w Bazie Danych Analizatora Danych SNMP Data. Zakłada się, że dwie dowolne dane są takie same wtedy i tylko wtedy, gdy ich identyfikatory (identyfikator taki dostaje np. program damsnmpdi w postaci argumentu opcji -I) są sobie równe. Jeżeli nie istnieje to zostaje wpisana do Bazy Danych ze startowymi wartościami takimi jak: czas utworzenia i modyfikacji, liczby wystąpień itp. Jeśli dana występowała już wcześniej w Bazie Danych to uaktualniany jest czas modyfikacji i licznik wystąpień. Jeśli przetwarzana dana jest typu error lub timeout to zwiększany jest odpowiedni licznik wystąpień, a następnie dana jest przekazywana procedurze, która wysyła dane na wyjście Analizatora Danych SNMP Data. W przypadku, gdy dana jest typu counter to obliczany jest przyrost wartości od momentu ostatniej aktualizacji tej danej. Przyrost ten staje się wartością badaną w dalszym procesie obróbki tej wiadomości. Kiedy zaś dana jest typu gauge to wartością badaną jest rzeczywista wielkość tej danej. Następnie jeśli wystąpią określone warunki informacja o tej danej może zostać przesłana na wyjście Analizatora Danych SNMP Data.

Należy zauważyć, że komunikat jeszcze przed aktualizacją danej istniejącej w Bazie może zostać odrzucony, kiedy wystąpią pewne, specyficzne warunki. Kiedy mianowicie identyfikator nadawcy komunikatu jest różny od dotychczasowego nadawcy, to komunikat nie zostanie uwzględniony. Dopiero po wystąpieniu pewnej (argument opcji --snmpdf-sender-delay-max) ilości takich komunikatów, podczas gdy dotychczasowy nadawca nic nie przesyła, zostanie przyznany tej danej identyfikator nowego nadawcy.

W następnym etapie przetwarzania danej wartość badana jest porównywana z oknem przeciętnych wartości dla tej danej. Jeśli wartość badana jest mniejsza od dolnej krawędzi tego okna lub większa od jego górnej krawędzi to jest przekazywana procedurze, która wysyła dane na wyjście Analizatora Danych SNMP Data.

Procedura balansująca uruchamiana jest niezależnie od otrzymywanych i przetwarzanych danych. Sprawdza ona najpierw, czy dla wskazanej danej jest dozwolony proces balansowania (dla dowolnej danej można bowiem ustawić sztywne granice okna przeciętnych, tzn. akceptowalnych wartości, które nie będą ulegać zmianie). Jeśli minął ustawiony wcześniej czas od momentu ostatniego balansowania dla tej danej to proces ten może zostać znów powtórzony. Przy pierwszym balansowaniu granice (window_min, window_max) okna przeciętnych wartości są obliczane według wzoru:

delta = (max - min) * (1.0 - len) / 2.0 * factor

window_min = min + delta

window_max = max - delta

gdzie max oznacza maksymalną wartość z dotychczas występujących dla badanej danej, zaś min wartość minimalną. Parametr len odpowiada argumentowi opcji --snmpdf-average-len programu damsnmpdaud, zaś factor argumentowi opcji --snmpdf-balance-factor programu damsnmpdaud. Przy kolejnych balansowaniach granice okna przeciętnych wartości są wyliczane następująco:

delta1 = (window_max - window_min) * ((1.0 - len) / 2.0 - hits_min / hits_after_balance) * factor

delta2 = (window_max - window_min) * ((1.0 - len) / 2.0 - hits_max / hits_after_balance) * factor

window_min = window_min + delta1

window_max = window_max + delta2

gdzie hits_min oznacza ilość wystąpień wartości poniżej dolnej granicy okna od czasu ostatniego balansowania, zaś hits_max oznacza analogicznie ilość wystąpień powyżej górnej granicy okna. Parametr hits_after_balance oznacza ilość wszystkich wystąpień tej danej od czasu ostatniego balansowania. Po aktualizacji granic okna zerowane są liczniki trafień w poszczególne przedziały, a także licznik wszystkich trafień po balansowaniu.

Procedura, która wysyła dane na wyjście Analizatora Danych SNMP Data, sprawdza najpierw (w przypadku, gdy wysyłana dana jest innego typu niż timeout lub error), czy dla tej danej wystąpiła już odpowiednią ilość razy procedura balansowania (jeśli dana ta podlega automatycznemu balansowaniu). Jeżeli ta wstępna weryfikacja przebiegła pomyślnie to w przypadku, gdy dana ta podlega automatycznemu balansowaniu i nie jest typu timeout ani error to sprawdzane jest, czy przekroczenie którejś z granicy okna przeciętnych wartości jest "istotnie duże". Przez zwrot, że jej wartości są poniżej wyznaczonego dla niej poziomu, rozumie się, że identyfikator tej danej pasuje do pewnego zdefiniowanego obiektu typu level (tzn. wszystkie łańcuchy znaków pól name zdefiniowanych w tym obiekcie są zawarte w identyfikatorze tej danej) oraz średnia arytmetyczna granic okna przeciętnych wartości tej danej i wartość bezwzględna jej wartości są mniejsze od wartości tego obiektu. W celu stwierdzenia, czy nastąpiło "istotnie duże" przekroczenie granicy okna przeciętnych wartości obliczana jest wartość według wzoru:

window_min * min_severity_factor

gdy wartość danej jest poniżej dolnej granicy okna oraz jest ona typu counter lub:

window_min - (window_min - min) * min_severity_factor

gdy wartość danej jest poniżej dolnej granicy okna oraz jest ona typu gauge, zaś według wzoru:

window_max + (window_max - window_min) * max_severity_factor

gdy wartość danej jest powyżej górnej granicy okna. Parametr min_severity_factor odpowiada argumentowi opcji --snmpdf-min-severity-factor programu damsnmpdaud, zaś max_severity_factor odpowiada argumentowi --snmpdf-max-severity-factor. W pierwszych dwóch przypadkach, gdy wartość jest większa lub równa obliczonej wielkości, dana nie jest wysyłana, zaś w ostatnim przypadku dana nie jest wysyłana, gdy jej wartość jest mniejsza bądź równa obliczonej wielkości.

W przypadku, gdy dana nie została odrzucona przez procedurę wysyłającą obliczana jest jej ważność, a następnie jest ona przesyłana na wyjście Analizatora Danych SNMP Data. Typowym odbiorcą tych wiadomości jest Baza Danych Skojarzeń.

W procesie oceny ważności komunikatu brany jest pod uwagę tylko identyfikator wiadomości (identyfikator ten dostaje np. program damsnmpdi w postaci argumentu opcji -I). Jednoznacznie identyfikuje on wiadomość w Operation Manager. Początkowa ważność komunikatu wynosi zero. Następnie dla każdego elementu z pliku konfiguracyjnego jest sprawdzane, czy łańcuch znaków występujący po słowie kluczowym string= jest zawarty w identyfikatorze badanego komunikatu. Jeśli tak to brana jest pod uwagę maksymalna wartość przyporządkowana elementowi string. Wartość ta następnie jest dodawana do dotychczas obliczonej ważności komunikatu. Na końcu obliczona ważność komuniatu jest dzielona przez ilość obiektów typu group zdefiniowanych w pliku konfiguracyjnym. W przypadu gdy komunikat nie jest ani typu timeout ani error to obliczane jest o ile procent został przekroczony poziom krawędzi okna średnich wartości w stosunku do wartości krańcowych. Dolny kraniec stanowi minimum dwóch liczb: najmniejszej wartości jaka wystąpiła dla tej danej lub zero.

Dla wartości poniżej okna ważność jest liczona następująco:

factor * (1.0 - (x - min) / (window_min - min))

lub

factor * (1.0 - (x - min) / (max - min))

gdzie x jest przetwarzaną wartością, window_min jest dolną krawędzią okna średnich wartości, zaś min jest dolnym, a max górnym krańcem wartości. Parametr factor jest argumentem opcji --snmpdf-severity-growing-factor-4min. Wartość jest liczona według drugiego wzoru, gdy odległość między window_max a window_min jest mniejsza od 1% odległości pomiędzy max a min.

Dla wartości powyżej okna ważność jest liczona następująco:

factor * (1.0 - (max - x) / (max - window_max))

lub

factor * (1.0 - (x - min) / (max - min))

gdzie x jest przetwarzaną wartością, window_max jest górną krawędzią okna średnich wartości, zaś max jest górnym, a min dolnym krańcem wartości. Parametr factor jest argumentem opcji --snmpdf-severity-growing-factor-4max. Wartość jest liczona według drugiego wzoru w przypadku analogicznym jak dla wartości poniżej okna. Pilnowany jest także fakt, aby ważność nie przekroczyła jedynki. Na końcu ważność przyjmuje znak ujemny.

Procedura serwisowania Bazy Danych uruchamiana jest co pewien okres czasu i polega na usuwaniu danych, które już od pewnego czasu (argument opcji --snmpdf-ttl seconds) nie zostały zaktualizowane (zmodyfikowane). Tylko te dane zostaną usunięte z Bazy Danych, które posiadają atrybut pozwalający na tą operację.