Configurez le monitoring de PostgreSQL à l'aide du NRDOT Collector pour les instances PostgreSQL AWS RDS. Les environnements RDS ont des considérations spécifiques pour les extensions et les groupes de paramètres.
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
14et versions ultérieuresUne clé de licence New Relic.
Connectivité réseau entre l’hôte où vous installez le Collector NRDOT et votre instance RDS PostgreSQL.
Connectivité réseau vers la documentation sur les points de terminaison OTLP de New Relic
Identifiants de l'utilisateur maître RDS.
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 NRDOT Collector sur un système qui peut se connecter à votre instance RDS :
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 RDS.
Pour créer l'utilisateur de monitoring et les autorisations :
- Connectez-vous à votre instance RDS en tant qu'utilisateur principal :
$psql --host=<YOUR_RDS_ENDPOINT> --dbname=postgres --port=5432 --username=<YOUR_MASTER_USERNAME>- 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=<YOUR_RDS_ENDPOINT> --port=5432 --dbname=<YOUR_DATABASE_NAME> --command '\conninfo'$ psql --username=<YOUR_DB_USERNAME> --host=<YOUR_RDS_ENDPOINT> --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=<YOUR_RDS_ENDPOINT> --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=<YOUR_RDS_ENDPOINT> --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 à RDS 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 voir 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: "mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com:5432"4username: "newrelic"5password: "YOUR_PASSWORD"6databases:7- YOUR_DATABASE_NAME8# top_query/query_sample scan pg_stat_statements/pg_stat_activity cluster-wide9# regardless of the databases list above; on RDS/Aurora, exclude reserved10# databases the monitoring user can never reach.11exclude_databases:12- rdsadmin13collection_interval: 15s14events:15db.server.top_query:16enabled: true17db.server.query_sample:18enabled: true19db.server.query_plan:20enabled: true21top_query_collection:22max_rows_per_query: 100023top_n_query: 20024collection_interval: 60s25allowed_comment_keys: [nr_service_guid]26query_sample_collection:27max_rows_per_query: 100028allowed_comment_keys: [nr_service_guid]29resource_attributes:30db.system.version:31enabled: true32# Metrics needed for the out-of-the-box dashboard but disabled by default:33# see "Available metrics" below for the full default-on/default-off breakdown.34metrics:35postgresql.database.locks:36enabled: true37postgresql.deadlocks:38enabled: true39postgresql.function.calls:40enabled: true41postgresql.query.conflicts:42enabled: true43postgresql.sequential_scans:44enabled: true45postgresql.temp.io:46enabled: true47postgresql.temp_files:48enabled: true49processors:50batch:51batch/metrics:52send_batch_size: 819253send_batch_max_size: 819254timeout: 10s55exporters:56otlp/newrelic:57endpoint: "https://otlp.nr-data.net:4318"58headers:59api-key: "YOUR_LICENSE_KEY"60compression: gzip61sending_queue:62enabled: true63sizer: bytes64queue_size: 100_000_00065num_consumers: 1066batch:67sizer: bytes68max_size: 1_000_00069min_size: 070flush_timeout: 5s71retry_on_failure:72enabled: true73initial_interval: 5s74max_interval: 30s75max_elapsed_time: 300s76service:77telemetry:78metrics:79level: none80pipelines:81metrics:82receivers: [nrpostgresql]83processors: [batch/metrics]84exporters: [otlp/newrelic]85logs:86receivers: [nrpostgresql]87processors: [batch]88exporters: [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_RDS_ENDPOINT>Saisissez le nom d'hôte du point de terminaison de votre instance RDS. <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 de services managés (telles querdsadmin) 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 RDS 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 RDS PostgreSQL dans la liste des entités.
Documentation associée
Instrumentation dans les environnements auto-hébergés
Découvrez comment configurer le monitoring PostgreSQL dans des environnements auto-hébergés avec New Relic.
Référence des métriques
Découvrez les métriques disponibles collectées par le collecteur NRDOT.
Guide de dépannage
Apprenez à résoudre les problèmes courants liés au monitoring PostgreSQL.