• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Instalar e configurar o NRDOT para monitoramento do PostgreSQL com Helm

|View as Markdown (English)

Você pode instalar e configurar o monitoramento do PostgreSQL no Kubernetes usando o chart do Helm postgresql-otel. Opcionalmente, o chart também pode executar um job de configuração que cria a role de monitoramento, suas concessões e a extensão pg_stat_statements para você.

Importante

O chart implanta o coletor como uma implantação do Kubernetes que acessa o PostgreSQL remotamente pela rede, portanto, ele relata apenas métricas do PostgreSQL: nenhuma métrica de host ou de infraestrutura para a máquina em que o PostgreSQL é executado. Ele monitora uma instância do PostgreSQL por release (vários bancos de dados nessa instância são suportados) e não configura o TLS ou provedores de credenciais db_auth, como a autenticação do AWS IAM.

Pré-requisitos em nível de servidor

O PostgreSQL 14 ou mais recente é necessário. Antes de instalar este chart (ou habilitar o job de configuração), os seguintes parâmetros do servidor devem estar configurados. pg_stat_statements não pode ser criado sem shared_preload_libraries, e esse parâmetro requer uma reinicialização, portanto, nada em execução dentro do seu cluster do Kubernetes pode fazer isso por você.

Parâmetro

Valor

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-hospedado: defina-os em postgresql.conf e, em seguida, reinicie o PostgreSQL. Algumas distribuições precisam do pacote postgresql-contrib instalado para que pg_stat_statements esteja disponível.
  • AWS RDS ou Aurora: defina-os no grupo de parâmetros do banco de dados, não em um arquivo de configuração. track_activity_query_size e pg_stat_statements.max são parâmetros estáticos; aplique-os com apply_method: pending-reboot e, em seguida, reinicie a instância. Aplicá-los imediatamente falha com InvalidParameterCombination. Para o Aurora, o nome da família do grupo de parâmetros deve corresponder exatamente à versão principal do seu mecanismo, por exemplo, aurora-postgresql16.

Pré-requisitos

  • Chave de licença da New Relic válida.

  • Helm 3.0 ou posterior, e kubectl configurado para acessar seu cluster do Kubernetes.

  • Conectividade de rede do seu cluster do Kubernetes para o host do PostgreSQL (ou endpoint do RDS) e porta:

    • Auto-hospedado: um caminho roteado para o host do PostgreSQL (VPN, peering ou rede compartilhada), resolução de DNS se for um nome do host, e o pg_hba.conf e o firewall do lado do PostgreSQL devem permitir o IP de origem real da conexão (que pode ser um gateway NAT, não o IP do próprio pod).
    • AWS RDS: emparelhamento de VPC, um transit gateway ou posicionamento em VPC compartilhada com a instância do RDS, e o grupo de segurança do RDS deve permitir a porta do PostgreSQL (5432 por padrão) a partir da origem de saída do cluster.
  • Uma role de monitoramento que você já criou com suas concessões por banco de dados ou credenciais de administrador do PostgreSQL para que o job de configuração do chart possa criá-las para você. Veja Configurar credenciais de monitoramento abaixo.

Crie o namespace

Crie o namespace onde a instalação será realizada. Ele deve existir antes da criação de qualquer secret na próxima etapa, já que helm install --create-namespace cria o namespace apenas durante a etapa final de instalação:

bash
$
kubectl create namespace newrelic

Dica

Defina-o como o namespace padrão para o seu contexto kubectl atual para que não seja necessário passar -n em todos os comandos abaixo:

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

Configure as credenciais de monitoramento

Decida se você deseja que o job de configuração do chart crie a role de monitoramento do PostgreSQL para você e, se não, como você fornecerá suas credenciais:

Configure os valores do Helm

Defina postgresql.topology para corresponder ao seu ambiente:

Valor

Descrição

self-hosted

PostgreSQL auto-hospedado, acessado pela rede.

rds

PostgreSQL ou Aurora no AWS RDS.

postgresql.databases é uma lista obrigatória e não vazia. Ao contrário do MySQL ou do SQL Server, o PostgreSQL não possui um modo de monitoramento de todos os bancos de dados: uma conexão tem como destino um banco de dados por vez, portanto, o receiver deve ser informado sobre quais coletar.

Use o values.yaml que corresponde ao método de credencial escolhido na etapa anterior:

Parâmetro

Descrição

licenseKey

Sua chave de licença New Relic.

otlpEndpoint

O endpoint OTLP/gRPC da sua região, como um

host:port

simples

sem esquema

:

otlp.nr-data.net:4317

(EUA) ou

otlp.eu01.nr-data.net:4317

(UE). Para mais informações, consulte a

documentação dos endpoints OTLP da New Relic

.

postgresql.server

/

postgresql.port

Seu host do PostgreSQL (ou endpoint do RDS) e porta, acessíveis a partir do cluster.

postgresql.databases

Lista obrigatória e não vazia

de bancos de dados para monitorar.

postgresql.excludeDatabases

Bancos de dados excluídos das varreduras de consultas principais e amostras de consultas em todo o cluster. O padrão é

[rdsadmin]

e só é renderizado quando

topology

é

rds

; no RDS, o usuário de monitoramento nunca pode acessar

rdsadmin

, portanto, excluí-lo evita erros de permissão.

setupJob.image.repository

/

setupJob.image.tag

Uma imagem compatível com

