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

Instale e configure o NRDOT para monitoramento do PostgreSQL com Docker

|View as Markdown (English)

Configure o monitoramento do PostgreSQL usando o NRDOT Collector como um contêiner irmão de uma instância do PostgreSQL que já está em execução no Docker.

Dica

Deseja automatizar isso em escala ou executar no Kubernetes? Consulte a instalação do Ansible, a instalação do Chef ou a instalação do Helm chart.

Pré-requisitos

Antes de instalar, certifique-se de ter:

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

Crie um usuário de monitoramento com os privilégios necessários executando SQL no seu contêiner PostgreSQL com docker exec. Substitua <YOUR_POSTGRESQL_CONTAINER_NAME>, <YOUR_SUPERUSER>, <YOUR_DB_USERNAME> e <YOUR_DB_PASSWORD> pelos seus próprios valores.

  1. Crie o usuário de monitoramento, conectando-se como superusuário:

    bash
    $
    docker exec -i <YOUR_POSTGRESQL_CONTAINER_NAME> psql -U <YOUR_SUPERUSER> -d postgres -c "
    $
    CREATE USER <YOUR_DB_USERNAME> WITH LOGIN PASSWORD '<YOUR_DB_PASSWORD>';
    $
    "
  2. Se você estiver no PostgreSQL 15 ou superior, atribua a função para herdar privilégios:

    bash
    $
    docker exec -i <YOUR_POSTGRESQL_CONTAINER_NAME> psql -U <YOUR_SUPERUSER> -d postgres -c "
    $
    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.

  3. Aplique o esquema e as permissões em cada banco de dados que você deseja monitorar. Substitua <DB_NAMES> por uma lista separada por espaços com os nomes dos seus bancos de dados:

    bash
    $
    for db in <DB_NAMES>; do
    $
    docker exec -i <YOUR_POSTGRESQL_CONTAINER_NAME> psql -U <YOUR_SUPERUSER> -d "$db" -c "
    $
    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;
    $
    "
    $
    done
  4. (Opcional) Para coletar métricas de vetor, crie a extensão pgvector em cada banco de dados:

    bash
    $
    for db in <DB_NAMES>; do
    $
    docker exec -i <YOUR_POSTGRESQL_CONTAINER_NAME> psql -U <YOUR_SUPERUSER> -d "$db" -c "CREATE EXTENSION IF NOT EXISTS vector;"
    $
    done

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

  5. (Opcional) Para verificar a conexão e as permissões, é necessário executar:

    bash
    $
    docker exec -i <YOUR_POSTGRESQL_CONTAINER_NAME> psql -U <YOUR_DB_USERNAME> -d <YOUR_DATABASE_NAME> -c "SELECT * FROM pg_stat_statements LIMIT 1;"

    Se o comando for concluído sem erros, o usuário de monitoramento e as permissões estão corretos.

Crie a configuração do Collector NRDOT

Esta configuração concentra-se no monitoramento essencial do PostgreSQL com o receiver nrpostgresql. Execute o seguinte no host do Docker para gerar postgresql-config.yaml em seu diretório atual:

