• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Installez & configurez NRDOT pour le monitoring de PostgreSQL avec Self-hosted

|View as Markdown (English)

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.

Prérequis

Avant d’installer, assurez-vous d’avoir :

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 :

  1. Connectez-vous à votre instance PostgreSQL en tant que superutilisateur ou autre utilisateur disposant des autorisations requises :
bash
$
sudo -u postgres psql --dbname=postgres --port=5432
  1. Créez l'utilisateur de monitoring :
CREATE USER <YOUR_DB_USERNAME> WITH LOGIN PASSWORD '<YOUR_DB_PASSWORD>';
  1. 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 pgvector dans 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 :
bash
$
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.

  1. Créez un fichier de configuration nommé postgresql-config.yaml:
bash
$
sudo nano /etc/nrdot-collector/postgresql-config.yaml
  1. Ajoutez la configuration suivante au fichier postgresql-config.yaml que vous avez créé à l’étape précédente.

    postgresql-config.yaml
    1
    receivers:
    2
    nrpostgresql:
    3
    endpoint: "postgresql.example.com:5432"
    4
    username: "newrelic"
    5
    password: "YOUR_PASSWORD"
    6
    databases:
    7
    - YOUR_DATABASE_NAME
    8
    collection_interval: 15s
    9
    events:
    10
    db.server.top_query:
    11
    enabled: true
    12
    db.server.query_sample:
    13
    enabled: true
    14
    db.server.query_plan:
    15
    enabled: true
    16
    top_query_collection:
    17
    max_rows_per_query: 1000
    18
    top_n_query: 200
    19
    collection_interval: 60s
    20
    allowed_comment_keys: [nr_service_guid]
    21
    query_sample_collection:
    22
    max_rows_per_query: 1000
    23
    allowed_comment_keys: [nr_service_guid]
    24
    resource_attributes:
    25
    db.system.version:
    26
    enabled: true
    27
    # 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.
    29
    metrics:
    30
    postgresql.database.locks:
    31
    enabled: true
    32
    postgresql.deadlocks:
    33
    enabled: true
    34
    postgresql.function.calls:
    35
    enabled: true
    36
    postgresql.query.conflicts:
    37
    enabled: true
    38
    postgresql.sequential_scans:
    39
    enabled: true
    40
    postgresql.temp.io:
    41
    enabled: true
    42
    postgresql.temp_files:
    43
    enabled: true
    44
    processors:
    45
    batch:
    46
    batch/metrics:
    47
    send_batch_size: 8192
    48
    send_batch_max_size: 8192
    49
    timeout: 10s
    50
    exporters:
    51
    otlp/newrelic:
    52
    endpoint: "https://otlp.nr-data.net:4318"
    53
    headers:
    54
    api-key: "YOUR_LICENSE_KEY"
    55
    compression: gzip
    56
    sending_queue:
    57
    enabled: true
    58
    sizer: bytes
    59
    queue_size: 100_000_000
    60
    num_consumers: 10
    61
    batch:
    62
    sizer: bytes
    63
    max_size: 1_000_000
    64
    min_size: 0
    65
    flush_timeout: 5s
    66
    retry_on_failure:
    67
    enabled: true
    68
    initial_interval: 5s
    69
    max_interval: 30s
    70
    max_elapsed_time: 300s
    71
    service:
    72
    telemetry:
    73
    metrics:
    74
    level: none
    75
    pipelines:
    76
    metrics:
    77
    receivers: [nrpostgresql]
    78
    processors: [batch/metrics]
    79
    exporters: [otlp/newrelic]
    80
    logs:
    81
    receivers: [nrpostgresql]
    82
    processors: [batch]
    83
    exporters: [otlp/newrelic]

    Paramètres de configuration

    Le tableau suivant décrit les principaux paramètres de configuration du récepteur nrpostgresql :

    paramètresDescription
    <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 par exclude_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

  1. Mettez à jour le chemin de configuration pour pointer vers votre nouveau fichier postgresql-config.yaml :
bash
$
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
  1. Validez la configuration du Collector NRDOT pour vous assurer qu'elle est correctement formatée et qu'elle fonctionnera correctement :
bash
$
sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/postgresql-config.yaml

Redémarrer NRDOT Collector

Après avoir configuré le collecteur, redémarrez le service NRDOT Collector pour appliquer les modifications :

bash
$
sudo systemctl restart nrdot-collector

Pour vérifier que le collecteur fonctionne correctement, vérifiez l'état du service :

bash
$
sudo systemctl status nrdot-collector

Conseil

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 :

  1. Allez à https://one.newrelic.com > All Capabilities > Databases.
  2. Dans la liste déroulante Entity type, sélectionnez PostgreSQL instance, puis cliquez sur Apply.
  3. Sélectionnez votre base de données PostgreSQL dans la liste des entités.

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.

Droits d'auteur © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.