pgBadger pour analyser les journaux
Exécutez pgBadger sur les journaux Postgres pour produire des rapports HTML sur les requêtes lentes, les attentes de verrous et les modèles de connexion.
pgBadger pour analyser les journaux est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.
Qu’est-ce que pgBadger ?
Un analyseur de journaux PostgreSQL fondé sur Perl, qui produit de magnifiques rapports HTML sur les requêtes lentes, les attentes de verrous, les erreurs et les schémas de connexions. Exécutez-le périodiquement sur vos journaux.
Configurer la journalisation
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 'Exécuter pgBadger
Générez un rapport :
pgbadger /var/log/postgresql/postgresql-2024-03-15.csv \
-o report.html
# Multiple files:
pgbadger /var/log/postgresql/*.csv -o report.htmlContenu du rapport
- Requêtes les plus lentes, avec des exemples
- Requêtes les plus fréquentes
- Requêtes les plus coûteuses en temps
- Attentes de verrous
- Erreurs
- Schémas de connexions au fil du temps
- Utilisation de fichiers temporaires
- Activité des points de contrôle et du nettoyage automatique
Mode incrémentiel
Pour analyser les journaux en continu, générez des rapports quotidiens :
pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/*.csv
# Updates an HTML dashboard incrementally.Exécution automatique via Cron
Tâche nocturne :
0 1 * * * pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/postgresql-`date +%F`.csvComparaison avec pg_stat_statements
pg_stat_statements : métriques agrégées, dans la base de données.
pgBadger : analyse les journaux bruts et trouve des schémas que les agrégats ne révèlent pas (attentes de verrous, erreurs, afflux de connexions).
Extraire les schémas d’attente de verrous
pgBadger résume les attentes de verrous : quelles requêtes en bloquaient d’autres et pendant combien de temps. C’est très utile pour diagnostiquer les problèmes d’interblocage et de contention.
Section des erreurs
Nombre d’occurrences de chaque code d’erreur. « 23505 unique_violation: 12,000 times » est un signal d’alerte : l’application réessaie des insertions en double.
Fichiers temporaires
Requêtes qui débordent sur le disque (tri ou hachage trop volumineux pour work_mem) :
log_temp_files = 0 -- log all temp file usage
-- pgBadger summarises queries that created temp files.Alternatives dans le cloud
RDS Performance Insights, Cloud SQL Query Insights, etc. effectuent une analyse similaire dans les environnements gérés, généralement à partir des mêmes sources de statistiques.
Récapitulatif
pgBadger transforme les journaux PostgreSQL en tableau de bord.
- Définissez log_min_duration_statement
- Générez régulièrement des rapports HTML
- Repérez les attentes de verrous, les fichiers temporaires et les schémas d’erreurs
- Complétez pg_stat_statements
Vérification rapide
Vous constatez que votre application réessaie de nombreux INSERT. Quel paramètre de journalisation PostgreSQL vous aide à le confirmer ?
Questions Fréquemment Posées
La leçon « pgBadger pour analyser les journaux » est-elle gratuite ?
Oui — le texte complet de « pgBadger pour analyser les journaux » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « pgBadger pour analyser les journaux » ?
Exécutez pgBadger sur les journaux Postgres pour produire des rapports HTML sur les requêtes lentes, les attentes de verrous et les modèles de connexion. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer SQL Academy ?
Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « pgBadger pour analyser les journaux » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?
Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- pg_stat_statements : requêtes principales
- pgBadger pour analyser les journaux
- Mise en commun des connexions : PgBouncer
- Planification de capacité et audits du gonflement