0Pricing
SQL Academy · Lekcja

pgBadger do analizy logów

Uruchamiać pgBadger na logach Postgresa, aby tworzyć raporty HTML dotyczące powolnych zapytań, oczekiwania na blokady i wzorców połączeń

pgBadger do analizy logów to bezpłatna lekcja SQL Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej SQL Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs SQL Academy zawiera 4 lekcji w sumie.

Czym jest pgBadger

To oparty na Perlu analizator logów PostgreSQL, który tworzy przejrzyste raporty HTML dotyczące wolnych zapytań, oczekiwania na blokady, błędów i wzorców połączeń. Należy uruchamiać go okresowo dla logów.

Konfigurowanie logowania

postgresql.conf:

log_destination = 'csvlog'
logging_collector = on
log_directory = 'pg_log'
log_min_duration_statement = '500ms'
log_lock_waits = on
log_temp_files = 0
log_checkpoints = on
log_connections = on
log_disconnections = on
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '

Uruchamianie pgBadger

Generowanie raportu:

pgbadger /var/log/postgresql/postgresql-2024-03-15.csv \
  -o report.html

# Multiple files:
pgbadger /var/log/postgresql/*.csv -o report.html

Zawartość raportu

  • Najwolniejsze zapytania wraz z przykładami
  • Najczęściej wykonywane zapytania
  • Zapytania zużywające najwięcej czasu
  • Oczekiwanie na blokady
  • Błędy
  • Wzorce połączeń w czasie
  • Użycie plików tymczasowych
  • Aktywność punktów kontrolnych i funkcji vacuum

Tryb przyrostowy

W przypadku ciągłej analizy logów należy generować raporty codziennie:

pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/*.csv
# Updates an HTML dashboard incrementally.

Automatyczne uruchamianie przez Cron

Zadanie uruchamiane co noc:

0 1 * * * pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/postgresql-`date +%F`.csv

pg_stat_statements a pgBadger

pg_stat_statements: zagregowane metryki dostępne w bazie danych.
pgBadger: analizuje surowe logi i znajduje wzorce pomijane przez agregaty (oczekiwanie na blokady, błędy, nagłe fale połączeń).

Analizowanie wzorców oczekiwania na blokady

pgBadger podsumowuje oczekiwanie na blokady — które zapytania blokowały inne i jak długo. Jest bardzo przydatny przy diagnozowaniu zakleszczeń i problemów z rywalizacją o zasoby.

Sekcja błędów

Liczba wystąpień każdego kodu błędu. „23505 unique_violation: 12 000 razy” to sygnał ostrzegawczy — aplikacja ponawia próby wstawienia duplikatów.

Pliki tymczasowe

Zapytania, które zapisują dane tymczasowe na dysku (sortowanie lub haszowanie jest zbyt duże dla work_mem):

log_temp_files = 0     -- log all temp file usage
-- pgBadger summarises queries that created temp files.

Alternatywy w chmurze

RDS Performance Insights, Cloud SQL Query Insights i podobne usługi wykonują podobną analizę w zarządzanych środowiskach — zwykle na podstawie tych samych źródeł statystyk.

Podsumowanie

pgBadger zmienia logi Postgresa w pulpit nawigacyjny.

  • Należy ustawić log_min_duration_statement
  • Należy generować okresowe raporty HTML
  • Należy wyszukiwać oczekiwanie na blokady, pliki tymczasowe i wzorce błędów
  • Uzupełnia pg_stat_statements

Szybkie sprawdzenie

Widać, że aplikacja ponawia wiele instrukcji INSERT. Które ustawienie logowania Postgresa pomoże to potwierdzić?

Często zadawane pytania

Czy lekcja „pgBadger do analizy logów” jest bezpłatna?

Tak — pełny tekst „pgBadger do analizy logów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu SQL Academy, przejdź na CoddyKit PRO. Kurs SQL Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „pgBadger do analizy logów”?

Uruchamiać pgBadger na logach Postgresa, aby tworzyć raporty HTML dotyczące powolnych zapytań, oczekiwania na blokady i wzorców połączeń Ćwiczysz SQL Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć SQL Academy?

Nie wymagamy żadnego doświadczenia. SQL Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „pgBadger do analizy logów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji SQL Academy?

Tak. Każda lekcja SQL Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. pg_stat_statements: najważniejsze zapytania
  2. pgBadger do analizy logów
  3. Pula połączeń: PgBouncer
  4. Planowanie pojemności i audyty bloatu
← Powrót do SQL Academy