New Relic Distribution of OpenTelemetry(NRDOT)コレクターを使用して、データベース監視、クエリ分析、およびシステムヘルスメトリクスにより、Oracleプラガブルデータベース(PDB)のパフォーマンスに関する包括的なインサイトを取得します。
ガイド付きインストレーション
代わりにNew Relic UIからインストールするには、one.newrelic.com > Integrations & Agents > Oracle (Database 360)に移動してください。このページでは、手動インストレーションについてのみ説明します。
ヒント
個別のプラガブルデータベースではなく、コンテナデータベース全体をモニターする必要がある場合は、CDB計装を参照してください。
前提条件
始める前に、次のものがあることを確認してください。
- 有効なNew Relicライセンスキー
- サポートされているアーキテクチャー: AMD64 および ARM64 を搭載した Linux
- New Relic OTLPエンドポイントへのネットワーク接続
- Oracleデータベース
19c以降
NRDOT Collectorをインストールする
Linux 環境に適したインストレーション配布方法を選択します。
データベースユーザーを構成する
PDB Oracleデータベースインスタンスに必要な権限を持つ監視ユーザーを作成します。
- ユーザーを作成したり権限を付与したりする前に、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_query100
session_wait_event_collectionmax_rows_per_query100
top_procedure_collectionmax_procedure_sample_count1000
top_procedure_collectiontop_procedure_count250
top_procedure_collectioncollection_interval60秒
ヒント
New Relic 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ヒント
もできます。
- 複数のレシーバーを構成する:1つのコレクターから複数のOracle データベースインスタンスをモニターします。
- SQLクエリレシーバーの構成:Oracleデータベースからカスタムメトリックを収集します。
- OracleデータベースをAPMとリンクする:アプリケーションパフォーマンスをデータベース操作と関連付けます。これにより、どのアプリケーションが特定のデータベースワークロードを生成しているかを正確に確認できます。
- シークレット管理のセットアップ:データベースの認証情報などの機密情報を安全に管理します。これにより、設定ファイルへの機密データのハードコーディングを回避し、監視セットアップのセキュリティを強化できます。
NRDOT Collectorを再起動します
設定を更新した後、NRDOT Collectorを再起動します:
$sudo systemctl restart nrdot-collector.service$sudo systemctl status nrdot-collector.serviceヒント
新しい設定を確実に適用するために、設定を変更した後は常にNRDOT Collectorを再起動してください。
データを探す、使う
データの収集が開始されると、New Relic UIから包括的なOracleデータベース監視にアクセスできます。
New RelicでOracleデータベースエンティティを見つけるには:
- https://one.newrelic.com > All Capabilities > Databasesに移動します。
- 検索条件を
instrumentation.provider = opentelemetryに設定します。 - エンティティのリストからOracleデータベースを選択します。