Surveillance de PostgreSQL

Vous pouvez surveiller les instances PostgreSQL à l'aide du capteur PostgreSQL Instana. Le capteur « PostgreSQL » est automatiquement déployé et installé une fois que vous avez installé l'agent « Instana ». Vous pouvez consulter les indicateurs liés aux instances d' PostgreSQL s dans l'interface utilisateur d' Instana.

Informations de support

Pour vous assurer que le capteur d' PostgreSQL s est compatible avec votre configuration actuelle, consultez les sections d'informations d'assistance suivantes :

Versions prises en charge et politique d'assistance

Le capteur prend en charge les versions suivantes d' PostgreSQL:

  • PostgreSQL 8.0.x sur 8.4.x
  • PostgreSQL 9.0.x sur 9.6.x
  • PostgreSQL 10.x
  • PostgreSQL 11.x
  • PostgreSQL 12.x
  • PostgreSQL 13.x
  • PostgreSQL 14.x
  • PostgreSQL 15.x
  • PostgreSQL 16.6
  • PostgreSQL 17.2

Le tableau suivant présente la dernière version prise en charge et la politique d'assistance :

Technologie Politique de support Dernière version technologique Dernière version prise en charge
PostgreSQL 45 jours 18.4 18.4

Pour plus d'informations sur la politique d'assistance, consultez la section « Stratégie d'assistance pour les capteurs ».

Configuration

Activer la collecte des statistiques

La collecte des statistiques est contrôlée par les paramètres de configuration définis dans le fichier postgresql.conf , qui est créé lors de la configuration de postgresql. Pour contrôler la collecte des statistiques, définissez les paramètres suivants sur on (yes, true, et 1 sont également acceptés).

Pour localiser votre postgresql.conf fichier, exécutez la requête SQL suivante :

SHOW config_file;

Cette requête renvoie le chemin d'accès complet au postgresql.conf fichier sur votre serveur PostgreSQL.

Le tableau suivant répertorie les paramètres de configuration :

Paramètre Description
track_activities = on Surveille la commande en cours exécutée par n'importe quel processus serveur.
track_counts = on Permet de suivre les statistiques cumulées recueillies concernant les accès aux tables et aux index.
track_io_timing = on Surveille les temps de lecture et d'écriture des blocs.

Pour plus d'informations sur la configuration de la collecte des statistiques, consultez la documentation de PostgreSQL.

Activer la collecte des statistiques de manière permanente

Dans certains environnements, les fichiers de configuration d' PostgreSQL s ne sont pas conservés après un redémarrage. Les modifications apportées directement à postgresql.conf risquent de ne pas être conservées après le redémarrage du système. Pour s'assurer que le paramètre de collecte des statistiques reste activé après chaque redémarrage, il est recommandé d'utiliser la ALTER SYSTEM commande. Cette commande enregistre la configuration dans le postgresql.auto.conf fichier, qui se trouve dans le répertoire de données de PostgreSQL, et conserve la configuration si un volume persistant est utilisé.

Utilisez la commande suivante pour activer la collecte des statistiques :

  • ALTER SYSTEM SET track_activities = 'on';
  • ALTER SYSTEM SET track_counts = 'on';
  • ALTER SYSTEM SET track_io_timing = 'on';

Exécutez la SELECT pg_reload_conf(); commande pour recharger la configuration. Vérifiez le paramètre en exécutant les commandes suivantes :

  • SHOW track_activities;
  • SHOW track_counts;
  • SHOW track_io_timing;

Vous pouvez également consulter le postgresql.auto.conf fichier pour vérifier les modifications de configuration appliquées à l'aide de la ALTER SYSTEM commande. Ce fichier contient la configuration mise à jour.

Remarque : ne modifiez pas postgresql.auto.conf ce fichier manuellement. Utilisez toujours la ALTER SYSTEM commande car le fichier ` PostgreSQL ` est géré automatiquement et écrase toute modification manuelle.

Pour plus d'informations sur l'utilisation ALTER SYSTEM de la commande de configuration, consultez la documentation d' PostgreSQL.

Configuration du nom du cluster

Pour la surveillance du cluster d' PostgreSQL, définissez le cluster_name paramètre dans le postgresql.conf fichier. Cette configuration est requise tant pour le nœud maître que pour les nœuds répliques afin de garantir une identification et une surveillance correctes du cluster.

Définissez le même nom de cluster pour tous les nœuds (maître et répliques) de votre cluster PostgreSQL :

cluster_name = 'PostgreSQL_cluster'