bash
$
cat << 'EOF' > postgresql-config.yaml
$
receivers:
$
nrpostgresql:
$
endpoint: "<YOUR_POSTGRESQL_CONTAINER_NAME>:5432"
$
username: "<YOUR_DB_USERNAME>"
$
password: "<YOUR_DB_PASSWORD>"
$
databases:
$
- <YOUR_DATABASE_NAME>
$
collection_interval: 15s
$
events:
$
db.server.top_query:
$
enabled: true
$
db.server.query_sample:
$
enabled: true
$
db.server.query_plan:
$
enabled: true
$
top_query_collection:
$
max_rows_per_query: 1000
$
top_n_query: 200
$
collection_interval: 60s
$
allowed_comment_keys: [nr_service_guid]
$
query_sample_collection:
$
max_rows_per_query: 1000
$
allowed_comment_keys: [nr_service_guid]
$
$
resource_attributes:
$
db.system.version:
$
enabled: true
$
# Metrics needed for the out-of-the-box dashboard but disabled by default:
$
# see "Available metrics" below for the full default-on/default-off breakdown.
$
metrics:
$
postgresql.database.locks:
$
enabled: true
$
postgresql.deadlocks:
$
enabled: true
$
postgresql.function.calls:
$
enabled: true
$
postgresql.query.conflicts:
$
enabled: true
$
postgresql.sequential_scans:
$
enabled: true
$
postgresql.temp.io:
$
enabled: true
$
postgresql.temp_files:
$
enabled: true
$
$
processors:
$
batch:
$
batch/metrics:
$
send_batch_size: 8192
$
send_batch_max_size: 8192
$
timeout: 10s
$
$
exporters:
$
otlp/newrelic:
$
endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>"
$
headers:
$
api-key: "<YOUR_NEWRELIC_LICENSE_KEY>"
$
compression: gzip
$
sending_queue:
$
enabled: true
$
sizer: bytes
$
queue_size: 100_000_000
$
num_consumers: 10
$
batch:
$
sizer: bytes
$
max_size: 1_000_000
$
min_size: 0
$
flush_timeout: 5s
$
retry_on_failure:
$
enabled: true
$
initial_interval: 5s
$
max_interval: 30s
$
max_elapsed_time: 300s
$
$
service:
$
telemetry:
$
metrics:
$
level: none
$
pipelines:
$
metrics:
$
receivers: [nrpostgresql]
$
processors: [batch/metrics]
$
exporters: [otlp/newrelic]
$
logs:
$
receivers: [nrpostgresql]
$
processors: [batch]
$
exporters: [otlp/newrelic]
$
EOF

Parâmetro de configuração [#configuration-parameters]

ParâmetroDescrição
<YOUR_POSTGRESQL_CONTAINER_NAME>O nome (ou nome do host resolvível por DNS do Docker) do seu contêiner PostgreSQL em execução.
<YOUR_DB_USERNAME>O usuário de monitoramento que você criou em Configurar usuário e permissões do banco de dados.
<YOUR_DB_PASSWORD>A senha do usuário de monitoramento que você criou em Configurar usuário e permissões do banco de dados.
databasesA lista de nomes de bancos de dados para monitorar. Cada um deve ter o esquema otel e as permissões aplicadas.
<YOUR_NEWRELIC_OTLP_ENDPOINT>Seu endpoint OTLP da New Relic. Para mais informações, consulte os endpoints OTLP da New Relic.
<YOUR_NEWRELIC_LICENSE_KEY>Sua chave de licença da New Relic.

Inicie o contêiner do Collector NRDOT

Execute o coletor na mesma rede Docker que o seu contêiner PostgreSQL para que ele possa resolver <YOUR_POSTGRESQL_CONTAINER_NAME> pelo nome do contêiner:

bash
$
docker run -d \
>
--name nrdot-collector \
>
--network <YOUR_DOCKER_NETWORK> \
>
-v "$PWD/postgresql-config.yaml:/etc/nrdot-collector/postgresql-config.yaml" \
>
newrelic/nrdot-collector:latest \
>
--config /etc/nrdot-collector/postgresql-config.yaml

Dica

Encontre a rede do seu contêiner PostgreSQL com docker inspect <YOUR_POSTGRESQL_CONTAINER_NAME> --format '{{json .NetworkSettings.Networks}}'. Se ele ainda não estiver em uma rede compartilhada definida pelo usuário, crie uma e conecte ambos os contêineres a ela:

bash
$
docker network create <YOUR_DOCKER_NETWORK>
$
docker network connect <YOUR_DOCKER_NETWORK> <YOUR_POSTGRESQL_CONTAINER_NAME>

Confirme se o contêiner do coletor está em execução:

bash
$
docker ps --filter name=nrdot-collector

Se não estiver em execução, verifique seus logs em busca de erros. As causas mais comuns são problemas de indentação YAML em postgresql-config.yaml ou um contêiner PostgreSQL inacessível:

bash
$
docker logs nrdot-collector

Dica

Após alterar postgresql-config.yaml, reinicie o contêiner para aplicar suas alterações:

bash
$
docker restart nrdot-collector

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.

    Para confirmar que os dados estão chegando, execute esta consulta no criador de consulta:

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

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 auto-hospedada

Saiba como configurar o monitoramento do PostgreSQL em servidores físicos, máquinas virtuais e instalações autônomas.

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.

Instalação do chart do Helm

Saiba como instalar e configurar o monitoramento do PostgreSQL no Kubernetes com o chart do Helm postgresql-otel.

Copyright © 2026 New Relic Inc.

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