Strumenti per l’analisi dei log di PostgreSQL

In Postgres è possibile decidere quali informazioni aggiungere al file dei LOG grazie alle numerose opzioni presenti nel file di configurazione del server (postgresql.conf).

Postgres inoltre si integra alla perfezione con demoni di log di sistema come syslog (in ambienti UNIX).

Compito frequente del DBA è leggere i file di log di un server, interpretandoli secondo la propria esperienza.

A volte, specialmente se le informazioni inserite nel log sono tante, i file generati dal server risultano di difficile comprensione se analizzati con strumenti come un semplice editor di testo.

Per facilitare il compito dei DBA sono stati sviluppati strumenti che hanno il compito specifico di analizzare file di log e presentare statistiche utili in un formato facilmente consultabile.

Il più popolare, ad oggi, è sicuramente pgFouine. Vediamo come usarlo e quali alternative vi sono.


pgFouine

URL di riferimento: http://pgfouine.projects.postgresql.org

pgFouine è il più completo analizzatore di log presente ad oggi. Produce report in formato HTML con statistiche generali su query, checkpoint ed errori.

Caratteristiche principali:

  • Scritto in PHP (ad oggetti)
  • Facilmente estensibile se si ha bisogno di aggiungere report specifici
  • Rilasciato con licenza GPL
  • Tempo di esecuzione per l’analisi di un log di 52MB: 52.388s

PRO

  • Ottimo formato di output
  • Statistiche complete sulle query eseguite, sia generali che divise per tipo
  • Livello di dettaglio del report selezionabile

CONTRO

  • Estrema lentezza ed elevato consumo di memoria
Esempio di output di pgfouine

pg_query_analyser

URL di riferimento: https://github.com/WoLpH/pg_query_analyser

pg_query_analyser è un clone C++ di PgFouine. È stato sviluppato da Rick van Hattem, un collega di 2ndQuadrant.

Caratteristiche principali:

  • Scritto in C++
  • Tempo di esecuzione per l’analisi di un log di 52MB: 4.113s

PRO

  • Ottimo formato di output (identico a quello di pgFouine)
  • Velocità di esecuzione e consumo ridotto di memoria
  • Rilasciato con licenza GPL3

CONTRO

  • Raccoglie solo statistiche sulle query (è possibile scegliere il tipo di query da riportare)
  • Mancanza di un sistema di templating per personalizzazione dell’output (codice HTML hard-coded nel sorgente C++)
Esempio di output di pg_query_analyser

pgbadger

URL di riferimento: https://github.com/dalibo/pgbadger

È l’ennesimo clone di pgFouine. Il suo punto di forza sono sicuramente i grafici, realizzati con una libreria Javascript e di ottima qualità.

Caratteristiche principali

  • Scritto in Perl
  • Tempo di esecuzione per l’analisi di un log di 52MB: 11.544s

PRO:

  • Ottimo formato di output
  • Statistiche complete sulle query eseguite, e non solo:
    • Errori
    • Lock
    • File temporanei
    • Sessioni
    • Connessioni
  • Modalità watch per riportare solo errori, come avviene nel popolare logwatch (www.logwatch.org)
  • Ottima qualità dei grafici
  • Rilasciato con licenza BSD

CONTRO

  • Nessuno
Esempio di output di pgbadger

Conclusioni

Dai test che ho effettuato, pgbadger è risultato essere un ottimo compromesso tra prestazioni nell’analisi e qualità del report.

Se le vostre esigenze sono di analizzare esclusivamente le query, terrei in considerazione pg_query_analyser, che esegue un ottimo lavoro usando un quantitativo di risorse esiguo.

This Post Has 0 Comments

Leave A Reply