Projekt statystyki w Bacula Enterprise

Projekt wbudowanych statystyk w Bacula Enterprise Edition wszedł w stadium pierwszego działającego rozwiązania, więc czas na krótki wpis co to jest. Stworzona funkcjonalność umożliwia zbieranie danych statystycznych w działającym systemie i automatyczne zapisywanie ich do zewnętrznych systemów monitorowania. Dzięki temu możliwe jest dokładne monitorowanie zachowania systemu backupowego.

Rozwiązanie składa się w kilku kluczowych komponentów wbudowanych bezpośrednio w oprogramowanie Bacula, co zapewnia dużą elastyczność konfiguracji i zapewnia minimalny wpływ na wydajność środowiska.

Podstawowym komponentem jest wewnętrzny kolektor statystyk, który globalnie (w ramach każdego z serwisów) zbiera metryki publikowane przez różne elementy aplikacji. Kolektor ten dostępny jest bez potrzeby dodatkowej instalacji czy konfiguracji. Dane przez niego zbierane dostępne sa dla użytkownika za pomocą komendy "collector", np.

*collect bacula.jobs.all
bacula.jobs.all=276

Kolejnym komponentem są kolektory zapisujące zebrane dane statystyczne - metryki, do systemów zewnętrznych, tzw. collector_backends. Ich zadaniem jest cykliczne odpytywanie wewnętrznego kolektora i zapisywanie metryk na zewnątrz, np. w systemie Graphite. Komponent ten musi zostać skonfigurowany przez administratora.

Ostatnim komponentem jest kolektor aktualizacyjny, tzw. update_collector, który aktualizuje w tle wybrane metryki minimalizując narzut wydajnościowy, np. metryki dotyczące alokacji pamięci.

Za pomocą specjalnej komendy ".status" można wyświetlić aktualny status kolektorów zapisujących (collector backends) oraz kolektora aktualizacyjnego (update collector), np.

*.status dir collector
Collector backend: CSV collector is running
 type=1 lasttimestamp=24-Jul-18 10:51
 interval=300 secs
 spooling=disabled

Collector backend: Graphite is running
 type=2 lasttimestamp=24-Jul-18 10:51
 interval=60 secs
 spooling=enabled

Update Collector: running interval=60 secs lastupdate=24-Jul-18 10:51

Kolektory zapisujące dane do zewnętrznych systemów odporne są np. na problemy komunikacyjne uniemożliwiające poprawne wysłanie statystyk. W takim przypadku metryki zapisywane są lokalnie w pliku typu spool do czasu aż komunikacja zostanie ponownie przywrócona. Dzięki temu zachowana jest ciągłość danych statystycznych.