• /
  • 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

Installer & configurer NRDOT pour le monitoring de PostgreSQL avec Helm

|View as Markdown (English)

Vous pouvez installer et configurer le monitoring de PostgreSQL sur Kubernetes à l’aide du chart Helm postgresql-otel. En option, le chart peut également exécuter un job de configuration qui crée le rôle de monitoring, ses privilèges, et l’extension pg_stat_statements pour vous.

Important

Le chart déploie le collecteur en tant que déploiement Kubernetes qui accède à PostgreSQL à distance via le réseau, il ne rapporte donc que les métriques PostgreSQL : pas de métriques d’hôte ou d’infrastructure pour la machine sur laquelle PostgreSQL s’exécute. Il monitore une instance PostgreSQL par sortie (plusieurs bases de données sur cette instance sont prises en charge), et il ne configure pas TLS ou les fournisseurs d’informations d’identification db_auth tels que l’authentification AWS IAM.

Prérequis au niveau du serveur

PostgreSQL 14 ou version ultérieure est requis. Avant d’installer ce chart (ou d’activer le job de configuration), les paramètres de serveur suivants doivent être en place. pg_stat_statements ne peut pas être créé sans shared_preload_libraries, et ce paramètre nécessite un redémarrage, donc rien de ce qui s’exécute dans votre cluster Kubernetes ne peut le faire pour vous.

paramètres

Valeur

shared_preload_libraries

pg_stat_statements

pg_stat_statements.track

ALL

pg_stat_statements.max

10000

pg_stat_statements.save

on

track_activity_query_size

4096

track_functions

all

  • Auto-hébergé: définissez-les dans postgresql.conf, puis redémarrez PostgreSQL. Certaines distributions nécessitent que le package postgresql-contrib soit installé pour que pg_stat_statements soit disponible.
  • AWS RDS ou Aurora: définissez-les dans le groupe de paramètres de la base de données, et non dans un fichier de configuration. track_activity_query_size et pg_stat_statements.max sont des paramètres statiques ; appliquez-les avec apply_method: pending-reboot, puis redémarrez l’instance. Leur application immédiate échoue avec InvalidParameterCombination. Pour Aurora, le nom de la famille de groupes de paramètres doit correspondre exactement à la version majeure de votre moteur, par exemple aurora-postgresql16.

Prérequis

  • Clé de licence New Relic valide.

  • Helm 3.0 ou version ultérieure, et kubectl configuré pour accéder à votre cluster Kubernetes.

  • Connectivité réseau depuis votre cluster Kubernetes vers l'hôte PostgreSQL (ou le point de terminaison RDS) et le port :

    • Auto-hébergé : un chemin routé vers l’hôte PostgreSQL (VPN, peering, ou réseau partagé), une résolution DNS s’il s’agit d’un nom d’hôte, et le pg_hba.conf côté PostgreSQL et le pare-feu doivent autoriser l’adresse IP source réelle de la connexion (qui peut être un gateway NAT, et non l’adresse IP du pod elle-même).
    • AWS RDS : un peering de VPC, un gateway de transit ou un placement dans un VPC partagé avec l’instance RDS, et le groupe de sécurité RDS doit autoriser le port PostgreSQL (5432 par défaut) depuis la source de sortie du cluster.
  • Soit un rôle de monitoring que vous avez déjà créé avec ses autorisations par base de données, soit des identifiants d’administrateur PostgreSQL afin que le job de configuration du chart puisse les créer pour vous. Voir Configurer les identifiants de monitoring ci-dessous.

Créer l’espace de nommage

Créez l’espace de nommage dans lequel vous effectuerez l’installation. Il doit exister avant que vous ne créiez des secrets à l’étape suivante, car helm install --create-namespace ne crée l’espace de nommage que lors de l’étape d’installation finale :

bash
$
kubectl create namespace newrelic

Conseil

Définissez-le comme espace de nommage par défaut pour votre contexte kubectl actuel afin de ne pas avoir à passer -n à chaque commande ci-dessous :

