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.
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.
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
- Auto-hébergé: définissez-les dans
postgresql.conf, puis redémarrez PostgreSQL. Certaines distributions nécessitent que le packagepostgresql-contribsoit installé pour quepg_stat_statementssoit 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_sizeetpg_stat_statements.maxsont des paramètres statiques ; appliquez-les avecapply_method: pending-reboot, puis redémarrez l’instance. Leur application immédiate échoue avecInvalidParameterCombination. Pour Aurora, le nom de la famille de groupes de paramètres doit correspondre exactement à la version majeure de votre moteur, par exempleaurora-postgresql16.
Prérequis
Clé de licence New Relic valide.
Helm 3.0 ou version ultérieure, et
kubectlconfiguré 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.confcô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 (
5432par défaut) depuis la source de sortie du cluster.
- 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
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 :
$kubectl create namespace newrelicConseil
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 :
$kubectl config set-context --current --namespace=newrelicConfigurez 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 |
|---|---|
| PostgreSQL auto-hébergé, accessible via le réseau. |
| 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 |
|---|---|
| Votre clé de licence New Relic. |
| Le point de terminaison OTLP/gRPC de votre région, sous la forme d’un
brut sans schéma :
(US) ou
(EU). Pour plus d’informations, consultez la documentation sur les points de terminaison OTLP New Relic . |
/
| Votre hôte (ou point de terminaison RDS) et port PostgreSQL, accessibles depuis le cluster. |
| Liste requise, non vide de bases de données à monitorer. |
| 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
, et n’est rendue que lorsque
est
; sur RDS, l’utilisateur de monitoring ne peut jamais atteindre
, donc l’exclure évite les erreurs d’autorisation. |
/
| Une image compatible avec
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
officielle intègre
et constitue un choix judicieux. |
| Facultatif. Crée également la fonction
et accorde
sur celle-ci, permettant au Récepteur d’exécuter
sur les requêtes de verrouillage et d’écriture sans détenir de droits d’écriture. Le laisser
est sans risque : le Récepteur se rabat sur
en ligne, de sorte que ces instructions n’obtiennent tout simplement pas de plans de requête. |
| Facultatif. Crée également l’extension
dans chaque base de données monitorée, pour les métriques vectorielles. Les fonctions de distance
,
, et
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 |
|---|---|
| Définissez sur
pour monitorer plusieurs instances à partir d’une seule sortie au lieu de
. Par défaut
. |
|
ou
, même signification que
, partagé par chaque instance dans cette sortie. |
| Liste des instances à monitorer. Chaque entrée nécessite un
unique,
(
est par défaut
),
, et une liste
requise, non vide de noms de bases de données sur cette instance ; ajoutez
par entrée uniquement lorsque
est
. |
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
Ajouter le dépôt Helm New Relic :
bash$helm repo add newrelic https://helm-charts.newrelic.com$helm repo updateInstallez 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
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 --watchExécutez cette requête dans le générateur de requêtes pour confirmer que les données arrivent :
SELECT count(*) FROM MetricWHERE 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 :
- Allez à 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
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.