Surveillance de PostgreSQL

Vous pouvez surveiller les instances PostgreSQL en utilisant le capteur Instana PostgreSQL. Le capteur PostgreSQL est automatiquement déployé et installé après l'installation de l'agent Instana. Vous pouvez visualiser les mesures liées aux instances PostgreSQL dans l'interface utilisateur Instana.

Informations de support

Pour vous assurer que le capteur PostgreSQL est compatible avec votre installation actuelle, consultez les sections d'information suivantes :

Systèmes d'exploitation pris en charge

Les systèmes d'exploitation pris en charge par le capteur PostgreSQL sont conformes aux exigences de l'agent hôte, qui peuvent être vérifiées dans la section Systèmes d'exploitation pris en charge de chaque agent hôte, par exemple Systèmes d'exploitation pris en charge pour Unix.

Versions supportées et politique de support

Le capteur prend en charge les versions suivantes de PostgreSQL:

  • PostgreSQL 8.0.x à 8.4.x
  • PostgreSQL 9.0.x à 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 indique la dernière version supportée et la politique de support :

Tableau 1. Dernière version supportée et politique de support
Technologie Politique de support Dernière version de la technologie Dernière version prise en charge
PostgreSQL 45 jours 17.5 17.5

Pour plus d'informations sur la politique de soutien, voir Stratégie de soutien pour les capteurs.

Traçage côté client pris en charge

Pour cette technologie, Instana prend en charge le traçage côté client pour les langages et environnements d'exécution suivants :

Configuration

Activer la collecte des statistiques

La collecte de statistiques est contrôlée par des 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).

Le tableau suivant énumère les paramètres de configuration :

Paramètre Description
track_activities = on Surveille la commande en cours d'exécution par tout processus serveur.
track_counts = on Surveille les statistiques cumulatives collectées concernant les accès aux tables et aux index.
track_io_timing = on Contrôle les temps de lecture et d'écriture des blocs.

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

Activer la collecte de statistiques pour les conteneurs sans racine Podman

Pour activer la collecte de statistiques pour les conteneurs PostgreSQL sans racine Podman, vous devez activer les paramètres dans le fichier postgresql.conf et faire correspondre le port d'écoute du serveur PostgreSQL au même port sur l'hôte où le conteneur Podman sans racine est hébergé. Le mappage des ports est nécessaire pour établir une connexion et collecter les mesures requises.

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

L'autorisation minimale pour le suivi de la collecte de données métriques est 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 à l'adresse PostgreSQL,, procédez comme suit :

  1. Configurez les informations 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 clair.

Pour l'authentification par mot de passe, le mécanisme d'authentification de l'utilisateur PostgreSQL correspondant doit être md5, scram-sha-256 (à partir de la version 10) ou un mot de passe. Pour plus d'informations, voir la section Authentification par mot de passe et Authentification du client dans la documentation 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 au 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.

Si l'intervalle d'interrogation n'est pas spécifié, il est par défaut de 1 seconde.

La zone database est utilisée uniquement pour l'authentification. L'agent lit 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 attribuer à l'adresse user spécifiée le privilège CONNECT 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, suivez les étapes suivantes :

  1. Sélectionnez Infrastructure dans la barre latérale de l'interface utilisateur 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

Voir 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 mesures de performance collectées pour chaque instance Postgres sont les suivantes :

Serveur PostgreSQL

Le tableau suivant répertorie les mesures collectées sur le serveur PostgreSQL :

Métrique Description Granularité
Nombre total de transactions validées Nombre de transactions effectué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 primaire et le serveur réplique est affiché en octets et en secondes. 1 seconde

Bases de données

Le tableau suivant répertorie les mesures collectées dans les bases de données :

Métrique Description Granularité
Transactions validées Nombre de transactions effectuées dans cette base de données. 1 seconde
Transactions annulées Nombre de transactions qui ont été annulées dans cette base de données. 1 seconde
Taux de réussite en cache Pourcentage de blocs de disque qui se trouvent dans le cache tampon, de sorte qu'une lecture n'est 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 récupérées par les balayages séquentiels plus le nombre d'entrées d'index renvoyées par les balayages d'index dans cette base de données. 1 seconde
Tuples extraits Nombre de lignes actives récupérées par les balayages 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

Signatures d'intégrité

Chaque capteur dispose d'une base de connaissances de signatures de santé qui sont évaluées en permanence par rapport aux mesures reçues et sont utilisées pour soulever 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 sur la base de signatures de santé défaillantes sur les entités, et les événements personnalisés déclenchent des problèmes ou des incidents sur la base des seuils d'une mesure individuelle de n'importe quelle entité spécifique.

Pour plus d'informations sur les événements intégrés du capteur PostgreSQL, voir la référence sur les événements intégrés.

Traitement des incidents

Utilisez ces entrées de dépannage 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 n'a pas fonctionné est affiché dans le tableau de bord Postgresql sur Instana, ainsi que dans les journaux.

Statistiques PostgreSQL non activées

Type d'incident 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 d'incident de surveillance : postgresql_authentication_failed

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

Echec de la connexion PostgreSQL

Type d'incident 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 capteur.