psql

usada pelo job de configuração. O chart não inclui

nenhum padrão

, portanto, é necessário fornecer um quando o job de configuração estiver habilitado. A imagem oficial do

postgres

inclui o

psql

e é uma escolha razoável.

setupJob.enableExplainPermissions

Opcional. Também cria a função

otel.explain_statement

SECURITY DEFINER

e concede

EXECUTE

sobre ela, permitindo que o receptor execute

EXPLAIN

em consultas de bloqueio e gravação sem possuir permissões de gravação. Deixá-lo

false

é seguro: o receptor recorre ao

EXPLAIN

inline, portanto, essas instruções simplesmente não obtêm planos de consulta.

setupJob.enablePgvector

Opcional. Também cria a extensão

vector

em cada banco de dados monitorado, para métricas de vetor. As funções de distância

l1

,

hamming

e

jaccard

requerem o pgvector 0.7.0 ou posterior.

Dica

Geralmente, não é necessário definir postgresql.topQueryCollection.explainFunctionName. O próprio padrão do receiver já é otel.explain_statement (a função exata que setupJob.enableExplainPermissions cria), e o chart omite a chave quando ela está vazia, de modo que os dois se alinham sem configuração extra. Defina-o apenas para apontar o receiver para uma função com nome diferente.

Dica

Consulte o values.yaml do chart para ver todas as opções de configuração disponíveis, incluindo postgresql.collectionInterval, os toggles metrics, os blocos topQueryCollection/querySampleCollection e a válvula de escape additionalReceiverConfig.

(Opcional) Monitorar várias instâncias a partir de um release

Em vez de postgresql.*, defina postgresqlMulti.enabled: true para monitorar várias instâncias do PostgreSQL (auto-hospedadas ou RDS) a partir de um único pod de coletor em uma versão. Os dois modos são mutuamente exclusivos: não defina postgresql.server e postgresqlMulti.enabled: true na mesma versão.

As entradas são chamadas de instances, não de databases: cada instância é um servidor PostgreSQL separado e cada uma carrega sua própria lista databases aninhada (os bancos de dados individuais a serem monitorados nessa instância), da mesma forma que postgresql.databases funciona no modo de instância única.

O modo multi-instância não possui um caminho de nome de usuário/senha simples: cada instância precisa de seu próprio secret do Kubernetes com credenciais de monitoramento. Decida se você também deseja que o job de configuração crie cada função de monitoramento para você:

Parâmetro

Descrição

postgresqlMulti.enabled

Defina como

true

para monitorar várias instâncias de uma versão em vez de

postgresql.*

. O padrão é

false

.

postgresqlMulti.topology

self-hosted

ou

rds

, mesmo significado que

postgresql.topology

, compartilhado por todas as instâncias nesta versão.

postgresqlMulti.instances

Lista de instâncias a serem monitoradas. Cada entrada requer um

name

exclusivo,

server

(

port

tem como padrão

5432

),

existingSecret

e uma lista

databases

obrigatória e não vazia

de nomes de bancos de dados nessa instância; adicione

postgresAdmin.existingSecret

por entrada apenas quando

setupJob.enabled

for

true

.

Dica

setupJob.enableExplainPermissions e setupJob.enablePgvector são chaves únicas compartilhadas em cada banco de dados em cada instância; elas não podem ser definidas por instância. As configurações de extração (intervalo de coleta, métricas, topQueryCollection/querySampleCollection) também se aplicam de forma idêntica a cada instância em postgresqlMulti.instances; não há substituição por instância. Utilize additionalReceiverConfig para qualquer elemento que precise ser diferente. O job de configuração é executado uma vez por instância (<release>-setup-<name>) em vez de uma vez por versão.

Instale o Helm chart

  1. Adicione o repositório Helm da New Relic:

    bash
    $
    helm repo add newrelic https://helm-charts.newrelic.com
    $
    helm repo update
  2. Instale o chart usando seu arquivo values.yaml:

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

Verifique a instalação

  1. Verifique se o job de configuração foi concluído (se ativado) e se o pod do coletor está em execução:

    bash
    $
    kubectl get jobs,pods -n newrelic --watch
  2. Execute esta consulta no criador de consulta para confirmar se os dados estão chegando:

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

Encontre e use seus dados

Assim que seus dados estiverem sendo coletados, você poderá acessar o monitoramento abrangente do banco de dados PostgreSQL por meio da interface do New Relic.

Para encontrar a entidade de banco de dados PostgreSQL no New Relic:

  1. Vá para one.newrelic.com > All capabilities > Databases.
  2. Na dropdown Entity type, selecione PostgreSQL instance e clique em Apply.
  3. Selecione seu banco de dados PostgreSQL na lista de entidades.

Introdução ao monitoramento do PostgreSQL com NRDOT

Saiba mais sobre todos os métodos de instalação disponíveis para o monitoramento do PostgreSQL com o New Relic.

Instalação da CLI

Saiba como instalar e configurar o monitoramento do PostgreSQL com um único comando da CLI do New Relic.

Instalação via Ansible

Saiba como instalar e configurar o monitoramento do PostgreSQL em escala com a newrelic.newrelic_install função Ansible.

Instalação via Chef

Aprenda a instalar e configurar o monitoramento do PostgreSQL em escala com o cookbook do Chef newrelic-install.

Copyright © 2026 New Relic Inc.

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