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.htmlZawartość 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`.csvpg_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
- pg_stat_statements: najważniejsze zapytania
- pgBadger do analizy logów
- Pula połączeń: PgBouncer
- Planowanie pojemności i audyty bloatu