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 인스턴스에 필요한 권한을 가진 모니터링 사용자를 생성하십시오.
모니터링 사용자 및 권한을 생성하려면:
마스터 사용자로 RDS 인스턴스에 연결하십시오:
bash$psql --host=<YOUR_RDS_ENDPOINT> --dbname=postgres --port=5432 --username=<YOUR_MASTER_USERNAME>모니터링 사용자를 생성하십시오:
CREATE USER <YOUR_DB_USERNAME> WITH LOGIN PASSWORD '<YOUR_DB_PASSWORD>';필요에 따라 모니터링 사용자 역할 멤버십을 부여하십시오:
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 수신자에 대한 주요 설정 초기화에 대해 설명합니다.
| 매개변수 | 설명 |
|---|---|
<YOUR_RDS_ENDPOINT> | RDS 인스턴스 엔드포인트 호스트명을 입력하십시오. |
<YOUR_DB_PORT> | PostgreSQL 데이터베이스 포트를 입력하십시오. |
<YOUR_DB_USERNAME> | 데이터베이스 사용자 이름을 입력하세요. |
<YOUR_DB_PASSWORD> | 데이터베이스 비밀번호를 입력하세요. |
<YOUR_DATABASE_NAME> | 모니터링할 데이터베이스의 이름을 입력합니다. |
<YOUR_NEWRELIC_OTLP_ENDPOINT> | 뉴렐릭 OTLP 엔드포인트를 입력하십시오. 자세한 내용은 뉴렐릭 OTLP 엔드포인트를 참조하십시오. |
<YOUR_NEWRELIC_LICENSE_KEY> | 뉴렐릭 라이선스 키를 입력하십시오. |
collection_interval | 메트릭 스크랩 간격을 입력하십시오. 기본값: 15s. |
팁
당신은 또한 수:
- 다중 수신기 구성: 하나의 수집기에서 여러 PostgreSQL 인스턴스를 모니터합니다.
- PostgreSQL 데이터베이스를 APM과 연결: 애플리케이션 성능을 데이터베이스 작업과 연관시키기 위함입니다. 이를 통해 특정 데이터베이스 워크로드를 생성하는 애플리케이션을 정확히 확인할 수 있습니다.
- EXPLAIN 계획 권한: 모니터링 사용자에게 쓰기 권한을 부여하지 않고 잠금 또는 쓰기 명령문에 대한 쿼리 계획을 수집합니다.
- SQL 쿼리 수신기 설정: PostgreSQL 데이터베이스에서 커스텀 지표를 수집합니다.
- 시크릿 관리 설정: 데이터베이스 자격 증명과 같은 민감한 정보를 안전하게 관리하기 위함입니다. 이는 설정 파일에 민감한 데이터를 하드코딩하는 것을 방지하여 모니터링 설정의 보안을 강화하는 데 도움이 됩니다.
NRDOT Collector 설정 유효성 검사
새
postgresql-config.yaml파일을 가리키도록 설정 경로를 업데이트하십시오:bash$OTELCOL_OPTIONS="/etc/nrdot-collector/postgresql-config.yaml"NRDOT Collector 설정을 검증하여 형식이 올바르고 제대로 작동하는지 확인합니다:
bash$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/postgresql-config.yaml
NRDOT Collector를 다시 시작하십시오
수집기를 구성한 후 NRDOT Collector 서비스를 다시 시작하여 변경 사항을 적용합니다:
$sudo systemctl restart nrdot-collector수집기가 제대로 실행되고 있는지 확인하려면 서비스 상태를 확인하십시오:
$sudo systemctl status nrdot-collector팁
새 설정이 적용되도록 설정을 변경한 후에는 항상 NRDOT Collector를 다시 시작하십시오.
데이터 찾기 및 사용
쿼리 샘플 및 상위 쿼리는 로그 이벤트(event.name = 'db.server.query_sample' / 'db.server.top_query', db.system.name = 'postgresql')로 도착합니다. 메트릭은 postgresql.* 네임스페이스 아래에 도착합니다.
뉴렐릭에서 RDS PostgreSQL 데이터베이스 엔티티를 찾으려면 다음을 수행하십시오:
- https://one.newrelic.com > All Capabilities > Databases 으)로 이동합니다.
- Entity type 드롭다운 메뉴에서 PostgreSQL instance을(를) 선택한 다음 Apply을(를) 클릭합니다.
- 엔티티 목록에서 RDS PostgreSQL 데이터베이스를 선택하십시오.