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

|View as Markdown (English)

Configure o monitoramento do PostgreSQL usando o NRDOT Collector em ambientes auto-hospedados, incluindo servidores físicos, máquinas virtuais e instalações autônomas.

Pré-requisitos

Antes de instalar, certifique-se de ter:

Configurar o NRDOT Collector

Instale o NRDOT Collector no sistema:

Configurar usuário do banco de dados e concessões

Crie um usuário de monitoramento com os privilégios necessários para a sua instância PostgreSQL.

Para criar o usuário de monitoramento e as concessões:

  1. Conecte-se à sua instância do PostgreSQL como um superusuário ou outro usuário com as permissões necessárias:
bash
$
sudo -u postgres psql --dbname=postgres --port=5432
  1. Crie o usuário de monitoramento:
CREATE USER <YOUR_DB_USERNAME> WITH LOGIN PASSWORD '<YOUR_DB_PASSWORD>';
  1. Conceda a associação ao perfil do usuário de monitoramento conforme necessário:
  • Para o PostgreSQL 15 e superior, atribua a função para herdar privilégios:
ALTER ROLE <YOUR_DB_USERNAME> INHERIT;

Dica

No PostgreSQL 14, o usuário de monitoramento herda os privilégios por padrão, portanto, esta etapa pode ser ignorada.

  • Crie o seguinte esquema e as seguintes concessões em todos os bancos de dados a serem monitorados:
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;
  • (Opcional) Para coletar métricas de vetor, crie a extensão pgvector em cada banco de dados:
CREATE EXTENSION IF NOT EXISTS vector;

As funções de distância l1, hamming e jaccard exigem a versão 0.7.0 ou superior do pgvector.

  • (Opcional) Para verificar a conexão e as permissões, é necessário executar:
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"

Se cada comando for concluído sem erro, o usuário de monitoramento, o host e a porta estarão todos corretos.

Configurar o NRDOT Collector

Configure o NRDOT Collector com suas configurações específicas do PostgreSQL.

Esta configuração concentra-se no monitoramento essencial do PostgreSQL apenas com o receptor nrpostgresql.

configuração completa

Esta configuração de baseline captura métricas essenciais. Para ver o catálogo completo de métricas, consulte a referência de configuração.

  1. Crie um arquivo de configuração chamado postgresql-config.yaml:
bash
$
sudo nano /etc/nrdot-collector/postgresql-config.yaml
  1. Adicione a seguinte configuração ao arquivo postgresql-config.yaml criado na etapa anterior.

    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]

    Parâmetro de configuração

    A tabela a seguir descreve os principais parâmetros de configuração para o receptor nrpostgresql:

    ParâmetroDescrição
    <YOUR_DB_HOST>Insira o nome do host do banco de dados PostgreSQL.
    <YOUR_DB_PORT>Insira a porta do banco de dados PostgreSQL.
    <YOUR_DB_USERNAME>Insira seu nome de usuário do banco de dados.
    <YOUR_DB_PASSWORD>Insira a senha do seu banco de dados.
    <YOUR_DATABASE_NAME>Insira o nome do banco de dados a ser monitorado.
    databasesLista de bancos de dados para coletar estatísticas. Padrão: [] (todos os bancos de dados não modelo). Aplica-se apenas a métricas. Amostras de consulta e principais consultas ignoram esta lista e são filtradas exclusivamente por exclude_databases.
    exclude_databasesBancos de dados excluídos de estatísticas, amostras de consulta e principais consultas. Padrão: []. Use isso para bancos de dados internos que seu usuário de monitoramento não consegue acessar.
    <YOUR_NEWRELIC_OTLP_ENDPOINT>Insira o endpoint OTLP da New Relic. Para mais informações, consulte os endpoints OTLP da New Relic.
    <YOUR_NEWRELIC_LICENSE_KEY>Insira sua chave de licença do New Relic.
    collection_intervalInsira o intervalo entre as coletas de métrica. Padrão: 15s.

    Dica

    Você também pode:

    Configurar múltiplos receptores: para monitorar múltiplas instâncias do PostgreSQL a partir de um coletor. Vincule seu banco de dados PostgreSQL ao APM: para correlacionar o desempenho do aplicativo com as operações do banco de dados. Isso permite visualizar exatamente quais aplicativos estão gerando workloads específicas de banco de dados. Planos de consulta para instruções de gravação: para coletar planos de consulta para instruções de bloqueio ou gravação sem conceder acesso de gravação ao usuário de monitoramento. Configurar o gerenciamento de segredos: para gerenciar com segurança informações confidenciais, como credenciais de banco de dados. Isso ajuda a aprimorar a segurança do seu ambiente de monitoramento ao evitar a inserção direta de dados sensíveis nos arquivos de configuração.

Validar a configuração do NRDOT Collector

  1. Atualize o caminho da configuração para apontar para seu novo arquivo 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. Valide a configuração do Collector NRDOT para garantir que esteja formatada corretamente e funcione adequadamente:
bash
$
sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/postgresql-config.yaml

Reiniciar o NRDOT Collector

Após configurar o coletor, reinicie o serviço NRDOT Collector para aplicar as alterações:

bash
$
sudo systemctl restart nrdot-collector

Para verificar se o coletor está funcionando corretamente, verifique o status do serviço:

bash
$
sudo systemctl status nrdot-collector

Dica

Sempre reinicie o Collector NRDOT após fazer alterações de configuração para garantir que as novas configurações entrem em vigor.

Encontre e use seus dados

As amostras de consulta e as principais consultas chegam como eventos de log (event.name = 'db.server.query_sample' / 'db.server.top_query', db.system.name = 'postgresql'). As métricas chegam no namespace postgresql.*.

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

  1. Vá para https://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.

Vincular seu banco de dados PostgreSQL ao APM

Saiba como correlacionar o desempenho do aplicativo com as operações do banco de dados.

Guia de solução de problemas

Saiba como solucionar problemas comuns com o monitoramento do PostgreSQL.

Referência de métricas

Saiba mais sobre as métricas disponíveis coletadas pelo NRDOT Collector.

Copyright © 2026 New Relic Inc.

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