pgBadger für die Log-Analyse
Führen Sie pgBadger über Postgres-Logs aus, um HTML-Berichte zu langsamen Abfragen, Wartezeiten auf Sperren und Verbindungsmustern zu erstellen.
pgBadger für die Log-Analyse ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was pgBadger ist
Ein Perl-basierter PostgreSQL-Loganalysator, der ansprechende HTML-Berichte zu langsamen Abfragen, Sperrwartezeiten, Fehlern und Verbindungsmustern erstellt. Führen Sie ihn regelmäßig für Ihre Logs aus.
Protokollierung konfigurieren
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 'pgBadger ausführen
Bericht erstellen:
pgbadger /var/log/postgresql/postgresql-2024-03-15.csv \
-o report.html
# Multiple files:
pgbadger /var/log/postgresql/*.csv -o report.htmlInhalt des Berichts
- Langsamste Abfragen mit Beispielen
- Am häufigsten ausgeführte Abfragen
- Abfragen mit dem höchsten Zeitaufwand
- Sperrwartezeiten
- Fehler
- Verbindungsmuster im Zeitverlauf
- Verwendung temporärer Dateien
- Checkpoint- und Vacuum-Aktivität
Inkrementeller Modus
Für eine kontinuierliche Loganalyse erstellen Sie tägliche Berichte:
pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/*.csv
# Updates an HTML dashboard incrementally.Automatische Ausführung per Cron
Jeden Abend auszuführender Job:
0 1 * * * pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/postgresql-`date +%F`.csvIm Vergleich zu pg_stat_statements
pg_stat_statements: aggregierte Metriken in der Datenbank.
pgBadger: analysiert unformatierte Logs und findet Muster, die bei der Aggregation verloren gehen (Sperrwartezeiten, Fehler, Verbindungsstürme).
Muster von Sperrwartezeiten ermitteln
pgBadger fasst Sperrwartezeiten zusammen — welche Abfragen welche anderen blockiert haben und wie lange. Das ist hervorragend geeignet, um Probleme mit Deadlocks und Ressourcenkonflikten zu diagnostizieren.
Fehlerbereich
Anzahl aller Fehlercodes. „23505 unique_violation: 12,000 times“ ist ein Warnsignal — die Anwendung versucht wiederholt, doppelte Datensätze einzufügen.
Temporäre Dateien
Abfragen, die Daten auf die Festplatte auslagern (Sortierung/Hashing ist zu groß für work_mem):
log_temp_files = 0 -- log all temp file usage
-- pgBadger summarises queries that created temp files.Cloud-Alternativen
RDS Performance Insights, Cloud SQL Query Insights usw. führen in verwalteten Umgebungen eine ähnliche Analyse durch — normalerweise auf Grundlage derselben Statistikquellen.
Zusammenfassung
pgBadger verwandelt Postgres-Logs in ein Dashboard.
- log_min_duration_statement festlegen
- Regelmäßig HTML-Berichte erstellen
- Sperrwartezeiten, temporäre Dateien und Fehlermuster finden
- Ergänzt pg_stat_statements
Kurzer Check
Sie beobachten, dass Ihre Anwendung viele INSERTs wiederholt. Welche Postgres-Protokolleinstellung hilft Ihnen, dies zu bestätigen?
Häufig gestellte Fragen
Ist die Lektion „pgBadger für die Log-Analyse“ kostenlos?
Ja — der vollständige Text von „pgBadger für die Log-Analyse“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „pgBadger für die Log-Analyse“?
Führen Sie pgBadger über Postgres-Logs aus, um HTML-Berichte zu langsamen Abfragen, Wartezeiten auf Sperren und Verbindungsmustern zu erstellen. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Academy zu starten?
Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „pgBadger für die Log-Analyse“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?
Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- pg_stat_statements: Wichtigste Abfragen
- pgBadger für die Log-Analyse
- Connection Pooling: PgBouncer
- Kapazitätsplanung und Bloat-Prüfungen