뉴렐릭 Distribution of OpenTelemetry(NRDOT) 수집기를 사용하여 데이터베이스 모니터링, 쿼리 분석 및 시스템 상태 메트릭을 통해 오라클 플러거블 데이터베이스(PDB) 성능에 대한 포괄적인 인사이트를 얻으십시오.
가이드 설치
대신 뉴렐릭 UI를 통해 설치하려면 one.newrelic.com > Integrations & Agents > Oracle (Database 360)(으)로 이동하십시오. 이 페이지는 수동 설치만 다룹니다.
팁
개별 플러거블 데이터베이스가 아닌 전체 컨테이너 데이터베이스를 모니터해야 하는 경우 CDB 계측을 참조하십시오.
전제 조건
시작하기 전에 다음 사항이 있는지 확인하세요.
- 유효한 뉴렐릭 라이선스 키
- 지원 아키텍처: AMD64 및 ARM64 기반의 Linux
- 뉴렐릭 OTLP 엔드포인트에 대한 네트워크 연결
- 오라클 데이터베이스
19c이상
NRDOT Collector설치하세요
사용 중인 Linux 환경에 맞는 설치 배포 방법을 선택하십시오.
데이터베이스 사용자 구성
PDB 오라클 데이터베이스 인스턴스에 필요한 권한을 가진 모니터링 사용자를 생성하십시오.
- 사용자를 생성하거나 권한을 부여하기 전에 SYS로 다음 문을 실행하십시오:ALTER SESSION SET CONTAINER = "<YOUR_PDB>";
- 로컬 모니터링 사용자를 생성하려면 타겟 PDB 내에서 SYS로 다음 명령문을 실행하십시오:CREATE USER <YOUR_DB_USERNAME> IDENTIFIED BY "<YOUR_DB_PASSWORD>";GRANT CREATE SESSION TO <YOUR_DB_USERNAME>;
PDB에 대한 모니터링 권한을 부여하십시오.
PDB 내에서 SYS 사용자로 이 명령을 실행하십시오. 이를 통해 모니터링 도구가 메트릭을 수집하고, 이벤트를 추적하며, 데이터베이스 인스턴스를 찾는 데 필요한 기본 액세스 권한을 얻습니다.
GRANT SELECT ON V_$INSTANCE TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$DATABASE TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$CONTAINERS TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$DATAFILE TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$SYSSTAT TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$SYSMETRIC TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$SESSION TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$RESOURCE_LIMIT TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$OSSTAT TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$SGAINFO TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$ROWCACHE TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$PARAMETER TO <YOUR_DB_USERNAME>;GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO <YOUR_DB_USERNAME>;GRANT SELECT ON DBA_TABLESPACES TO <YOUR_DB_USERNAME>;GRANT SELECT ON DBA_DATA_FILES TO <YOUR_DB_USERNAME>;GRANT SELECT ON DBA_FREE_SPACE TO <YOUR_DB_USERNAME>;GRANT SELECT ON DBA_RECYCLEBIN TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$SQL TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$SQL_PLAN_STATISTICS_ALL TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$LOCK TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$SESSION_EVENT TO <YOUR_DB_USERNAME>;GRANT SELECT ON DBA_PROCEDURES TO <YOUR_DB_USERNAME>;GRANT SELECT ON DBA_OBJECTS TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$PDBS TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$PROCESS TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$TRANSACTION TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$CON_SYSSTAT TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$CON_SYSMETRIC TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$ASM_DISKGROUP_STAT TO <YOUR_DB_USERNAME>;GRANT SELECT ON V_$ASM_DISK_STAT TO <YOUR_DB_USERNAME>;팁
ASM 디스크 그룹 및 디스크 메트릭을 수집하려는 경우에만 V_$ASM_DISKGROUP_STAT 및 V_$ASM_DISK_STAT 권한이 필요합니다.
NRDOT Collector구성
PDB 관련 설정으로 NRDOT Collector를 설정하십시오.
설정 파일을 생성합니다. 파일 이름은
oracle-config.yaml이어야 합니다.bash$sudo nano /etc/nrdot-collector/oracle-config.yaml이전 단계에서 생성한
oracle-config.yaml파일에 아래 설정 내용을 추가하십시오:전체 설정
이 설정은 필수 기준 메트릭을 캡처합니다. 전체 메트릭 카탈로그를 보려면 설정 참조를 확인하십시오.
oracle-config.yaml1receivers:2nroracledb:3endpoint: oracle.example.com:15214username: newrelic5password: YOUR_PASSWORD6service: YOUR_PDB_SERVICE_NAME7collection_interval: 15s8events:9db.server.query_sample:10enabled: true11db.server.top_query:12enabled: true13db.server.session.wait_sample:14enabled: true15db.server.top_procedure:16enabled: true17db.server.query_plan:18enabled: true1920top_query_collection:21max_query_sample_count: 100022top_query_count: 20023collection_interval: 60s24allowed_comment_keys:25- nr_service_guid2627query_sample_collection:28max_rows_per_query: 10029allowed_comment_keys:30- nr_service_guid3132session_wait_event_collection:33max_rows_per_query: 1003435top_procedure_collection:36max_procedure_sample_count: 100037top_procedure_count: 25038collection_interval: 60s3940# Metrics configuration - This baseline configuration captures essential metrics. To enable advanced monitoring and extended telemetry, refer to the full configuration documentation41metrics:42oracledb.buffer_cache.utilization:43enabled: true44attributes:45- oracle.db.pdb46oracledb.consistent_gets:47enabled: true48attributes:49- oracle.db.pdb50oracledb.cpu_time:51enabled: true52attributes:53- oracle.db.pdb54oracledb.database.cpu.utilization:55enabled: true56attributes:57- oracle.db.pdb58oracledb.database.wait.utilization:59enabled: true60attributes:61- oracle.db.pdb62oracledb.db_block_gets:63enabled: true64attributes:65- oracle.db.pdb66oracledb.enqueue_deadlocks:67enabled: true68attributes:69- oracle.db.pdb70oracledb.execution.utilization:71enabled: true72attributes:73- oracledb.parse.type74- oracle.db.pdb75oracledb.executions:76enabled: true77attributes:78- oracle.db.pdb79oracledb.hard_parses:80enabled: true81attributes:82- oracle.db.pdb83oracledb.host.cpu.utilization:84enabled: true85attributes:86- oracle.db.pdb87oracledb.library_cache.utilization:88enabled: true89attributes:90- oracle.db.pdb91oracledb.logical_reads:92enabled: true93attributes:94- oracle.db.pdb95oracledb.logons:96enabled: true97attributes:98- oracle.db.pdb99oracledb.parse.rate:100enabled: true101attributes:102- oracledb.parse.result103- oracle.db.pdb104oracledb.parse_calls:105enabled: true106attributes:107- oracle.db.pdb108oracledb.pga_memory:109enabled: true110attributes:111- oracle.db.pdb112oracledb.physical_io.requests:113enabled: true114attributes:115- disk.io.direction116- disk.io.block_size117- oracle.db.pdb118oracledb.physical_reads:119enabled: true120attributes:121- oracle.db.pdb122oracledb.physical_writes:123enabled: true124attributes:125- oracle.db.pdb126oracledb.processes.usage:127enabled: true128oracledb.sessions.usage:129enabled: true130attributes:131- session_type132- session_status133- oracle.db.pdb134oracledb.sga.usage:135enabled: true136attributes:137- oracledb.sga.component.name138oracledb.shared_pool.utilization:139enabled: true140attributes:141- oracle.db.pdb142oracledb.sql_service.response.duration:143enabled: true144attributes:145- oracle.db.pdb146oracledb.sqlnet.io.transferred:147enabled: true148attributes:149- network.io.direction150- destination.type151- oracle.db.pdb152oracledb.tablespace_size.usage:153enabled: true154attributes:155- tablespace_name156- oracle.db.pdb157oracledb.transactions.usage:158enabled: true159oracledb.user_commits:160enabled: true161attributes:162- oracle.db.pdb163oracledb.user_rollbacks:164enabled: true165attributes:166- oracle.db.pdb167168# Resource attributes attached to all metrics/logs (all enabled by default)169resource_attributes:170oracle.db.edition:171enabled: true172exporters:173otlp/newrelic:174endpoint: https://otlp.nr-data.net:4318175headers:176api-key: YOUR_LICENSE_KEY177compression: gzip178retry_on_failure:179enabled: true180initial_interval: 5s181max_interval: 30s182max_elapsed_time: 300s183sending_queue:184enabled: true185sizer: bytes186queue_size: 100_000_000187num_consumers: 10188batch:189sizer: bytes190max_size: 1_000_000191min_size: 0192flush_timeout: 5s193service:194pipelines:195metrics/oracledb:196receivers: [nroracledb]197exporters: [otlp/newrelic]198logs/oracledb:199receivers: [nroracledb]200exporters: [otlp/newrelic]이벤트 섹션에서 이러한 이벤트 유형을 활성화하여 해당 메트릭을 수집합니다:
이벤트
설명
db.server.query_sample현재 SQL, 대기 상태 및 차단 세부 정보를 캡처하는 세션별 활성 쿼리 샘플.
db.server.top_query실행 통계 및 쿼리 계획을 포함하여 CPU 또는 경과 시간 기준 상위 N개의 SQL 문.
db.server.session.wait_samplev$session_event의 세션별 누적 대기 횟수 및 기간.
db.server.top_procedure실행 통계를 포함하여 리소스 사용량에 따라 순위가 매겨진 상위 N개의 저장 프로시저입니다.
db.server.query_plan상위 및 샘플링된 쿼리에 대한 실행 계획 세부 정보입니다.
각 이벤트 유형에 대한 수집 설정을 구성하십시오:
설정 섹션
매개변수
값
top_query_collectionmax_query_sample_count1000
top_query_collectiontop_query_count200
top_query_collectioncollection_interval60초
query_sample_collectionmax_rows_per_query도면 1
session_wait_event_collectionmax_rows_per_query도면 1
top_procedure_collectionmax_procedure_sample_count1000
top_procedure_collectiontop_procedure_count250
top_procedure_collectioncollection_interval60초
팁
뉴렐릭 OTLP 엔드포인트 설정 및 OpenTelemetry 모범 사례에 대한 자세한 내용은 OpenTelemetry OTLP 설명서를 참조하십시오.
NRDOT Collector 설정 업데이트
oracle-config.yaml 파일을 사용하도록 NRDOT Collector 설정을 업데이트하십시오:
$sudo sed -i 's|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/config.yaml"|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/oracle-config.yaml"|' /etc/nrdot-collector/nrdot-collector.conf팁
당신은 또한 수:
- 여러 수신자 구성: 하나의 수집기에서 여러 오라클 데이터베이스 인스턴스를 모니터할 때 사용합니다.
- SQL 쿼리 수신기 구성: 오라클 데이터베이스에서 커스텀 지표를 수집합니다.
- 오라클 데이터베이스를 APM과 연결: 애플리케이션 성능을 데이터베이스 작업과 연관시킵니다. 이를 통해 어떤 애플리케이션이 특정 데이터베이스 워크로드를 생성하는지 정확히 확인할 수 있습니다.
- 시크릿 관리 설정: 데이터베이스 자격 증명과 같은 민감한 정보를 안전하게 관리할 수 있습니다. 이는 설정 파일에 민감한 데이터를 하드코딩하는 것을 방지하여 모니터링 설정의 보안을 강화하는 데 도움이 됩니다.
NRDOT Collector를 다시 시작하십시오
설정을 업데이트한 후 NRDOT Collector를 다시 시작하십시오:
$sudo systemctl restart nrdot-collector.service$sudo systemctl status nrdot-collector.service팁
새 설정이 적용되도록 설정을 변경한 후에는 항상 NRDOT Collector를 다시 시작하십시오.
데이터 찾기 및 사용
데이터가 수집되면 뉴렐릭 UI를 통해 포괄적인 오라클 데이터베이스 모니터링에 액세스할 수 있습니다.
뉴렐릭에서 오라클 데이터베이스 엔티티를 찾으려면 다음을 수행하세요:
- https://one.newrelic.com > All Capabilities > Databases 으)로 이동합니다.
- 검색 기준을
instrumentation.provider = opentelemetry으로 설정합니다. - 엔티티 목록에서 오라클 데이터베이스를 선택합니다.