bash
$
kubectl config set-context --current --namespace=newrelic

Configurez les identifiants de monitoring

Décidez si vous souhaitez que le job de configuration du chart crée le rôle de monitoring PostgreSQL pour vous, et si ce n’est pas le cas, comment vous fournirez ses identifiants :

Configurez les valeurs Helm

Configurez postgresql.topology pour correspondre à votre environnement :

Valeur

Description

self-hosted

PostgreSQL auto-hébergé, accessible via le réseau.

rds

PostgreSQL ou Aurora sur AWS RDS.

postgresql.databases est une liste obligatoire, non vide. Contrairement à MySQL ou SQL Server, PostgreSQL ne dispose pas de mode pour monitorer chaque base de données : une connexion cible une base de données à la fois, il faut donc indiquer au Récepteur lesquelles scraper.

Utilisez le values.yaml qui correspond à la méthode d'identification que vous avez choisie à l'étape précédente :

paramètres

Description

licenseKey

Votre clé de licence New Relic.

otlpEndpoint

Le point de terminaison OTLP/gRPC de votre région, sous la forme d’un

host:port

brut

sans schéma

:

otlp.nr-data.net:4317

(US) ou

otlp.eu01.nr-data.net:4317

(EU). Pour plus d’informations, consultez la

documentation sur les points de terminaison OTLP New Relic

.

postgresql.server

/

postgresql.port

Votre hôte (ou point de terminaison RDS) et port PostgreSQL, accessibles depuis le cluster.

postgresql.databases

Liste requise, non vide

de bases de données à monitorer.

postgresql.excludeDatabases

Bases de données exclues des analyses de top-requête et d’échantillon de requête à l’échelle du cluster. La valeur par défaut est

[rdsadmin]

, et n’est rendue que lorsque

topology

est

rds

; sur RDS, l’utilisateur de monitoring ne peut jamais atteindre

rdsadmin

, donc l’exclure évite les erreurs d’autorisation.

setupJob.image.repository

/

setupJob.image.tag

Une image compatible avec

psql

utilisée par le job de configuration. Le chart n’inclut

aucune valeur par défaut

, vous devez donc en fournir une lorsque le job de configuration est activé. L’image

postgres

officielle intègre

psql

et constitue un choix judicieux.

setupJob.enableExplainPermissions

Facultatif. Crée également la fonction

otel.explain_statement

SECURITY DEFINER

et accorde

EXECUTE

sur celle-ci, permettant au Récepteur d’exécuter

EXPLAIN

sur les requêtes de verrouillage et d’écriture sans détenir de droits d’écriture. Le laisser

false

est sans risque : le Récepteur se rabat sur

EXPLAIN

en ligne, de sorte que ces instructions n’obtiennent tout simplement pas de plans de requête.

setupJob.enablePgvector

Facultatif. Crée également l’extension

vector

dans chaque base de données monitorée, pour les métriques vectorielles. Les fonctions de distance

l1

,

hamming

, et

jaccard

nécessitent pgvector 0.7.0 ou une version ultérieure.

Conseil

Vous n’avez généralement pas besoin de définir postgresql.topQueryCollection.explainFunctionName. La valeur par défaut du Récepteur est déjà otel.explain_statement (la fonction exacte que setupJob.enableExplainPermissions crée), et le chart omet la clé lorsqu’elle est vide, de sorte que les deux s’alignent sans configuration supplémentaire. Définissez-le uniquement pour pointer le Récepteur vers une fonction nommée différemment.

Conseil

Consultez le fichier values.yaml du chart pour toutes les options de configuration disponibles, y compris postgresql.collectionInterval, les bascules metrics, les blocs topQueryCollection/querySampleCollection, et l’échappatoire additionalReceiverConfig.

(Facultatif) Monitorer plusieurs instances à partir d’une seule sortie

