muppy.io
  • ⛏️Qu'est ce que muppy.io ?
  • ⚒️Concepts Muppy
  • Quickstarts
    • ✏️Introduction
  • Guides
    • ⛏️Muppy Core
      • Hosts
        • Création et enrôlement d'un Host
          • ✏️Server Types
          • ✏️Configuration réseaux spécifiques
        • ⚒️Host's Users
        • ⚒️Host's Network information
        • ⚒️Host's Metrics
      • Tasks et Fact Collectors
        • ⚒️Exécution des Tasks (Task Runs)
          • ⚒️Exécution asynchrone des Tasks (Launch as Job)
        • ⚒️Synchronisation des Tasks et Scripts
        • ⚒️Liste des Scripts
        • ⚒️Liste des Tasks
        • ⚒️Création de Task "Shell Script"
        • ⚒️Liste des Fact Definitions
      • ⛏️Firewall UFW
        • Désactiver UFW globalement
        • ✏️Page 1
      • SSH Keys
        • Gestion des SSH Keys
        • Gestion des "authorized_keys"
        • Extraction Clef Privée d'un User User
      • ⚒️Systemd Service Units
        • ⚙️Liste des Systemd Units
        • ➕Création de Systemd Units
        • 📰Systemctl status et log
        • ✏️Edition des Systemd Units
    • 🐘PostgreSQL
      • PostgreSQL Base
        • Installation de PostgreSQL
        • Gestion des Clusters
          • Création
          • Configuration
          • Contrôle
          • Administration (basique)
        • Backup, Restore et Copy de Databases
          • Databases Backups (pg_dump)
          • PostgreSQL Backup
          • pg_dump Restore
          • Database Copy
          • pg_restore Callback Task
        • Backups Planifiés
        • Gestion rétention des Backups
      • PostgreSQL Replication
        • Créer un RCS
        • Visualiser un RCS
        • Suivre la Replication
        • Ajouter des Standbys
        • Restructurer un RCS
        • Intégration d'un RCS
        • Reconfigurer un RCS
      • PostgreSQL HA
        • Configuration
        • Activation et Désactivation
        • Monitoring
        • pglookout Heartbeat
      • PostgreSQL PITR
        • Configuration de WAL-G
        • Lancement des Clusters Backups
        • Liste des Clusters Backups (WAL-G)
        • Purge des fichiers de Backup PITR
        • Monitoring du PITR
        • Objets S3 stockés par WAL-G
        • Restauration PITR
      • PostgreSQL Tools
        • pgBadger - log analysis
    • Muppy Pack
      • ⛏️Packs
      • Concepts
      • ⛏️Muppy Cluster
        • Cluster Security
        • PostgreSQL Cluster Resources
      • ⛏️Reverse Proxy
    • ✏️Configuration
      • 👫Gestion des Users Muppy
      • 🏬S3 Buckets
      • 💬Notifications Teams
      • ✏️Notifications Slack
    • ⛏️Odizy
      • Odizy Workflow
        • Test Servers
      • Accéder à vos serveurs
      • Restaurer un backup sur le serveur de staging
      • Activer un serveur Standby
      • ⛏️Configuration LXC CI/CD
      • Activate and Launch remote Code-Server (VS Code from coder.com)
    • ⚒️Kubernetes
      • ⚒️Installer Tailscale
      • ⚒️Installer un cluster microk8s
      • ⚒️Installer PostgrSQL
      • ⚒️Installer les packages d'infrastructures
  • 📡Muppy Enterprise
    • Introduction
    • ⛏️Configuer une Instance Muppy Enterprise
    • 🌡️Monitoring Muppy Enterprise
  • ⛏️Work in progress
    • ⛏️Code Server
    • ⛏️Muppy Development Servers
      • Move Development Server
Powered by GitBook
On this page
  • Installation
  • Configuration des clusters PostgreSQL
  • Installation de pgBagder
  • Utilisation de pgBadger
  • En local dans le serveur
  • A distance via une connexion SSH
  • Consultation du rapport d’analyse
  • Rapport généré à distance
  • Rapport généré dans un serveur distant.
  1. Guides
  2. PostgreSQL
  3. PostgreSQL Tools

pgBadger - log analysis

Cette page décrit la mise en oeuvre de pgBadger, un outil d'analyse des logs PostgreSQL.

PreviousPostgreSQL ToolsNextMuppy Pack

Last updated 5 months ago

Ref:

Installation

Configuration des clusters PostgreSQL

Il faut ajuster la configuration des clusters dont on veut analyser les requêtes.

Sur chaque serveur PostgreSQL à analyser, il faut ajouter les lignes suivantes dans postgresql.conf et redémarrer le cluster PostgreSQL.

