Po uruchomieniu program sprawdza, czy nie ma do zrobienia zaległych
raportów. Jeśli tak to będzie je sukcesywnie wykonywał. Jeśli nie to wykona
zwyczajny raport za bieżącą godzinę.
Zaległe raporty mogą być wykonywane w kilku przypadkach. Program stara się odnaleźć ostatni
poprawnie zakończony raport. Jeśli nie znajdzie go za ostatnią godzinę,
to zacznie wykonywać raporty za kolejne okresy, począwszy od ostatniego poprawnie zakończonego
raportu. Jeśli nie znajdzie żadnego raportu, to wykona raport za bieżącą godzinę.
Jeśli natomiast został uruchomiony z opcją --reports-since
odnoszącą się do przeszłości, to zacznie wykonywać raporty od podanego momentu.
Po wykonaniu wszystkich ewentualnych zaległych raportów, dreportd
przystępuje do normalnej pracy. Oczekuje on na upływ kolejnej pełnej godziny (np. 15:00, 18:00 itp.)
i wykonuje raport za ostatnią, pełną godzinę. W pierwszej kolejności generowane są
raporty dotyczące wpisów SNMP Trap, następnie wpisów o prowadzonych sprawach (cases), a na końcu
o monitorowanych obiekatach (obiekty pingowane, interfejsy sieciowe, sąsiedzi BGP).
Generowanie raportów każdorazowo zakończone jest potwierdzeniem poprawnego zakończenia
wykonania raportu. Tylko takie raporty są traktowane jako poprawne.
8.4.1. Przetwarzanie filtrów dotyczących wpisów SNMP Trap
Na podstawie filtrów zdefiniowanych przez użytkownika budowane są
zapytania SQL, których wynik działania jest następnie odpowiednio
interpretowany. Każde zapytanie generowane jest na podstawie pojedynczego
filtra. W pierwszej kolejności, podczas budowania zapytania, przetwarzane są
wpisy z grupy Group by Konfiguratora
Zarządcy Raportów zgodnie z kolejnością wpisów podaną w konfiguracji.
Do dalszej budowy zapytania używane są wpisy z grupy Custom filters,
zaś na końcu dodawane są warunki z grupy Rules.
Kolumny Field dla wszystkich trzech grup zawierają listę pól
charakteryzujących wpisy o komunikatach SNMP Trap.
Po zbudowaniu zapytania jest ono wykonywane, a każdy wiersz jego
wyniku jest interpretowany przy pomocy wpisów z grup Group by
i Custom filters. Na początku dokonuje się interpretacja
przy pomocy wpisów a grupy Group by. Każdy wpis tej grupy
odpowiada pojedynczej kolumnie wyniku zapytania, której zawartość jest interpretowana
zgodnie ze specyfikacją pól Treat as i Show danego
wpisu.
Pole Treat as może przyjmować następujące wartości:
BGPPEER, NETINTERFACE, OBJECT,
PINGOBJECT. Pole to może być też puste (wartość
--skip-- Konfiguratora Zarządcy Raportów).
Wartości te wskazują jak zawartość kolejnych kolumn rezultatu zapytania,
powstałych poprzez działanie wpisów z grupy Group by, ma być
interpretowana i tym samym tłumaczona na nazwy monitorowanych obiektów
(np.: na nazwy urządzeń, opisy interfejsów sieciowych, wpisy sąsiadów BGP).
Pole Show może przyjmować następujące wartości:
Yes, No, When others failed,
If success. Wartości te wskazują jak zawartość kolejnych kolumn rezultatu zapytania,
powstałych poprzez działanie wpisów z grupy Group by,
ma być interpretowana i tym samym, czy ma się znaleźć w końcowym rezultacie przetwarzania
wiersza wyniku. Wartości Yes i No nie wymagają
wyjaśnienia. Wartość If success oznacza, że wartość ma być brana pod uwagę,
jeśli nie będzie pusta, zaś wartość When others failed
oznacza, że będzie użyta tylko wtedy, gdy wartości dla wszystkich wpisów
grupy Group by są puste. Wpis ten pełni, więc rolę wpisu awaryjnego.
Interpretacja wyniku zapytania przy pomocy wpisów z grupy
Custom filters dokonywana jest poprzez pola Filter i
Result. Zawartość odpowiedniej kolumny wyniku zapytania, powstałej
poprzez działanie danego wpisu z grupy Custom filters,
jest parsowana zgodnie z zawartością pola Filter
i tłumaczona na napis zgodnie z zawartością pola Result.
8.4.2. Przetwarzanie filtrów dotyczących wpisów o prowadzonych sprawach (cases)
Przetwarzanie filtrów dotyczących prowadzonych spraw dokonywane jest analogicznie jak
przetwarzanie filtrów dla wpisów SNMP Trap.
Jedyną różnicą jest zawartość kolumn Field dla kolejnych trzech grup każdego filtra.
W tym przypadku kolumny Field zawierają bowiem listę pól odnoszących się do wpisów
o toczących się sprawach.
8.4.3. Przetwarzanie filtrów dotyczących wpisów o monitorowanych obiektach
Przetwarzanie wpisów dotyczących monitorowanych obiektów dokonuje się
na podstawie filtrów zdefiniowanych przez administratora. Każdy filtr zawiera
pole określające rodzaj obiektu, którego dotyczy. Na podstawie tego pola
dreportd wie, gdzie szukać wpisów dotyczących tego typu obiektów.
Każdy filtr może zawierać listę dopuszczalnych rodzajów urządzeń, których ma
dotyczyć. Dzięki temu można ograniczyć dopływ zbędnych informacji, jakie
powstałyby w wyniku przetwarzania danego filtra (obecnie ma to znaczenie tylko
w przypadku interfejsów sieciowych). Użytkownik może dokonać specyfikacji
dozwolonych urządzeń w grupie Allowed devices
Konfiguratora Zarządcy Raportów.