Configure o monitoramento do PostgreSQL usando o NRDOT Collector para instâncias do AWS RDS PostgreSQL. Os ambientes RDS têm considerações específicas para extensões e grupos de parâmetros.
Instalação guiada
Para instalar pela interface da New Relic, acesse one.newrelic.com > Integrations & Agents > PostgreSQL (Database 360). Esta página aborda apenas a instalação manual.
Pré-requisitos
Antes de instalar, certifique-se de ter:
PostgreSQL
14e superiorUma chave de licença da New Relic.
Conectividade de rede entre o host onde o Collector NRDOT é instalado e a sua instância do RDS PostgreSQL.
Conectividade de rede para a documentação dos endpoints OTLP da New Relic
Credenciais do usuário mestre do RDS.
Para versões suportadas do PostgreSQL, permissões necessárias e parâmetros de servidor recomendados, consulte Compatibilidade e pré-requisitos.
Configurar o NRDOT Collector
Instale o NRDOT Collector em um sistema que possa se conectar à instância do RDS:
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 do RDS PostgreSQL.
Para criar o usuário de monitoramento e as concessões:
- Conecte-se à instância do RDS como o usuário mestre:
$psql --host=<YOUR_RDS_ENDPOINT> --dbname=postgres --port=5432 --username=<YOUR_MASTER_USERNAME>- Crie o usuário de monitoramento:
CREATE USER <YOUR_DB_USERNAME> WITH LOGIN PASSWORD '<YOUR_DB_PASSWORD>';- 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
pgvectorem 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:
$psql --username=<YOUR_DB_USERNAME> --host=<YOUR_RDS_ENDPOINT> --port=5432 --dbname=<YOUR_DATABASE_NAME> --command '\conninfo'$ psql --username=<YOUR_DB_USERNAME> --host=<YOUR_RDS_ENDPOINT> --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=<YOUR_RDS_ENDPOINT> --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=<YOUR_RDS_ENDPOINT> --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 RDS 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.
- Crie um arquivo de configuração chamado
postgresql-config.yaml:
$sudo nano /etc/nrdot-collector/postgresql-config.yamlAdicione a seguinte configuração ao arquivo
postgresql-config.yamlcriado na etapa anterior.postgresql-config.yaml1receivers:2nrpostgresql:3endpoint: "mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com:5432"4username: "newrelic"5password: "YOUR_PASSWORD"6databases:7- YOUR_DATABASE_NAME8# top_query/query_sample scan pg_stat_statements/pg_stat_activity cluster-wide9# regardless of the databases list above; on RDS/Aurora, exclude reserved10# databases the monitoring user can never reach.11exclude_databases:12- rdsadmin13collection_interval: 15s14events:15db.server.top_query:16enabled: true17db.server.query_sample:18enabled: true19db.server.query_plan:20enabled: true21top_query_collection:22max_rows_per_query: 100023top_n_query: 20024collection_interval: 60s25allowed_comment_keys: [nr_service_guid]26query_sample_collection:27max_rows_per_query: 100028allowed_comment_keys: [nr_service_guid]29resource_attributes:30db.system.version:31enabled: true32# Metrics needed for the out-of-the-box dashboard but disabled by default:33# see "Available metrics" below for the full default-on/default-off breakdown.34metrics:35postgresql.database.locks:36enabled: true37postgresql.deadlocks:38enabled: true39postgresql.function.calls:40enabled: true41postgresql.query.conflicts:42enabled: true43postgresql.sequential_scans:44enabled: true45postgresql.temp.io:46enabled: true47postgresql.temp_files:48enabled: true49processors:50batch:51batch/metrics:52send_batch_size: 819253send_batch_max_size: 819254timeout: 10s55exporters:56otlp/newrelic:57endpoint: "https://otlp.nr-data.net:4318"58headers:59api-key: "YOUR_LICENSE_KEY"60compression: gzip61sending_queue:62enabled: true63sizer: bytes64queue_size: 100_000_00065num_consumers: 1066batch:67sizer: bytes68max_size: 1_000_00069min_size: 070flush_timeout: 5s71retry_on_failure:72enabled: true73initial_interval: 5s74max_interval: 30s75max_elapsed_time: 300s76service:77telemetry:78metrics:79level: none80pipelines:81metrics:82receivers: [nrpostgresql]83processors: [batch/metrics]84exporters: [otlp/newrelic]85logs:86receivers: [nrpostgresql]87processors: [batch]88exporters: [otlp/newrelic]Parâmetro de configuração
A tabela a seguir descreve os principais parâmetros de configuração para o receptor
nrpostgresql:Parâmetro Descrição <YOUR_RDS_ENDPOINT>Insira o nome do host do endpoint da instância RDS. <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 porexclude_databases.exclude_databasesBancos de dados excluídos das estatísticas, amostras de consulta e principais consultas. Padrão: []. Use isso para bancos de dados internos de serviços gerenciados (comordsadmin) 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
- Atualize o caminho da configuração para apontar para seu novo arquivo
postgresql-config.yaml:
$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- Valide a configuração do Collector NRDOT para garantir que esteja formatada corretamente e funcione adequadamente:
$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/postgresql-config.yamlReiniciar o NRDOT Collector
Após configurar o coletor, reinicie o serviço NRDOT Collector para aplicar as alterações:
$sudo systemctl restart nrdot-collectorPara verificar se o coletor está funcionando corretamente, verifique o status do serviço:
$sudo systemctl status nrdot-collectorDica
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 sua entidade de banco de dados RDS PostgreSQL no New Relic:
- Vá para https://one.newrelic.com > All Capabilities > Databases.
- Na dropdown Entity type, selecione PostgreSQL instance e clique em Apply.
- Selecionar o banco de dados RDS PostgreSQL na lista de entidades.
Documentação relacionada
Instrumentação em ambientes auto-hospedados
Saiba como configurar o monitoramento do PostgreSQL em ambientes auto-hospedados com o New Relic.
Referência de métricas
Saiba mais sobre as métricas disponíveis coletadas pelo NRDOT Collector.
Guia de solução de problemas
Saiba como solucionar problemas comuns com o monitoramento do PostgreSQL.