Supervision
graphique en
PostgreSQL
Alain K.S.A AMEDOHA
Au programme
• Supervision : quoi et pourquoi ?
• Trois outils de supervision graphique :
• PoWA
• pgBadger
• temBoard
Superviser ?
▪ | sy.pɛʁ.vi.ze |
▪ « Se placer au-dessus pour voir, remarquer, prendre des mesures »
La supervision est la surveillance du bon fonctionnement d’un système ou d’une activité.
Elle permet de surveiller, rapporter et alerter les fonctionnements normaux et anormaux des systèmes
informatiques.
Elle répond aux préoccupations suivantes :
• technique : surveillance du réseau, de l’infrastructure et des machines ;
• applicative : surveillance des applications et des processus métiers ;
• contrat de service : surveillance du respect des indicateurs contractuels ;
• métier : surveillance des processus métiers de l’entreprise.
Que superviser ?
• Superviser PostgreSQL et le système
• Deux types de supervision :
• automatique,
• occasionnelle.
Politique de supervision
• Pour quoi ?
• Pour qui ?
• Quels critères ?
• Quels outils ?
Objectifs de la supervision
▪ Améliorer / mesurer les performances
▪ Améliorer l’applicatif
▪ Anticiper / prévenir les incidents
▪ Réagir vite en cas de crash
Acteurs concernés
• Développeur
• correction et optimisation de requêtes
• Administrateur de bases de données
• surveillance, performance
• mise à jour
• Administrateur système
• surveillance, qualité de service
Indicateurs côté système d’exploitation
• Charge CPU
• Entrées/sorties disque
• Espace disque
• Sur-activité et inactivité du serveur
• Temps de réponse
Indicateurs côté base de données
• Nombre de connexions
• Requêtes lentes et/ou fréquentes
• Nombre de transactions par seconde
• Ratio d’utilisation du cache
• Retard de réplication
Informations internes
• PostgreSQL propose deux canaux d’informations :
• les statistiques d’activité
• les traces
• Mais rien pour les conserver, les historiser
Outils externes
• Nécessaire pour conserver les informations
• … et exécuter automatiquement des actions dessus :
• Génération de graphiques
• Envoi d’alertes
Outils graphiques
• Beaucoup d’outils existent
• Deux types :
• en temps réel : PoWA et temboard
• rétro-analyse : pgBadger
L’analyse en temps réel d’une instance permet de réagir rapidement en cas de problème.
Par exemple, il est important d’avoir une réaction rapide en cas de manque d’espace disque, ou bien de
pouvoir comprendre les raisons de requêtes trop lentes. Dans cette catégorie, nous discuterons de deux
outils : PoWA et temboard.
L’analyse après coup permet une analyse plus fine, se terminant généralement par un rapport,
fréquemment en HTML, parfois avec des graphes. Cette analyse plus fine nécessite des outils
spécialisés. Nous étudierons le logiciel pgBagder.
PGBADGER
. Script Perl
• site officiel : https://pgbadger.darold.net/
• Traite les journaux applicatifs de PostgreSQL
• Génére un rapport HTML très détaillé
pgBadger est un script Perl écrit par Gilles Darold. Il s’utilise en ligne de commande : il suffit de lui
fournir le ou les fichiers de traces à analyser et il rend un rapport HTML sur les requêtes exécutées, sur
les connexions, sur les bases, etc. Le rapport est très complet, il peut contenir des graphes zoomables.
C’est certainement le meilleur outil actuel de rétro-analyse d’un fichier de traces PostgreSQL.
Le site web de pgBadger se trouve sur https://pgbadger.darold.net/
POWA
▪ PostgreSQL Workload Analyzer
▪ site officiel : https://github.com/powa-team/powa
▪ Capture régulière de métriques diverses
▪ Stockage efficace des données
▪ Interface graphique permettant d’exploiter ces informations
PoWA (PostgreSQL Workload Analyzer) est un outil communautaire, sous licence PostgreSQL.
L’outil récupére à intervalle régulier les statistiques collectées par diverses extensions, les stocke et les
historise.
L’outil fournit également une interface graphique permettant d’exploiter ces données. On pourra
observer en temps réel l’activité de l’instance
TEMBOARD
• Adresse: https://github.com/dalibo/temboard
• Console centrale d’administration et de supervision
• Architecture serveur (interface) / agent
• Historisation des données et temps réel
• Extensible
temBoard est une console d’administration et de supervision d’instances PostgreSQL. Il offre une
centralisation des interactions et accès aux données collectées, s’inscrivant ainsi dans une politique de
gestion de parc.