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

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

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

문제 신고

Helm을 사용하여 PostgreSQL 모니터링을 위한 NRDOT 설치 및 구성

|View as Markdown (English)

postgresql-otel Helm 차트를 사용하여 Kubernetes에서 PostgreSQL 모니터링을 설치하고 구성할 수 있습니다. 선택적으로 차트는 모니터링 역할, 해당 권한 및 pg_stat_statements 확장을 생성하는 설정 작업을 실행할 수도 있습니다.

중요

차트는 네트워크를 통해 원격으로 PostgreSQL에 연결하는 Kubernetes 배포로 수집기를 배포하므로 PostgreSQL 메트릭만 보고합니다: PostgreSQL이 실행되는 머신에 대한 호스트 또는 인프라 메트릭은 없습니다. 릴리스당 하나의 PostgreSQL 인스턴스를 모니터링하며(해당 인스턴스의 여러 데이터베이스가 지원됩니다), TLS 또는 AWS IAM 인증과 같은 db_auth 자격 증명 공급자를 구성하지 않습니다.

서버 수준 전제 조건

PostgreSQL 14 이상이 필요합니다. 이 차트를 설치(또는 설정 작업을 활성화)하기 전에 다음 서버 파라미터가 준비되어 있어야 합니다. shared_preload_libraries 없이 pg_stat_statements을(를) 생성할 수 없으며, 해당 파라미터는 재시작이 필요하므로 Kubernetes 클러스터 내에서 실행 중인 어떤 것도 이 작업을 대신 수행할 수 없습니다.

매개변수

값

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

  • 자체 호스팅: postgresql.conf에서 이를 설정한 다음 PostgreSQL을 다시 시작하십시오. 일부 배포판에서는 pg_stat_statements을(를) 사용하기 위해 postgresql-contrib 패키지를 설치해야 합니다.
  • AWS RDS 또는 Aurora: 구성 파일이 아닌 DB 파라미터 그룹에서 이를 설정하십시오. track_activity_query_size 및 pg_stat_statements.max은(는) 정적 파라미터이며, apply_method: pending-reboot(으)로 적용한 다음 인스턴스를 재부팅하십시오. 즉시 적용하면 InvalidParameterCombination(으)로 실패합니다. Aurora의 경우 파라미터 그룹 패밀리 이름이 엔진의 메이저 버전과 정확히 일치해야 합니다(예: aurora-postgresql16).

전제 조건

  • 유효한 뉴렐릭 라이선스 키.

  • Helm 3.0 이상 및 쿠버네티스 클러스터에 액세스하도록 구성된 kubectl.

  • 쿠버네티스 클러스터에서 PostgreSQL 호스트(또는 RDS 엔드포인트) 및 포트로의 네트워크 연결:

    • 자체 호스팅: PostgreSQL 호스트로 라우팅되는 경로(VPN, 피어링 또는 공유 네트워크), 호스트명인 경우 DNS 확인이 필요하며, PostgreSQL 측 pg_hba.conf 및 방화벽은 연결의 실제 소스 IP(파드 IP 자체가 아닌 NAT 게이트웨이일 수 있음)를 허용해야 합니다.
    • AWS RDS: RDS 인스턴스와의 VPC 피어링, 트랜짓 게이트웨이 또는 공유 VPC 배치가 필요하며, RDS 보안 그룹은 클러스터의 이그레스 소스에서 오는 PostgreSQL 포트(기본값 5432)를 허용해야 합니다.
  • 데이터베이스별 권한을 가진 이미 생성된 모니터링 역할이거나, 차트의 설정 작업에서 이를 생성할 수 있도록 하는 PostgreSQL 관리자 자격 증명입니다. 아래의 모니터링 자격 증명 구성을 참조하십시오.

네임스페이스를 생성하십시오.

설치할 네임스페이스를 생성하십시오. helm install --create-namespace은(는) 최종 설치 단계에서만 네임스페이스를 생성하므로, 다음 단계에서 시크릿을 생성하기 전에 해당 네임스페이스가 존재해야 합니다:

bash
$
kubectl create namespace newrelic

팁

아래의 모든 명령어에서 -n을(를) 전달할 필요가 없도록 현재 kubectl 컨텍스트의 기본 네임스페이스로 설정하십시오:

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

