• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

AWS RDS를 사용한 PostgreSQL 모니터링을 위한 NRDOT 설치 및 구성

|View as Markdown (English)

AWS RDS PostgreSQL 인스턴스용 NRDOT Collector를 사용하여 PostgreSQL 모니터링을 설정하십시오. RDS 환경에는 확장 및 파라미터 그룹에 대한 특정 고려 사항이 있습니다.

전제 조건

설치하기 전에 다음을 갖추고 있는지 확인하십시오:

  • PostgreSQL 14 이상

  • New Relic 라이센스 키 .

  • NRDOT Collector를 설치한 호스트와 RDS PostgreSQL 인스턴스 간의 네트워크 연결.

  • 뉴렐릭 OTLP 엔드포인트 문서에 대한 네트워크 연결

  • RDS 마스터 사용자 크리덴셜.

    지원되는 PostgreSQL 버전, 필수 권한 및 권장 서버 파라미터에 대한 자세한 내용은 호환성 및 전제 조건을 참조하십시오.

NRDOT Collector 설정

RDS 인스턴스에 연결할 수 있는 시스템에 NRDOT Collector를 설치하십시오.

데이터베이스 사용자 및 권한 설정

RDS PostgreSQL 인스턴스에 필요한 권한을 가진 모니터링 사용자를 생성하십시오.

모니터링 사용자 및 권한을 생성하려면:

  1. 마스터 사용자로 RDS 인스턴스에 연결하십시오:

    bash
    $
    psql --host=<YOUR_RDS_ENDPOINT> --dbname=postgres --port=5432 --username=<YOUR_MASTER_USERNAME>
  2. 모니터링 사용자를 생성하십시오:

    CREATE USER <YOUR_DB_USERNAME> WITH LOGIN PASSWORD '<YOUR_DB_PASSWORD>';
  3. 필요에 따라 모니터링 사용자 역할 멤버십을 부여하십시오:

  • PostgreSQL 15 이상을 사용하는 경우, 권한을 상속하도록 역할을 할당하십시오:

    ALTER ROLE <YOUR_DB_USERNAME> INHERIT;

    팁

    PostgreSQL 14를 사용하는 경우 모니터링 사용자가 기본적으로 권한을 상속하므로 이 단계를 건너뛸 수 있습니다.

  • 모니터링하려는 모든 데이터베이스에 다음 스키마와 권한을 생성합니다:

    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;
  • (선택 사항) 벡터 메트릭을 수집하려면 각 데이터베이스에 pgvector 확장을 생성하십시오:

    CREATE EXTENSION IF NOT EXISTS vector;

    l1, hamming 및 jaccard 거리 함수에는 pgvector 버전 0.7.0 이상이 필요합니다.

  • (선택 사항) 연결 및 권한을 확인하려면 다음을 실행하십시오:

    bash
    $
    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"

    각 명령이 오류 없이 완료되면 모니터링 사용자, 호스트 및 포트가 모두 올바른 것입니다.

NRDOT Collector구성

RDS PostgreSQL 특정 설정으로 NRDOT Collector를 구성하십시오.

이 설정은 nrpostgresql 수신기만 사용하여 필수적인 PostgreSQL 모니터링에 중점을 둡니다.

전체 설정

