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 :
Systèmes d'exploitation pris en charge
Les systèmes d'exploitation pris en charge par le capteur « PostgreSQL » correspondent aux exigences de l'agent hôte; vous pouvez les vérifier dans la section « Systèmes d'exploitation pris en charge » de chaque agent hôte, par exemple dans la section « Systèmes d'exploitation pris en charge » pour Unix.
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 ».
Prise en charge du traçage côté client
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 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.
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 :
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.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.
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:
- Sélectionnez « Infrastructure » dans la barre latérale de l'interface utilisateur d' Instana.
- 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.