모니터링 자격 증명 구성

차트의 설정 작업이 PostgreSQL 모니터링 역할을 생성하도록 할지, 그렇지 않은 경우 자격 증명을 어떻게 제공할지 결정하십시오:

Helm 값을 설정하십시오.

환경에 맞게 postgresql.topology을(를) 설정하십시오:

값

설명

self-hosted

네트워크를 통해 연결되는 자체 호스팅 PostgreSQL.

rds

AWS RDS의 PostgreSQL 또는 Aurora.

postgresql.databases 은(는) 비어 있지 않은 필수 목록입니다. MySQL 또는 SQL Server와 달리 PostgreSQL에는 모든 데이터베이스 모니터 모드가 없습니다. 연결은 한 번에 하나의 데이터베이스를 타겟으로 하므로 수신자에게 스크랩할 대상을 알려주어야 합니다.

이전 단계에서 선택한 자격 증명 방법과 일치하는 values.yaml을(를) 사용하십시오:

매개변수

설명

licenseKey

귀하의 뉴렐릭 라이선스 키입니다.

otlpEndpoint

해당 리전의 OTLP/gRPC 엔드포인트,

스킴이 없는

순수

host:port

형태:

otlp.nr-data.net:4317

(US) 또는

otlp.eu01.nr-data.net:4317

(EU). 자세한 내용은

뉴렐릭 OTLP 엔드포인트 문서를

참조하십시오.

postgresql.server

/

postgresql.port

클러스터에서 접근할 수 있는 PostgreSQL 호스트(또는 RDS 엔드포인트) 및 포트입니다.

postgresql.databases

모니터할 데이터베이스의

필수이며 비어 있지 않은 목록

입니다.

postgresql.excludeDatabases

클러스터 전체 상위 쿼리 및 쿼리 샘플 스캔에서 제외된 데이터베이스입니다. 기본값은

[rdsadmin]

이며

topology

이(가)

rds

일 때만 렌더링됩니다, RDS에서 모니터링 사용자는

rdsadmin

에 접근할 수 없으므로 이를 제외하면 권한 오류를 방지할 수 있습니다.

setupJob.image.repository

/

setupJob.image.tag

설정 작업에서 사용되는

psql

지원 이미지입니다. 차트에는

기본값

이 제공되지 않으므로 설정 작업이 활성화될 때 값을 제공해야 합니다. 공식

postgres

이미지는

psql

을(를) 번들로 제공하며 합리적인 선택입니다.

setupJob.enableExplainPermissions

선택 사항입니다. 또한

otel.explain_statement

SECURITY DEFINER

함수를 생성하고 이에 대해

EXECUTE

을(를) 부여하여, 수신자가 쓰기 권한을 보유하지 않고도 잠금 및 쓰기 쿼리에 대해

EXPLAIN

을(를) 실행할 수 있도록 합니다. 이를

false

상태로 두어도 안전합니다: 수신자가 인라인

EXPLAIN

(으)로 대체되므로 해당 문은 단순히 쿼리 계획을 가져오지 않습니다.

setupJob.enablePgvector

선택 사항입니다. 또한 벡터 메트릭을 위해 각 모니터되는 데이터베이스에

vector

확장을 생성합니다.

l1

,

hamming

및

jaccard

거리 함수에는 pgvector 0.7.0 이상이 필요합니다.

팁

일반적으로 postgresql.topQueryCollection.explainFunctionName을(를) 설정할 필요가 없습니다. 수신기의 자체 기본값은 이미 otel.explain_statement (setupJob.enableExplainPermissions이(가) 생성하는 정확한 함수)이며, 차트는 비어 있을 때 키를 생략하므로 추가 설정 없이 두 가지가 일치합니다. 수신기가 다른 이름의 함수를 가리키도록 할 때만 이를 설정하십시오.

팁

postgresql.collectionInterval, metrics 토글, topQueryCollection/querySampleCollection 블록 및 additionalReceiverConfig 이스케이프 해치를 포함하여 사용 가능한 모든 설정 옵션에 대해서는 차트의 values.yaml을 참조하십시오.

(선택 사항) 하나의 릴리스에서 여러 인스턴스 모니터