Dans Muppy, ouvrez le cluster via Databases / Databases Cluster et entrez le bloc suivant dans l'onglet postgresql.conf après avoir éventuellement ajustées les valeurs de log_min_duration_statement et track_activity_query_size

# begin PGBadger 
log_statement = none              # required for pgBadger
log_min_duration_statement = 0    # adjust: minimum query duration to analyze
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
log_autovacuum_min_duration = 0
log_error_verbosity = default
lc_messages='en_US.UTF-8'         # pgbdager does not parse fr_FR.UTF-8
track_activity_query_size = 1MB   # adjust: space reserved for textual repr of query
# PGBadger end
  • track_activity_query_size consomme beaucoup de ressources et alourdit le traitement fait par pgBadger. Les valeurs sont comprises entre 100 Bytes et 1 Megabytes.

  • log_min_duration_statement définit un seuil de durée d'exécution (en ms) au delà duquel les requêtes sont loggés. Par exemple, avec log_min_duration_statement = 300 seules les requêtes dont la durée d'execution dépasse 300 ms sont loggées. Commencez avec une valeur haute (eg. 2000) et descendez progressivement.

Installation de pgBagder

pgBadger est un programme perl qui s’installe à partir des sources.

Perl est installé en standard sous Ubuntu. Il est possible d’utiliser pgBadger sans rien installer.

pgBadger peut être installé en local sur un poste de travail (linux est recommandé) ou un serveur.

Procédure

Connecté en tant que ubuntu:

export PGBADGER_VERSION="13.0"  # Ajuster avec la dernière verson publiée
wget https://github.com/darold/pgbadger/archive/refs/tags/v${PGBADGER_VERSION}.tar.gz -O pgbadger-v${PGBADGER_VERSION}.tar.gz
tar xzf pgbadger-v${PGBADGER_VERSION}.tar.gz
rm pgbadger-v${PGBADGER_VERSION}.tar.gz
cd pgbadger-${PGBADGER_VERSION}/
perl Makefile.PL
make && sudo make install

Utilisation de pgBadger

pgBdger peut être utilisée en local ou remote (via ssh).

Les performances ne sont pas bien différentes entre le mode local et le remote.

En local dans le serveur

ubuntu@ns338066:~$ sudo pg_lsclusters 
Ver Cluster Port Status Owner    Data directory              Log file
16  main    5432 online postgres /var/lib/postgresql/16/main /var/log/postgresql/postgresql-16-main.log

ubuntu@ns338066:~$ pgbadger /var/log/postgresql/postgresql-16-main.log*
[========================>] Parsed 2601353 bytes of 2601353 (100.00%), queries: 7519, events: 23
LOG: Ok, generating html report...
ubuntu@ns338066:~$ ll
total 2328
drwxr-x--- 9 ubuntu ubuntu    4096 Dec 17 10:20 ./
drwxr-xr-x 4 root   root      4096 Nov 17 21:04 ../
-rw-rw-r-- 1 ubuntu ubuntu 1462393 Dec 17 10:20 out.html <= !!!!!!!!!!!!!! le report 

Le fichier out.html contient le résultat de l’analyse.

A distance via une connexion SSH

Dans ce mode, un pgBdager local traite le log d’un serveur postgresql auquel il se connecte via une connexion SSH.

Step 1 : Check connectivity

pgbadger doit pouvoir se connecter en SSH sans mot de passe !

ssh ubuntu@$PGHOST
ou ssh ubuntu@X.X.X.X

Step 2 : génération du rapport à distance

pgbadger ssh://ubuntu@$PGHOST:22//var/log/postgresql/postgresql-16-main.log*

Attention le // après le port est nécessaire

Consultation du rapport d’analyse

pgBadger a produit un fichier out.html qui contient toutes les données.

Rapport généré à distance

Il faut ouvrir le fichier out.html dans un navigateur pour le consulter.

Rapport généré dans un serveur distant.

Dans le cas où le rapport a été généré dans un serveur, 2 options sont disponibles:

  • Copier le fichier en local, via scp puis ouvrir le fichier

  • monter un serveur web temporaire pour la durée de la consultation

Monter un serveur http temporaire

Les lignes suivantes montre comment générer le rapport isolé dans un dossier pour le publier en http.

mkdir tmp_server
cd tmp_server
pgbadger /var/log/postgresql/postgresql-XX-main.log*
# Lance un serveur web sur le port 8000 poru consulter le rapport
python3 -m http.server 
# quitter avec CTRL-C

🐘
pgBadger - a fast PostgreSQL log analysis report