Au lieu de postgresql.*, définissez postgresqlMulti.enabled: true pour monitorer plusieurs instances PostgreSQL (auto-hébergées ou RDS) à partir d’un seul pod collecteur dans une seule sortie. Les deux modes sont mutuellement exclusifs : ne définissez pas postgresql.server et postgresqlMulti.enabled: true dans la même sortie.

Les entrées sont appelées instances, et non databases: chaque instance est un serveur PostgreSQL distinct, et chacune possède sa propre liste databases imbriquée (les bases de données individuelles à monitorer sur cette instance), de la même manière que postgresql.databases fonctionne en mode instance unique.

Le mode multi-instance n’a pas de chemin nom d’utilisateur / mot de passe en clair : chaque instance a besoin de son propre secret Kubernetes avec des identifiants de monitoring. Décidez si vous souhaitez également que la tâche de configuration crée chaque rôle de monitoring pour vous :

paramètres

Description

postgresqlMulti.enabled

Définissez sur

true

pour monitorer plusieurs instances à partir d’une seule sortie au lieu de

postgresql.*

. Par défaut

false

.

postgresqlMulti.topology

self-hosted

ou

rds

, même signification que

postgresql.topology

, partagé par chaque instance dans cette sortie.

postgresqlMulti.instances

Liste des instances à monitorer. Chaque entrée nécessite un

name

unique,

server

(

port

est par défaut

5432

),

existingSecret

, et une liste

databases

requise, non vide

de noms de bases de données sur cette instance ; ajoutez

postgresAdmin.existingSecret

par entrée uniquement lorsque

setupJob.enabled

est

true

.

Conseil

setupJob.enableExplainPermissions et setupJob.enablePgvector sont des bascules uniques partagées entre chaque base de données dans chaque instance ; elles ne peuvent pas être définies par instance. Les paramètres de scraping (intervalle de collecte, métriques, topQueryCollection/querySampleCollection) s’appliquent également de manière identique à chaque instance dans postgresqlMulti.instances; il n’y a aucune surcharge par instance. Utilisez additionalReceiverConfig pour tout ce qui doit différer. Le job de configuration s’exécute une fois par instance (<release>-setup-<name>) plutôt qu’une fois par sortie.

Installer le chart Helm

  1. Ajouter le dépôt Helm New Relic :

    bash
    $
    helm repo add newrelic https://helm-charts.newrelic.com
    $
    helm repo update
  2. Installez le chart à l'aide de votre fichier values.yaml :

    bash
    $
    helm upgrade --install postgresql-otel newrelic/postgresql-otel \
    >
    -n newrelic \
    >
    --create-namespace \
    >
    -f values.yaml

Vérifier l'installation

  1. Vérifiez que la tâche de configuration est terminée (si elle est activée), et que le pod du collecteur est en cours d’exécution :

    bash
    $
    kubectl get jobs,pods -n newrelic --watch
  2. Exécutez cette requête dans le générateur de requêtes pour confirmer que les données arrivent :

    SELECT count(*) FROM Metric
    WHERE metricName LIKE 'postgresql.%'
    AND instrumentation.provider = 'opentelemetry'
    SINCE 10 minutes ago

Trouvez et utilisez vos données

Une fois vos données collectées, vous pouvez accéder à un monitoring complet de la base de données PostgreSQL via l'UI de New Relic.

Pour trouver votre entité de base de données PostgreSQL dans New Relic :

  1. Allez à 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.

Introduction au monitoring de PostgreSQL avec NRDOT

Découvrez toutes les méthodes d’installation disponibles pour le monitoring de PostgreSQL avec New Relic.

Installation via la CLI

Découvrez comment installer et configurer le monitoring de PostgreSQL avec une seule commande CLI New Relic.

Installation via Ansible

Découvrez comment installer et configurer le monitoring PostgreSQL à grande échelle avec le newrelic.newrelic_install rôle Ansible.

Installation via Chef

Découvrez comment installer et configurer le monitoring PostgreSQL à grande échelle avec le cookbook Chef newrelic-install.

Droits d'auteur © 2026 New Relic Inc.

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