단일 릴리스의 단일 수집기 파드에서 여러 PostgreSQL 인스턴스(자체 호스팅 또는 RDS)를 모니터하려면 postgresql.* 대신 postgresqlMulti.enabled: true을(를) 설정하십시오. 두 모드는 상호 배타적입니다. 동일한 릴리스에서 postgresql.server 및 postgresqlMulti.enabled: true을(를) 설정하지 마십시오.

항목은 databases이(가) 아니라 instances(으)로 불립니다: 각 인스턴스는 별도의 PostgreSQL 서버이며, postgresql.databases이(가) 단일 인스턴스 모드에서 작동하는 것과 동일한 방식으로 각각 고유한 중첩된 databases 목록(해당 인스턴스에서 모니터링할 개별 데이터베이스)을 가집니다.

다중 인스턴스 모드에는 일반 사용자 이름/비밀번호 경로가 없습니다: 모든 인스턴스에는 모니터링 자격 증명이 있는 자체 Kubernetes 시크릿이 필요합니다. 설정 작업이 각 모니터링 역할을 생성하도록 할지 여부도 결정하십시오:

매개변수

설명

postgresqlMulti.enabled

postgresql.*

대신 하나의 릴리스에서 여러 인스턴스를 모니터하려면

true

(으)로 설정하십시오. 기본값은

false

입니다.

postgresqlMulti.topology

self-hosted

또는

rds

,

postgresql.topology

과(와) 동일한 의미이며, 이 릴리스의 모든 인스턴스에서 공유됩니다.

postgresqlMulti.instances

모니터할 인스턴스 목록입니다. 각 항목에는 고유한

name

,

server

(

port

의 기본값은

5432

),

existingSecret

및 해당 인스턴스의

필수이며 비어 있지 않은

databases

데이터베이스 이름 목록이 필요하며,

setupJob.enabled

이(가)

true

인 경우에만 항목당

postgresAdmin.existingSecret

을(를) 추가하십시오.

팁

setupJob.enableExplainPermissions 그리고 setupJob.enablePgvector은(는) 모든 인스턴스의 모든 데이터베이스에서 공유되는 단일 토글이며, 인스턴스별로 설정할 수 없습니다. 스크랩 설정(수집 간격, 메트릭, topQueryCollection/querySampleCollection)도 마찬가지로 postgresqlMulti.instances의 모든 인스턴스에 동일하게 적용되며, 인스턴스별 재정의는 없습니다. 달라야 하는 항목에는 additionalReceiverConfig을(를) 사용하십시오. 설정 작업은 릴리스당 한 번이 아니라 인스턴스당 한 번(<release>-setup-<name>) 실행됩니다.

Helm 차트를 설치하세요

  1. 뉴클릭 Helm 다음을 추가하세요.

    bash
    $
    helm repo add newrelic https://helm-charts.newrelic.com
    $
    helm repo update
  2. values.yaml 파일을 사용하여 차트를 설치하십시오:

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

설치를 확인하십시오

  1. 설정 작업이 완료되었고(활성화된 경우) 수집기 파드가 실행 중인지 확인하십시오:

    bash
    $
    kubectl get jobs,pods -n newrelic --watch
  2. 데이터가 수신되는지 확인하려면 쿼리 빌더에서 이 쿼리를 실행하십시오:

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

데이터 찾기 및 사용

데이터가 수집되면 뉴렐릭 UI를 통해 포괄적인 PostgreSQL 데이터베이스 모니터링에 액세스할 수 있습니다.

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

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

NRDOT를 사용한 PostgreSQL 모니터링 소개

뉴렐릭을 사용한 PostgreSQL 모니터링에 사용할 수 있는 모든 설치 방법에 대해 알아보십시오.

CLI 설치

단일 뉴렐릭 CLI 명령으로 PostgreSQL 모니터링을 설치하고 설정하는 방법을 알아보십시오.

Ansible 설치

newrelic.newrelic_install을 사용하여 대규모로 PostgreSQL 모니터링을 설치하고 구성하는 방법을 알아보십시오. Ansible 역할을 사용하십시오.

Chef 설치

newrelic-install Chef 쿡북을 사용하여 대규모로 PostgreSQL 모니터링을 설치하고 구성하는 방법을 알아보십시오.

Copyright © 2026 New Relic Inc.

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