EuroLinux analiza logów w PostgreSQL za pomocą narzędzi EuroDB

Analiza logów w PostgreSQL za pomocą narzędzi EuroDB

Tradycyjna analiza logów najczęściej jest żmudnym i męczącym procesem. Dlaczego jednak nie miałoby to być przyjemne i miłe dla oka? Dzisiejszym tematem będzie więc moduł analizy logów, który jest jednym z narzędzi oferowanych w EuroDB, a który znacznie ułatwia pracę z logami.

Tradycyjna analiza logów najczęściej jest żmudnym i męczącym procesem. Dlaczego jednak nie miałoby to być przyjemne i miłe dla oka? Dzisiejszym tematem będzie więc moduł analizy logów, który jest jednym z narzędzi oferowanych w EuroDB, a który znacznie ułatwia pracę z logami.

Na naszym blogu w jednym z poprzednich artykułów o tematyce bazodanowej opisaliśmy metody monitorowania bazy danych dostępne w samym silniku PostgreSQL. Przybliżyliśmy także moduł analizy logów EuroDB. Dziś postanowiliśmy rozwinąć ten temat i przedstawić istotę działania modułu analizy logów, bazując na przykładach.

Sens i korzyści analizowania logów bazy danych

Logi, czyli inaczej chronologiczny zapis informacji o zdarzeniach, towarzyszy wszystkim dziedzinom informatyki od ich początków aż po dzień dzisiejszy. Ich podstawowym zadaniem jest informowanie, co tak naprawdę dzieje się podczas wykonywania programu czy działania serwera. Zasada tworzenia logów w bazie danych jest taka sama, a dzięki analizie logów administratorzy bazy są w stanie wykryć przyczyny zarówno znanych, jak i całkowicie nowych błędów lub wydarzeń. Między innymi dlatego każda istotna baza danych musi zapewniać ciągły dopływ informacji o jej stanie i błędach wraz z czasem systemowym. Idealne logi powinny zawierać również dodatkowe informacje, które po analizie mogą służyć administratorom w procesie optymalizacji.

Konfiguracja podstawowych logów w bazie Postgres

Wiedząc o konieczności tworzenia logów w bazie danych, przejdźmy do konfiguracji serwera. Plikiem, który odpowiada za wszelkie konfiguracje w bazie PostgreSQL, jest plik postgresql.conf. Aby go odnaleźć, należy wejść do konsoli bazy danych (psql) i wywołać zapytanie SHOW config_file;. Mając już namierzony plik konfiguracyjny, możemy rozpocząć edycję (przydadzą się tutaj prawa administratora).

Plik konfiguracyjny zawiera w sobie szereg zakomentowanych zmiennych i opcji, które odpowiadają za tworzenie logów. Najważniejszymi z nich są:

  • log_directory = 'pg_log' – wskazuje na katalog, w którym mają się pojawiać logi
  • log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' – ustala, jak mają się nazywać pliki z logami
  • log_statement = 'all' – określa typ zapytań, które są zapisywane w logach (standardowo jest ustawiony na 'none')
  • logging_collector = on – ustala, czy stderr i csvlog są zapisywane w logach (standardowo jest ustawiony na 'off').

Po powyższych zmianach należy zapisać plik konfiguracyjny i zrestartować bazę danych PostgreSQL, używając na przykład komendy sudo service postgresql restart. Teraz, gdy tworzenie logów jest skonfigurowane poprawnie, wszelkie zdarzenia i zapytania będą się zapisywały w katalogu /var/lib/pgsql_folder/data/pg_log/ – takim, jaki jest ustawiony w pliku konfiguracyjnym w zmiennej log_directory.

Narzędzia EuroDB do analizy logów

