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

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

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

문제 신고

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

|View as Markdown (English)

OpenTelemetry의 뉴렐릭 배포판(NRDOT) 수집기를 사용하여 데이터베이스 모니터링, 쿼리 분석 및 시스템 상태 메트릭을 통해 Amazon RDS 오라클 데이터베이스 성능에 대한 포괄적인 인사이트를 얻으십시오.

전제 조건

시작하기 전에 다음 사항이 있는지 확인하세요.

NRDOT Collector설치하세요

사용 중인 Linux 환경에 맞는 설치 배포 방법을 선택하십시오.

데이터베이스 사용자 구성

RDS 작업 데이터베이스에 필요한 권한을 가진 모니터링 사용자를 생성합니다.

  1. 관리자 권한으로 루트 데이터베이스에 로그인하십시오.

    CREATE USER <YOUR_DB_USERNAME> IDENTIFIED BY "<YOUR_DB_PASSWORD>";
  2. 새로 생성된 사용자에게 CONNECT 권한을 부여합니다:

    GRANT CONNECT TO <YOUR_DB_USERNAME>;

RDS 데이터베이스에 대한 모니터링 권한을 부여하세요

모니터링 권한을 부여하려면 다음 SQL 문을 실행하십시오. <YOUR_DB_USERNAME_UPPERCASE> 대문자로 입력한 사용자 이름으로 바꾸세요.

EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SYSMETRIC', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$CON_SYSMETRIC', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$CONTAINERS', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SESSION', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SESSION_EVENT', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SYSSTAT', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$CON_SYSSTAT', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$OSSTAT', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SGAINFO', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SQL', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SQL_PLAN_STATISTICS_ALL', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$PROCESS', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$ROWCACHE', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$RESOURCE_LIMIT', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$LOCK', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$INSTANCE', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$DATAFILE', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$PDBS', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_DATA_FILES', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_FREE_SPACE', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_RECYCLEBIN', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_TABLESPACES', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_TABLESPACE_USAGE_METRICS', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_PROCEDURES', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('CDB_TABLESPACE_USAGE_METRICS', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('CDB_TABLESPACES', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
EXEC rdsadmin.rdsadmin_util.grant_sys_object('CDB_SERVICES', '<YOUR_DB_USERNAME_UPPERCASE>', 'SELECT', false);
GRANT CREATE SESSION TO <YOUR_DB_USERNAME_UPPERCASE>;

NRDOT Collector구성

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

  1. 설정 파일을 생성합니다. 파일 이름은 oracle-config.yaml이어야 합니다.

    bash
    $
    sudo nano /etc/nrdot-collector/oracle-config.yaml
  2. 이전 단계에서 생성한 oracle-config.yaml 파일에 아래 설정 내용을 추가하세요.

    전체 설정

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

    oracle-config.yaml
    1
    receivers:
    2
    nroracledb/rds:
    3
    endpoint: mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com:1521
    4
    username: newrelic
    5
    password: YOUR_PASSWORD
    6
    service: YOUR_SERVICE_NAME
    7
    collection_interval: 15s
    8
    events:
    9
    db.server.query_sample:
    10
    enabled: true
    11
    db.server.top_query:
    12
    enabled: true
    13
    db.server.session.wait_sample:
    14
    enabled: true
    15
    db.server.top_procedure:
    16
    enabled: true
    17
    db.server.query_plan:
    18
    enabled: true
    19
    20
    top_query_collection:
    21
    max_query_sample_count: 1000
    22
    top_query_count: 200
    23
    collection_interval: 60s
    24
    allowed_comment_keys:
    25
    - nr_service_guid
    26
    27
    query_sample_collection:
    28
    max_rows_per_query: 100
    29
    allowed_comment_keys:
    30
    - nr_service_guid
    31
    32
    session_wait_event_collection:
    33
    max_rows_per_query: 100
    34
    35
    top_procedure_collection:
    36
    max_procedure_sample_count: 1000
    37
    top_procedure_count: 250
    38
    collection_interval: 60s
    39
    40
    # Metrics configuration - This baseline configuration captures essential metrics. To enable advanced monitoring and extended telemetry, refer to the full configuration documentation
    41
    metrics:
    42
    oracledb.buffer_cache.utilization:
    43
    enabled: true
    44
    attributes:
    45
    - oracle.db.pdb
    46
    oracledb.consistent_gets:
    47
    enabled: true
    48
    attributes:
    49
    - oracle.db.pdb
    50
    oracledb.cpu_time:
    51
    enabled: true
    52
    attributes:
    53
    - oracle.db.pdb
    54
    oracledb.database.cpu.utilization:
    55
    enabled: true
    56
    attributes:
    57
    - oracle.db.pdb
    58
    oracledb.database.wait.utilization:
    59
    enabled: true
    60
    attributes:
    61
    - oracle.db.pdb
    62
    oracledb.db_block_gets:
    63
    enabled: true
    64
    attributes:
    65
    - oracle.db.pdb
    66
    oracledb.enqueue_deadlocks:
    67
    enabled: true
    68
    attributes:
    69
    - oracle.db.pdb
    70
    oracledb.execution.utilization:
    71
    enabled: true
    72
    attributes:
    73
    - oracledb.parse.type
    74
    - oracle.db.pdb
    75
    oracledb.executions:
    76
    enabled: true
    77
    attributes:
    78
    - oracle.db.pdb
    79
    oracledb.hard_parses:
    80
    enabled: true
    81
    attributes:
    82
    - oracle.db.pdb
    83
    oracledb.host.cpu.utilization:
    84
    enabled: true
    85
    attributes:
    86
    - oracle.db.pdb
    87
    oracledb.library_cache.utilization:
    88
    enabled: true
    89
    attributes:
    90
    - oracle.db.pdb
    91
    oracledb.logical_reads:
    92
    enabled: true
    93
    attributes:
    94
    - oracle.db.pdb
    95
    oracledb.logons:
    96
    enabled: true
    97
    attributes:
    98
    - oracle.db.pdb
    99
    oracledb.parse.rate:
    100
    enabled: true
    101
    attributes:
    102
    - oracledb.parse.result
    103
    - oracle.db.pdb
    104
    oracledb.parse_calls:
    105
    enabled: true
    106
    attributes:
    107
    - oracle.db.pdb
    108
    oracledb.pga_memory:
    109
    enabled: true
    110
    attributes:
    111
    - oracle.db.pdb
    112
    oracledb.physical_io.requests:
    113
    enabled: true
    114
    attributes:
    115
    - disk.io.direction
    116
    - disk.io.block_size
    117
    - oracle.db.pdb
    118
    oracledb.physical_reads:
    119
    enabled: true
    120
    attributes:
    121
    - oracle.db.pdb
    122
    oracledb.physical_writes:
    123
    enabled: true
    124
    attributes:
    125
    - oracle.db.pdb
    126
    oracledb.processes.usage:
    127
    enabled: true
    128
    oracledb.sessions.usage:
    129
    enabled: true
    130
    attributes:
    131
    - session_type
    132
    - session_status
    133
    - oracle.db.pdb
    134
    oracledb.sga.usage:
    135
    enabled: true
    136
    attributes:
    137
    - oracledb.sga.component.name
    138
    oracledb.shared_pool.utilization:
    139
    enabled: true
    140
    attributes:
    141
    - oracle.db.pdb
    142
    oracledb.sql_service.response.duration:
    143
    enabled: true
    144
    attributes:
    145
    - oracle.db.pdb
    146
    oracledb.sqlnet.io.transferred:
    147
    enabled: true
    148
    attributes:
    149
    - network.io.direction
    150
    - destination.type
    151
    - oracle.db.pdb
    152
    oracledb.tablespace_size.usage:
    153
    enabled: true
    154
    attributes:
    155
    - tablespace_name
    156
    - oracle.db.pdb
    157
    oracledb.transactions.usage:
    158
    enabled: true
    159
    oracledb.user_commits:
    160
    enabled: true
    161
    attributes:
    162
    - oracle.db.pdb
    163
    oracledb.user_rollbacks:
    164
    enabled: true
    165
    attributes:
    166
    - oracle.db.pdb
    167
    168
    # Resource attributes attached to all metrics/logs (all enabled by default)
    169
    resource_attributes:
    170
    oracle.db.edition:
    171
    enabled: true
    172
    exporters:
    173
    otlp/newrelic:
    174
    endpoint: https://otlp.nr-data.net:4318
    175
    headers:
    176
    api-key: YOUR_LICENSE_KEY
    177
    compression: gzip
    178
    retry_on_failure:
    179
    enabled: true
    180
    initial_interval: 5s
    181
    max_interval: 30s
    182
    max_elapsed_time: 300s
    183
    sending_queue:
    184
    enabled: true
    185
    sizer: bytes
    186
    queue_size: 100_000_000
    187
    num_consumers: 10
    188
    batch:
    189
    sizer: bytes
    190
    max_size: 1_000_000
    191
    min_size: 0
    192
    flush_timeout: 5s
    193
    service:
    194
    pipelines:
    195
    metrics/oracledb:
    196
    receivers: [nroracledb/rds]
    197
    exporters: [otlp/newrelic]
    198
    logs/oracledb:
    199
    receivers: [nroracledb/rds]
    200
    exporters: [otlp/newrelic]
  3. 이벤트 섹션에서 이러한 이벤트 유형을 활성화하여 해당 메트릭을 수집합니다:

    이벤트

    설명

    db.server.query_sample

    현재 SQL, 대기 상태 및 차단 세부 정보를 캡처하는 세션별 활성 쿼리 샘플.

    db.server.top_query

    실행 통계 및 쿼리 계획을 포함하여 CPU 또는 경과 시간 기준 상위 N개의 SQL 문.

    db.server.session.wait_sample

    v$session_event

    의 세션별 누적 대기 횟수 및 기간.

    db.server.top_procedure

    실행 통계를 포함하여 리소스 사용량에 따라 순위가 매겨진 상위 N개의 저장 프로시저입니다.

    db.server.query_plan

    상위 및 샘플링된 쿼리에 대한 실행 계획 세부 정보입니다.

  4. 각 이벤트 유형에 대한 수집 설정을 구성하십시오:

    설정 섹션

    매개변수

    값

    top_query_collection

    max_query_sample_count

    1000

    top_query_collection

    top_query_count

    200

    top_query_collection

    collection_interval

    60초

    query_sample_collection

    max_rows_per_query

    도면 1

    session_wait_event_collection

    max_rows_per_query

    도면 1

    top_procedure_collection

    max_procedure_sample_count

    1000

    top_procedure_collection

    top_procedure_count

    250

    top_procedure_collection

    collection_interval

    60초

NRDOT Collector 설정 업데이트

oracle-config.yaml 파일을 사용하도록 NRDOT Collector 설정을 업데이트하십시오.

bash
$
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를 다시 시작하십시오:

bash
$
sudo systemctl restart nrdot-collector.service
$
sudo systemctl status nrdot-collector.service

팁

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

데이터 찾기 및 사용

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

뉴렐릭에서 오라클 데이터베이스 엔티티를 찾으려면 다음을 수행하세요:

  1. https://one.newrelic.com > All Capabilities > Databases 으)로 이동합니다.
  2. 검색 기준을 instrumentation.provider = opentelemetry 으로 설정합니다.
  3. 엔티티 목록에서 오라클 데이터베이스를 선택합니다.

문제점 해결

뉴렐릭에서 오라클 RDS 모니터링 설정의 문제를 해결하는 방법을 알아보십시오.

지표 참조

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

CDB 계측

뉴렐릭에서 CDB 모니터링을 위해 오라클 데이터베이스를 설정하는 방법을 알아보십시오.

Copyright © 2026 New Relic Inc.

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