Ce cluster_name paramètre permet à Instana d'identifier et de regrouper les instances d' PostgreSQL qui appartiennent au même cluster. Vérifiez que les exigences suivantes sont remplies :

  • Le nom du cluster est identique sur tous les nœuds maîtres et répliques.
  • Le nom du cluster est défini avant le démarrage des instances d' PostgreSQL.
  • Si vous modifiez le nom du cluster, redémarrez le service « PostgreSQL » pour que les modifications prennent effet.

Pour plus d'informations sur ce cluster_name paramètre, consultez la documentation de PostgreSQL.

Activer la collecte de statistiques pour les conteneurs « rootless » d' Podman

Pour activer la collecte de statistiques pour les conteneurs « rootless » d' PostgreSQLPodman, vous devez activer les paramètres dans le postgresql.conf fichier et mapper le port d'écoute du serveur PostgreSQL vers le même port sur l'hôte où le conteneur « rootless » d' Podman est hébergé. La redirection de ports est nécessaire pour établir une connexion et collecter les métriques requises. Enfin, définissez la clé « isRootlessPodman » sur « true » dans le fichier de configuration de l'agent.

Création d'un utilisateur chargé de la surveillance

Les droits minimaux pour la surveillance de la collecte de métriques sont SELECT sur la base de données pg_stat_database . L'exemple suivant montre comment créer un utilisateur pour les besoins de l'agent:

create user <USERNAME> with password <PASSWORD>;
grant SELECT ON pg_stat_database to <USERNAME>;
 

Capteur

Pour configurer l'authentification requise lorsque le capteur se connecte à PostgreSQL, procédez comme suit :

  1. Configurez les données d'identification de l'utilisateur en activant la section de configuration dans le fichier de configuration de l'agent <agent_install_dir>/etc/instana/configuration.yaml.

  2. Entrez un nom d'utilisateur et un mot de passe.

    Le mot de passe est un mot de passe en texte clair.

Pour l'authentification par mot de passe, le mécanisme d'authentification de l'utilisateur PostgreSQL correspondant doit être md5, scram-sha-256 (version 10 et ultérieure) ou un mot de passe. Pour plus d'informations, consultez les sections « Authentification par mot de passe » et « Authentification du client » dans la documentation de PostgreSQL.

Pour qu'une connexion soit établie entre le capteur et PostgreSQL, PostgreSQL doit contenir une base de données dont le nom est identique à celui du nom d'utilisateur :

com.instana.plugin.postgresql:
  user: '<USERNAME>'
  password: '<PASSWORD>'
  database: '' # by default PostgreSQL will use 'user' as database to connect to.
  poll_rate: 10 #Values are in seconds. Default Value 1 Sec.
  isRootlessPodman: true/false # Optional. Use this field only if you are running postgres inside a rootless podman container. Default value is false.
 
Remarque : si l'intervalle d'interrogation n'est pas spécifié, la valeur par défaut est de 1 seconde.

La zone database est utilisée uniquement pour l'authentification. L'agent détecte automatiquement les modifications apportées au fichier de configuration <agent_install_dir>/etc/instana/configuration.yaml. Par conséquent, les modifications apportées à ce fichier de configuration sont rechargées à chaud (aucun redémarrage de l'agent n'est nécessaire).

Pour collecter des métriques de base de données, vous devez affecter à user le privilège CONNECT spécifié pour toutes les bases de données présentes dans l'instance PostgreSQL . L'exemple suivant montre comment accorder le privilège CONNECT à un utilisateur:

GRANT CONNECT ON DATABASE <DATABASE_NAME> TO <USERNAME>;
 

Collecte des métriques

Pour afficher les métriques, procédez comme suit:

  1. Sélectionnez « Infrastructure » dans la barre latérale de l'interface utilisateur d' Instana.
  2. Cliquez sur un hôte surveillé spécifique pour afficher le tableau de bord de l'hôte avec toutes les métriques collectées et les processus surveillés.

Données de configuration

Consultez les données de configuration suivantes qui sont collectées à partir de l'instance Postgres en cours d'exécution:

  • ID du processus
  • Heure de début
  • Port
  • Version
  • Rôle
  • Nombre max de connexions

Métriques de performance

Les attributs de performance collectés pour chaque instance Postgres sont les suivants:

Serveur PostgreSQL

Le tableau suivant répertorie les indicateurs collectés à partir du serveur PostgreSQL :

Métrique Description Granularité
Nombre total de transactions validées Nombre de transactions validées dans toutes les bases de données. 1 seconde
Nombre total de connexions actives Nombre de connexions actives dans toutes les bases de données. 1 seconde
Utilisation de la connexion Nombre de connexions actives exprimé sous forme de fraction du nombre maximal de connexions autorisées. 1 seconde
Délai de réplication (Disponible uniquement pour les réplications) Le délai de réplication entre le serveur principal et le serveur de réplication est indiqué en octets et en secondes. 1 seconde

