/usr/sbin/logwatch--detail Med --service postgresql --range All
tail_n_mail
Outil externe écrit en Perl
À exécuter périodiquement
Analyse le contenu des journaux applicatifs
Envoie un mail s’il détecte certains motifs
Configurer tail_n_mail
EMAIL: astreinte@dalibo.comMAILSUBJECT: HOST Postgres fatal errors (FILE)FILE: /var/log/postgresql-%Y-%m-%d.logINCLUDE: PANIC:INCLUDE: FATAL:EXCLUDE: database ".+" does not existINCLUDE: temporary fileINCLUDE: reloading configuration files
tail_n_mail : exemple
Exemple:
[1] Between lines 123005 and 147976, occurs 39 times.First: Jan 1 00:00:01 rojogrande postgres[4306]Last: Jan 1 10:30:00 rojogrande postgres[16854]Statement: user=root,db=rojogrande FATAL: password authentication failed for user "root"
Statistiques d’activité
Configuration
Liste des vues statistiques
Outils externes de classement
Statistiques
d’activité - configuration 1
Tracer l’activité :
track_activities = on
pg_stat_activity affiche
les requêtes
d’autres processus
S’assurer que les requêtes ne sont pas tronquées :
track_activity_query_size = 10000 ou
+
Récupérer le query_id
compute_query_id = on
Consulter les wait events
et joindre à pg_wait_events (v17+)
Statistiques
d’activité - configuration 2
track_counts = on
track_io_timing = on
track_wal_io_timing = on
track_functions = off / pl /
all
Statistiques
d’activité - configuration 3
stats_temp_directory (<v15)
répertoire contenant les fichiers temporaires des statistiques
copié vers pg_stat lors d’un arrêt propre
à monter sur du tmpfs
Statistiques d’activité :
perte
Les statistiques d’activité sont perdues en cas de crash ou
restauration
ANALYZE (voire VACUUM)
Informations
intéressantes à récupérer
Sur :
l’activité
l’instance
les bases
les tables
les index
les fonctions
Nombre de connexions par
base
SELECT datname, numbackends FROM pg_stat_database;SELECT datname, count(*) FROM pg_stat_activityWHERE datname ISNOTNULLGROUPBY datname;
Taille des bases
SELECT datname, pg_database_size(oid) FROM pg_database;
Nombre de verrous
SELECT d.datname, count(*) FROM pg_locks lJOIN pg_database d ON l.database=d.oidGROUPBY d.datname ORDERBY d.datname;
Et un grand nombre
d’autres informations
Ratio de lecture du cache (souvent appelé hit ratio)
Retard de réplication
Nombre de transactions par seconde
Outils
Beaucoup d’outils existent pour exploiter les statistiques :