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.