Bases de données

Le tableau suivant répertorie les indicateurs collectés à partir des bases de données :

Métrique Description Granularité
Transactions validées Nombre de transactions validées dans cette base de données. 1 seconde
Transactions annulées Nombre de transactions annulées dans cette base de données. 1 seconde
Taux de réussite en cache Pourcentage de blocs disque trouvés dans le cache tampon afin qu'une lecture ne soit pas nécessaire. 1 seconde
Conflits en attente Nombre de requêtes annulées en raison de conflits avec la récupération dans cette base de données. 1 seconde
Tuples renvoyés Nombre de lignes actives extraites par des analyses séquentielles plus le nombre d'entrées d'index renvoyées par des analyses d'index dans cette base de données. 1 seconde
Tuples extraits Nombre de lignes actives extraites par les analyses d'index dans cette base de données. 1 seconde
Taille de la base de données Espace disque utilisé par cette base de données. 1 seconde
Connexions actives Nombre de connexions actives à cette base de données. 1 seconde

Au niveau du cluster

Les tableaux suivants répertorient les indicateurs collectés à partir d'un cluster d' PostgreSQL.

Données de configuration

Le tableau suivant présente les détails de configuration du cluster « PostgreSQL » :

Paramètre Description
Nom du cluster Nom du cluster « PostgreSQL »
Nœuds surveillés

Le tableau de bord du cluster affiche un tableau répertoriant tous les nœuds d' PostgreSQL s qui font partie du cluster. Ce tableau offre une vue d'ensemble rapide de tous les nœuds du cluster, facilitant ainsi l'identification de la topologie du cluster et la surveillance de l'état de chaque nodes.For Pour chaque nœud, les informations suivantes sont affichées :

Paramètre Description
Nom de noeud Nom de l'instance de base de données « PostgreSQL »
Rôle Rôle du nœud (maître ou esclave)
Version PostgreSQL version en cours d'exécution sur le nœud
Intégrité État de santé du nœud
Métriques de performance

Le tableau suivant répertorie les indicateurs collectés à partir du cluster PostgreSQL :

Métrique Description Granularité
Nombre de bases de données Nombre de bases de données dans le cluster « PostgreSQL » 1 seconde
Nombre de répliques Nombre de nœuds de réplication dans le cluster d' PostgreSQL 1 seconde
Taille totale de la base de données Taille totale de toutes les bases de données du cluster PostgreSQL 1 seconde
Débit des transactions Nombre de transactions validées et annulées par seconde sur l'ensemble des nœuds du cluster 1 seconde
Nombre total de connexions actives Nombre total de connexions actives sur l'ensemble des nœuds du cluster 1 seconde

Signatures d'intégrité

Chaque détecteur dispose d'une base de connaissances organisée de signatures de santé qui sont évaluées en continu par rapport aux métriques entrantes et qui sont utilisées pour signaler des problèmes ou des incidents qui dépendent de l'impact sur l'utilisateur.

Les événements intégrés déclenchent des problèmes ou des incidents en fonction de signatures d'intégrité défaillantes sur des entités, tandis que les événements personnalisés déclenchent des problèmes ou des incidents en fonction des seuils d'une métrique spécifique à une entité donnée.

Pour plus d'informations sur les événements générés pour le détecteur PostgreSQL , voir la référence des événements intégrés.

Traitement des incidents

Utilisez ces entrées de traitement des incidents pour résoudre les problèmes liés à PostgreSQL. Un message d'erreur indiquant le type de problème et une brève explication de ce qui s'est passé s'affiche sur le tableau de bord PostgreSQL à l'adresse Instana, ainsi que dans les journaux.

Statistiques PostgreSQL non activées

Type de problème de surveillance : postgresql_stats_not_enabled

Le serveur PostgreSQL est détecté, mais la collecte de statistiques n'est pas activée. Vous devez activer la collecte de statistiques. Pour plus d'informations, voir la section Activer la collecte de statistiques .

Echec de l'authentification PostgreSQL

Type de problème de surveillance : postgresql_authentication_failed

L'authentification de PostgreSQL a échoué. Pour créer un utilisateur de surveillance et configurer l'agent, voir la section Créer un utilisateur de surveillance .

Echec de la connexion PostgreSQL

Type de problème de surveillance : postgresql_connection_failed

L'agent ne parvient pas à se connecter au serveur PostgreSQL . Vous devez vérifier que la connexion est établie entre l'agent et le détecteur.