Configurez le monitoring PostgreSQL en utilisant le Collector NRDOT sur des environnements auto-hébergés incluant des serveurs physiques, des machines virtuelles et des installations autonomes.
Installation guidée
Pour installer plutôt via l’UI de New Relic, accédez à one.newrelic.com > Integrations & Agents > PostgreSQL (Database 360). Cette page traite uniquement de l’installation manuelle.
Prérequis
Avant d’installer, assurez-vous d’avoir :
PostgreSQL 14 ou version ultérieure
Une clé de licence New Relic.
Accès administratif à votre instance PostgreSQL.
Connectivité réseau entre l'hôte où vous installez le Collector NRDOT et votre base de données PostgreSQL.
Connectivité réseau vers la documentation sur les points de terminaison OTLP de New Relic
Pour les versions de PostgreSQL prises en charge, les droits requis, et les paramètres de serveur recommandés, consultez Compatibilité et prérequis.
Configurer le Collector NRDOT
Installez le Collector NRDOT sur votre système :
Configurer l'utilisateur de la base de données et les autorisations
Créez un utilisateur de monitoring avec les privilèges nécessaires pour votre instance PostgreSQL.
Pour créer l'utilisateur de monitoring et les autorisations :
- Connectez-vous à votre instance PostgreSQL en tant que superutilisateur ou autre utilisateur disposant des autorisations requises :
$sudo -u postgres psql --dbname=postgres --port=5432- Créez l'utilisateur de monitoring :
CREATE USER <YOUR_DB_USERNAME> WITH LOGIN PASSWORD '<YOUR_DB_PASSWORD>';- Accordez l’appartenance au rôle d’utilisateur de monitoring selon les besoins :
- Si vous utilisez PostgreSQL 15 ou une version ultérieure, attribuez le rôle pour hériter des privilèges :
ALTER ROLE <YOUR_DB_USERNAME> INHERIT;Conseil
Si vous utilisez PostgreSQL 14, l'utilisateur de monitoring hérite des privilèges par défaut, vous pouvez donc ignorer cette étape.
- Créez le schéma et les autorisations suivants dans chaque base de données que vous souhaitez monitorer :
CREATE SCHEMA IF NOT EXISTS otel; GRANT USAGE ON SCHEMA otel TO <YOUR_DB_USERNAME>; GRANT USAGE ON SCHEMA public TO <YOUR_DB_USERNAME>; GRANT SELECT ON ALL TABLES IN SCHEMA public TO <YOUR_DB_USERNAME>; GRANT pg_monitor TO <YOUR_DB_USERNAME>; CREATE EXTENSION IF NOT EXISTS pg_stat_statements;- (Facultatif) Pour collecter les métriques vectorielles, créez l'extension
pgvectordans chaque base de données :
CREATE EXTENSION IF NOT EXISTS vector;Les fonctions de distance l1, hamming et jaccard nécessitent la version 0.7.0 ou supérieure de pgvector.
- (Facultatif) Pour vérifier la connexion et les autorisations, exécutez :
$psql --username=<YOUR_DB_USERNAME> --host=localhost --port=5432 --dbname=<YOUR_DATABASE_NAME> --command '\conninfo'$ psql --username=<YOUR_DB_USERNAME> --host=localhost --port=5432 --dbname=<YOUR_DATABASE_NAME> \> -c "SELECT * FROM pg_stat_database LIMIT 1;" && echo "pg_stat_database OK"> psql --username=<YOUR_DB_USERNAME> --host=localhost --port=5432 --dbname=<YOUR_DATABASE_NAME> \> -c "SELECT * FROM pg_stat_activity LIMIT 1;" && echo "pg_stat_activity OK"> psql --username=<YOUR_DB_USERNAME> --host=localhost --port=5432 --dbname=<YOUR_DATABASE_NAME> \> -c "SELECT * FROM pg_stat_statements LIMIT 1;" && echo "pg_stat_statements OK"Si chaque commande se termine sans erreur, l’utilisateur de monitoring, l’hôte et le port sont tous corrects.
Configurer le collecteur NRDOT
Configurez le Collector NRDOT avec vos paramètres spécifiques à PostgreSQL.
Cette configuration se concentre sur le monitoring essentiel de PostgreSQL avec le Récepteur nrpostgresql uniquement.
configuration complète
Cette configuration de base de référence capture les métriques essentielles. Pour consulter le catalogue complet des métriques, reportez-vous à la référence de configuration.
- Créez un fichier de configuration nommé
postgresql-config.yaml:
$sudo nano /etc/nrdot-collector/postgresql-config.yamlAjoutez la configuration suivante au fichier
postgresql-config.yamlque vous avez créé à l’étape précédente.postgresql-config.yaml1receivers:2nrpostgresql:3endpoint: "postgresql.example.com:5432"4username: "newrelic"5password: "YOUR_PASSWORD"6databases:7- YOUR_DATABASE_NAME8collection_interval: 15s9events:10db.server.top_query:11enabled: true12db.server.query_sample:13enabled: true14db.server.query_plan:15enabled: true16top_query_collection:17max_rows_per_query: 100018top_n_query: 20019collection_interval: 60s20allowed_comment_keys: [nr_service_guid]21query_sample_collection:22max_rows_per_query: 100023allowed_comment_keys: [nr_service_guid]24resource_attributes:25db.system.version:26enabled: true27# Metrics needed for the out-of-the-box dashboard but disabled by default:28# see "Available metrics" below for the full default-on/default-off breakdown.29metrics:30postgresql.database.locks:31enabled: true32postgresql.deadlocks:33enabled: true34postgresql.function.calls:35enabled: true36postgresql.query.conflicts:37enabled: true38postgresql.sequential_scans:39enabled: true40postgresql.temp.io:41enabled: true42postgresql.temp_files:43enabled: true44processors:45batch:46batch/metrics:47send_batch_size: 819248send_batch_max_size: 819249timeout: 10s50exporters:51otlp/newrelic:52endpoint: "https://otlp.nr-data.net:4318"53headers:54api-key: "YOUR_LICENSE_KEY"55compression: gzip56sending_queue:57enabled: true58sizer: bytes59queue_size: 100_000_00060num_consumers: 1061batch:62sizer: bytes63max_size: 1_000_00064min_size: 065flush_timeout: 5s66retry_on_failure:67enabled: true68initial_interval: 5s69max_interval: 30s70max_elapsed_time: 300s71service:72telemetry:73metrics:74level: none75pipelines:76metrics:77receivers: [nrpostgresql]78processors: [batch/metrics]79exporters: [otlp/newrelic]80logs:81receivers: [nrpostgresql]82processors: [batch]83exporters: [otlp/newrelic]Paramètres de configuration
Le tableau suivant décrit les principaux paramètres de configuration du récepteur
nrpostgresql:paramètres Description <YOUR_DB_HOST>Saisissez le nom d’hôte de votre base de données PostgreSQL. <YOUR_DB_PORT>Saisissez le port de votre base de données PostgreSQL. <YOUR_DB_USERNAME>Saisissez le nom d'utilisateur de votre base de données. <YOUR_DB_PASSWORD>Saisissez le mot de passe de votre base de données. <YOUR_DATABASE_NAME>Saisissez le nom de la base de données que vous souhaitez monitorer. databasesListe des bases de données pour lesquelles collecter des statistiques. Par défaut : [](toutes les bases de données non modèles). S’applique uniquement aux métriques. Les échantillons de requêtes et les requêtes principales ignorent cette liste et sont filtrés uniquement parexclude_databases.exclude_databasesBases de données exclues des statistiques, des échantillons de requêtes, et des requêtes principales. Valeur par défaut : []. Utilisez ceci pour les bases de données internes que votre utilisateur de monitoring ne peut pas atteindre.<YOUR_NEWRELIC_OTLP_ENDPOINT>Saisissez le point de terminaison OTLP New Relic. Pour plus d'informations, consultez les points de terminaison OTLP New Relic. <YOUR_NEWRELIC_LICENSE_KEY>Saisissez votre clé de licence New Relic. collection_intervalSaisissez l'intervalle entre les collectes de métriques. Valeur par défaut : 15s.Conseil
Vous pouvez également :
Configurer plusieurs récepteurs: pour monitorer plusieurs instances PostgreSQL depuis un seul collecteur. Liez votre base de données PostgreSQL à l'APM: pour corréler les performances des applications avec les opérations de la base de données. Cela vous permet de voir exactement quelles applications génèrent des workloads de base de données spécifiques. Plans de requête pour les instructions d’écriture: pour collecter les plans de requête pour les instructions de verrouillage ou d’écriture sans accorder d’accès en écriture à l’utilisateur de monitoring. Configurer la gestion des secrets: pour gérer en toute sécurité des informations sensibles, telles que les identifiants de base de données. Cela permet de renforcer la sécurité de votre configuration de monitoring en évitant de coder en dur des données sensibles dans les fichiers de configuration.
Valider la configuration du Collector NRDOT
- Mettez à jour le chemin de configuration pour pointer vers votre nouveau fichier
postgresql-config.yaml:
$sudo sed -i 's|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/config.yaml"|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/postgresql-config.yaml"|' /etc/nrdot-collector/nrdot-collector.conf- Validez la configuration du Collector NRDOT pour vous assurer qu'elle est correctement formatée et qu'elle fonctionnera correctement :
$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/postgresql-config.yamlRedémarrer NRDOT Collector
Après avoir configuré le collecteur, redémarrez le service NRDOT Collector pour appliquer les modifications :
$sudo systemctl restart nrdot-collectorPour vérifier que le collecteur fonctionne correctement, vérifiez l'état du service :
$sudo systemctl status nrdot-collectorConseil
Redémarrez toujours le Collector NRDOT après avoir modifié la configuration pour garantir la prise en compte des nouveaux paramètres.
Trouvez et utilisez vos données
Les échantillons de requêtes et les requêtes principales arrivent sous forme d'événements de log (event.name = 'db.server.query_sample' / 'db.server.top_query', db.system.name = 'postgresql'). Les métriques arrivent sous l'espace de nommage postgresql.*.
Pour trouver votre entité de base de données PostgreSQL dans New Relic :
- Allez à https://one.newrelic.com > All Capabilities > Databases.
- Dans la liste déroulante Entity type, sélectionnez PostgreSQL instance, puis cliquez sur Apply.
- Sélectionnez votre base de données PostgreSQL dans la liste des entités.
Documentation associée
Lier votre base de données PostgreSQL à APM
Apprenez à corréler les performances des applications avec les opérations de base de données.
Guide de dépannage
Apprenez à résoudre les problèmes courants liés au monitoring PostgreSQL.
Référence des métriques
Découvrez les métriques disponibles collectées par le collecteur NRDOT.