이 기준 설정은 필수 메트릭을 수집합니다. 전체 메트릭 카탈로그를 보려면 설정 참조를 참조하십시오.

  1. 이름이 postgresql-config.yaml인 설정 파일을 생성합니다:

    bash
    $
    sudo nano /etc/nrdot-collector/postgresql-config.yaml
  2. 이전 단계에서 생성한 postgresql-config.yaml 파일에 다음 설정을 추가하십시오.

    postgresql-config.yaml
    1
    receivers:
    2
    nrpostgresql:
    3
    endpoint: "mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com:5432"
    4
    username: "newrelic"
    5
    password: "YOUR_PASSWORD"
    6
    databases:
    7
    - YOUR_DATABASE_NAME
    8
    # top_query/query_sample scan pg_stat_statements/pg_stat_activity cluster-wide
    9
    # regardless of the databases list above; on RDS/Aurora, exclude reserved
    10
    # databases the monitoring user can never reach.
    11
    exclude_databases:
    12
    - rdsadmin
    13
    collection_interval: 15s
    14
    events:
    15
    db.server.top_query:
    16
    enabled: true
    17
    db.server.query_sample:
    18
    enabled: true
    19
    db.server.query_plan:
    20
    enabled: true
    21
    top_query_collection:
    22
    max_rows_per_query: 1000
    23
    top_n_query: 200
    24
    collection_interval: 60s
    25
    allowed_comment_keys: [nr_service_guid]
    26
    query_sample_collection:
    27
    max_rows_per_query: 1000
    28
    allowed_comment_keys: [nr_service_guid]
    29
    resource_attributes:
    30
    db.system.version:
    31
    enabled: true
    32
    # 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.
    34
    metrics:
    35
    postgresql.database.locks:
    36
    enabled: true
    37
    postgresql.deadlocks:
    38
    enabled: true
    39
    postgresql.function.calls:
    40
    enabled: true
    41
    postgresql.query.conflicts:
    42
    enabled: true
    43
    postgresql.sequential_scans:
    44
    enabled: true
    45
    postgresql.temp.io:
    46
    enabled: true
    47
    postgresql.temp_files:
    48
    enabled: true
    49
    processors:
    50
    batch:
    51
    batch/metrics:
    52
    send_batch_size: 8192
    53
    send_batch_max_size: 8192
    54
    timeout: 10s
    55
    exporters:
    56
    otlp/newrelic:
    57
    endpoint: "https://otlp.nr-data.net:4318"
    58
    headers:
    59
    api-key: "YOUR_LICENSE_KEY"
    60
    compression: gzip
    61
    sending_queue:
    62
    enabled: true
    63
    sizer: bytes
    64
    queue_size: 100_000_000
    65
    num_consumers: 10
    66
    batch:
    67
    sizer: bytes
    68
    max_size: 1_000_000
    69
    min_size: 0
    70
    flush_timeout: 5s
    71
    retry_on_failure:
    72
    enabled: true
    73
    initial_interval: 5s
    74
    max_interval: 30s
    75
    max_elapsed_time: 300s
    76
    service:
    77
    telemetry:
    78
    metrics:
    79
    level: none
    80
    pipelines:
    81
    metrics:
    82
    receivers: [nrpostgresql]
    83
    processors: [batch/metrics]
    84
    exporters: [otlp/newrelic]
    85
    logs:
    86
    receivers: [nrpostgresql]
    87
    processors: [batch]
    88
    exporters: [otlp/newrelic]

    구성 매개변수

    다음 표에서는 nrpostgresql 수신자에 대한 주요 설정 초기화에 대해 설명합니다.

    매개변수설명
    <YOUR_RDS_ENDPOINT>RDS 인스턴스 엔드포인트 호스트명을 입력하십시오.
    <YOUR_DB_PORT>PostgreSQL 데이터베이스 포트를 입력하십시오.
    <YOUR_DB_USERNAME>데이터베이스 사용자 이름을 입력하세요.
    <YOUR_DB_PASSWORD>데이터베이스 비밀번호를 입력하세요.
    <YOUR_DATABASE_NAME>모니터링할 데이터베이스의 이름을 입력합니다.
    databases통계를 수집할 데이터베이스 목록입니다. 기본값: [] (모든 비템플릿 데이터베이스). 메트릭에만 적용됩니다. 쿼리 샘플 및 상위 쿼리는 이 목록을 무시하며 오직 exclude_databases에 의해서만 필터링됩니다.
    exclude_databases통계, 쿼리 샘플 및 상위 쿼리에서 제외된 데이터베이스입니다. 기본값: []. 모니터링 사용자가 접근할 수 없는 관리형 서비스 내부 데이터베이스(rdsadmin 등)에 이를 사용하십시오.
    <YOUR_NEWRELIC_OTLP_ENDPOINT>뉴렐릭 OTLP 엔드포인트를 입력하십시오. 자세한 내용은 뉴렐릭 OTLP 엔드포인트를 참조하십시오.
    <YOUR_NEWRELIC_LICENSE_KEY>뉴렐릭 라이선스 키를 입력하십시오.
    collection_interval메트릭 스크랩 간격을 입력하십시오. 기본값: 15s.

팁

당신은 또한 수:

  • 여러 수신기 구성: 하나의 수집기에서 여러 PostgreSQL 인스턴스를 모니터하기 위해 사용합니다.
  • PostgreSQL 데이터베이스를 APM과 연결: 애플리케이션 성능을 데이터베이스 작업과 연관시킵니다. 이를 통해 어떤 애플리케이션이 특정 데이터베이스 워크로드를 생성하는지 정확히 확인할 수 있습니다.
  • 쓰기 문에 대한 쿼리 계획: 모니터링 사용자에게 쓰기 권한을 부여하지 않고 잠금 또는 쓰기 문에 대한 쿼리 계획을 수집합니다.
  • 시크릿 관리 설정: 데이터베이스 자격 증명과 같은 민감한 정보를 안전하게 관리할 수 있습니다. 이는 설정 파일에 민감한 데이터를 하드코딩하는 것을 방지하여 모니터링 설정의 보안을 강화하는 데 도움이 됩니다.

NRDOT Collector 설정 유효성 검사

  1. 새 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
  2. NRDOT Collector 설정을 검증하여 형식이 올바르고 제대로 작동하는지 확인합니다:

    bash
    $
    sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/postgresql-config.yaml

NRDOT Collector를 다시 시작하십시오

수집기를 구성한 후 NRDOT Collector 서비스를 다시 시작하여 변경 사항을 적용합니다:

bash
$
sudo systemctl restart nrdot-collector

수집기가 제대로 실행되고 있는지 확인하려면 서비스 상태를 확인하십시오:

bash
$
sudo systemctl status nrdot-collector

팁

새 설정이 적용되도록 설정을 변경한 후에는 항상 NRDOT Collector를 다시 시작하십시오.

데이터 찾기 및 사용

쿼리 샘플 및 상위 쿼리는 로그 이벤트(event.name = 'db.server.query_sample' / 'db.server.top_query', db.system.name = 'postgresql')로 도착합니다. 메트릭은 postgresql.* 네임스페이스 아래에 도착합니다.

뉴렐릭에서 RDS PostgreSQL 데이터베이스 엔티티를 찾으려면 다음을 수행하십시오:

  1. https://one.newrelic.com > All Capabilities > Databases 으)로 이동합니다.
  2. Entity type 드롭다운 메뉴에서 PostgreSQL instance을(를) 선택한 다음 Apply을(를) 클릭합니다.
  3. 엔티티 목록에서 RDS PostgreSQL 데이터베이스를 선택하십시오.

자체 호스팅 환경에서의 계측

뉴렐릭을 사용하여 자체 호스팅 환경에서 PostgreSQL 모니터링을 설정하는 방법을 알아보십시오.

지표 참조

NRDOT Collector가 수집하는 사용 가능한 메트릭에 대해 알아보십시오.

문제 해결, 해결 가이드

PostgreSQL 모니터링의 일반적인 문제를 해결하는 방법을 알아보십시오.

Copyright © 2026 New Relic Inc.

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