W przypadku analizy logów z dużej bazy danych, trzeba się liczyć z dziesiątkami tysięcy linii, które w najgorszym przypadku będziemy musieli ręcznie sprawdzać i szukać w nich błędów lub interesujących nas zapisów. Z pomocą przychodzi tu jednak wiele przydatnych narzędzi do ich filtrowania czy nawet odszukiwania potencjalnych błędów. Paczka narzędzi, którą oferuje EuroDB, zawiera w sobie jeden z najlepszych analizatorów logów bazy danych. Moduł Loganalyzer nie tylko tworzy szczegółową analizę logów, ale również umożliwia generację wykresów i grafów. Jest to niezwykle wygodne dla administratorów, którzy mają pełniejszy obraz pracy systemu, a czas niezbędny do analizy, wykrycia anomalii i błędu jest zdecydowanie krótszy. Jest to szczególnie istotne w przypadku awarii. Ponadto, moduł został stworzony do obsługi nawet największych plików z logami, przy czym zachowuje swoją maksymalną wydajność. Mamy również możliwość parsowania plików skompresowanych formatem gzip bez konieczności wcześniejszego ich rozpakowania.

Podstawowe użycie

Po zainstalowaniu modułu analizy logów możemy go wywołać za pomocą słowa kluczowego eurodb-loganalyzer. Aby wykonać analizę logów z domyślnymi opcjami, wystarczy wywołać następujące polecenie eurodb-loganalyzer<LOG PATH>. Po wykonaniu domyślnie utworzy ono plik wyjściowy out.html gotowy do wyświetlenia w dowolnej przeglądarce internetowej.

Piękniejsza strona analizy

Dzięki modułowi analizy logów nawet najbardziej podstawowe logi bazy danych mogą nam wygenerować znakomity raport, dający dobry pogląd na obecny stan bazy danych. Przykładowy raport zawiera między innymi informacje o błędach wraz z ich szczegółami i ilością występowań.

EuroLinux analysis of logs in PostgreSQL using EuroDB tools

 

Oprócz tego, zawarty jest również wykres z rodzajami typów logów. Jest on szczególnie ważny przy określaniu skali problemu podczas występowania błędu.

EuroLinux analiza logów w PostgreSQL za pomocą narzędzi EuroDB

Więcej przykładowych wykresów, nie tylko dotyczących błędów bazy danych, ale też na temat optymalizacji, można znaleźć na stronie produktu EuroDB moduł analizy logów.

Potęga modułu analizy logów

Wyżej ukazany sposób na generowanie raportu analizy logów jest stosunkowo uproszczony. Aby w pełni wykorzystać potencjał modułu, warto użyć kilku najbardziej interesujących opcji:

  • -b | --begin – określa czas, od którego chcemy stworzyć raport
  • -e | --end – określa czas, do którego chcemy stworzyć raport
  • -o | --outfile – definiuje nazwę pliku wyjściowego
  • -q | --quiet – wykonuje generowanie bez wypisania niczego na standardowe wyjście
  • -S | --select-only – robi zestawienie jedynie z zapytań SELECT
  • -T | --title`– zmienia tytuł raportu HTML
  • -x | --extension – pozwala na wybranie innego formatu dla wygenerowanego pliku.

Przykład bardziej zaawansowanej komendy do generowania analizy logów:

> eurodb-loganalyzer -b "2019-05-11 12:25:09" -e "2019-05-11 12:29:09" -o peak.html -q -S -T "Strange Peak 11/5/19" /var/log/postgresql.log

Oprócz wyżej wypisanych możliwości analizy, moduł Loganalyzer, który jest częścią pakietu narzędzi EuroDB, posiada szereg innych funkcji. Jedną z ciekawszych jest tryb przyrostowy, dzięki któremu logi mogą być porównywane w dowolnych interwałach, znacznie ułatwiając analizę. Aby uzyskać szczegółowe informacje i poznać wszystkie opcje narzędzia, polecamy zapoznać się z manualem, który otwiera się za pomocą komendy eurodb-loganalyzer –help.

Podsumowanie

Moduł analizy logów pozwala szybko dotrzeć do wielu ważnych informacji i wykresów, które nie tylko ukazują błędy i problemy w bazie danych, ale również oferują niecodzienne, przyjazne dla użytkownika statystyki. Wszystko jest ubrane w prostą formę już od generowania analizy logów po prezentację wykresów.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.