Oracle
セキュリティモニタリングが使用可能です セキュリティモニタリングが使用可能です

Oracle

Agent Check Agentチェック

Supported OS: Linux Mac OS Windows

Oracle ダッシュボード

概要

Oracle Database サーバーからメトリクスをリアルタイムに取得して、可用性とパフォーマンスを視覚化および監視できます。

セットアップ

インストール

前提条件

Oracle インテグレーションを使用するには、Oracle Instant Client ライブラリをインストールするか、Oracle JDBC Driver をダウンロードする必要があります。ライセンスの制約により、これらのライブラリは Datadog Agent に含まれていませんが、Oracle から直接ダウンロードできます。

: JDBC Driver を使用する際に Agent が使用するライブラリの 1 つである JPype には、システムに以下のランタイムを必要とします。

Oracle Instant Client

Oracle チェックは、cx_Oracle Python モジュールまたは Oracle JDBC Driver にアクセスする必要があります。

  1. ダウンロードページにアクセスして、Instant Client Basic パッケージと SDK パッケージをインストールします。

    Linux を使用している場合は、Instant Client ライブラリのインストール後に、ランタイムリンカがライブラリを見つけることができることを確認します。たとえば、ldconfig を使用します。

    # Put the library location in an ld configuration file.
    
    sudo sh -c "echo /usr/lib/oracle/12.2/client64/lib > \
       /etc/ld.so.conf.d/oracle-instantclient.conf"
    
    # Update the bindings.
    
    sudo ldconfig
  2. 特定のマシンですべてのユーザーが使用できるディレクトリ (/opt/oracle など) に、これらのライブラリを解凍します。

    mkdir -p /opt/oracle/ && cd /opt/oracle/
    unzip /opt/oracle/instantclient-basic-linux.x64-12.1.0.2.0.zip
    unzip /opt/oracle/instantclient-sdk-linux.x64-12.1.0.2.0.zip
JDBC Driver

Datadog ユーザーの作成

Oracle Database サーバーへの適切なアクセス権を持つ、読み取り専用の datadog ユーザーを作成します。管理者ユーザー (SYSDBAまたはSYSOPER`) で Oracle Database に接続し、以下を実行します。

-- Oracle Script を有効にします。
ALTER SESSION SET "_ORACLE_SCRIPT"=true;

-- Datadog ユーザーを作成します。パスワードのプレースホルダーは、安全なパスワードに置き換えてください。
CREATE USER datadog IDENTIFIED BY <パスワード>;

-- Datadog ユーザーにアクセス権を付与します。
GRANT CONNECT TO datadog;
GRANT SELECT ON GV_$PROCESS TO datadog;
GRANT SELECT ON gv_$sysmetric TO datadog;
GRANT SELECT ON sys.dba_data_files TO datadog;
GRANT SELECT ON sys.dba_tablespaces TO datadog;
GRANT SELECT ON sys.dba_tablespace_usage_metrics TO datadog;

: Oracle 11g を使用している場合、次の行を実行する必要はありません。

ALTER SESSION SET "_ORACLE_SCRIPT"=true;

構成

ホスト

ホストで実行中の Agent でこのチェックを構成する場合は、以下の手順に従ってください。コンテナ環境の場合は、コンテナ化セクションを参照してください。

  1. Agent のコンフィギュレーションディレクトリのルートにある conf.d/ フォルダーの oracle.d/conf.yaml ファイルを編集します。serverport を更新し、監視するマスターを設定します。使用可能なすべてのコンフィギュレーションオプションについては、oracle.d/conf.yaml のサンプル を参照してください。

    init_config:
    
    instances:
     ## @param server - string - required
     ## The IP address or hostname of the Oracle Database Server.
     #
     - server: localhost:1521
    
       ## @param service_name - string - required
       ## The Oracle Database service name. To view the services available on your server,
       ## run the following query:
       ## `SELECT value FROM v$parameter WHERE name='service_names'`
       #
       service_name: "<SERVICE_NAME>"
    
       ## @param user - string - required
       ## The username for the user account.
       #
       user: datadog
    
       ## @param password - string - required
       ## The password for the user account.
       #
       password: "<PASSWORD>"
  2. Agent を再起動します

カスタムクエリのみ

インスタンスのデフォルトのメトリクスチェックをスキップし、既存のメトリクス収集ユーザーでのみカスタムクエリを実行するには、値が true のタグ only_custom_queries を挿入します。これにより、Oracle インテグレーションの構成済みインスタンスがシステム、プロセス、およびテーブルスペースメトリクスの実行をスキップし、Datadog ユーザー作成セクションで説明されているアクセス許可なしでカスタムクエリを実行できます。この構成エントリが省略された場合、指定したユーザーには、カスタムクエリを実行するためのテーブルアクセス許可が必要です。

init_config:

instances:
  ## @param server - 文字列 - 必須
  ## Oracle Database Server の IP アドレスまたはホスト名。
  #
  - server: localhost:1521

    ## @param service_name - 文字列 - 必須
    ## Oracle Database サービス名。サーバーで利用可能なサービスを表示するには、
    ## 次のクエリを実行します。
    ## `SELECT value FROM v$parameter WHERE name='service_names'`
    #
    service_name: "<サービス名>"

    ## @param user - 文字列 - 必須
    ## ユーザーアカウントのユーザー名。
    #
    user: <ユーザー>

    ## @param password - 文字列 - 必須
    ## ユーザーアカウントのパスワード。
    #
    password: "<パスワード>"

    ## @param only_custom_queries - 文字列 - 任意
    ## このインスタンスに対してのみカスタムクエリを実行する場合は、
    ## このパラメーターを任意の値に設定します。
    #
    only_custom_queries: true

コンテナ化

コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。

パラメーター
<インテグレーション名>oracle
<初期コンフィギュレーション>空白または {}
<インスタンスコンフィギュレーション>{"server": "%%host%%:1521", "service_name":"<サービス名>", "user":"datadog", "password":"<パスワード>"}

検証

Agent の status サブコマンドを実行し、Checks セクションで oracle を探します。

カスタムクエリ

カスタムクエリの指定もサポートされています。各クエリには、次の 3 つのパラメーターを含める必要があります。

パラメーター説明
metric_prefix各メトリクスのプレフィックス。
query実行する SQL です。簡単なステートメントにすることも、複数行のスクリプトにすることもできます。結果のすべての行が評価されます。
columns列を表すリストです。左から右の順に並べられます。次の 2 つの必須データがあります。
a. type - 送信方法 (gaugecount など)。
b. name - メトリクス名のサフィックス。これが metric_prefix に付加されて完全な名前になります。typetag の場合、この列は、このクエリによって収集されるすべてのメトリクスに適用されるタグと見なされます。

オプションで、tags パラメーターを使用して、収集される各メトリクスにタグのリストを適用できます。

以下のメトリクスは

self.gauge('oracle.custom_query.metric1', value, tags=['tester:oracle', 'tag1:value'])
self.count('oracle.custom_query.metric2', value, tags=['tester:oracle', 'tag1:value'])

以下の構成例から作成されます。

- metric_prefix: oracle.custom_query
  query: |  # 複数行のスクリプトが必要な場合は、パイプを使用します。
   SELECT columns
   FROM tester.test_table
   WHERE conditions
  columns:
  # スキップする列にはこれを入れます。
  - {}
  - name: metric1
    type: gauge
  - name: tag1
    type: tag
  - name: metric2
    type: count
  tags:
  - tester:oracle

使用可能なすべての構成オプションの詳細については、サンプル oracle.d/conf.yaml を参照してください。

収集データ

メトリクス

oracle.buffer_cachehit_ratio
(gauge)
Ratio of buffer cache hits
Shown as fraction
oracle.cursor_cachehit_ratio
(gauge)
Ratio of cursor cache hits
Shown as fraction
oracle.library_cachehit_ratio
(gauge)
Ratio of library cache hits
Shown as fraction
oracle.shared_pool_free
(gauge)
shared pool free memory %
Shown as percent
oracle.physical_reads
(gauge)
physical reads per sec
Shown as read
oracle.physical_writes
(gauge)
physical writes per sec
Shown as write
oracle.enqueue_timeouts
(gauge)
enqueue timeouts per sec
Shown as timeout
oracle.gc_cr_block_received
(gauge)
GC CR block received
Shown as block
oracle.cache_blocks_corrupt
(gauge)
corrupt cache blocks
Shown as block
oracle.cache_blocks_lost
(gauge)
lost cache blocks
Shown as block
oracle.logons
(gauge)
number of logon attempts
oracle.active_sessions
(gauge)
number of active sessions
oracle.long_table_scans
(gauge)
number of long table scans per sec
Shown as scan
oracle.service_response_time
(gauge)
service response time
Shown as second
oracle.user_rollbacks
(gauge)
number of user rollbacks
Shown as operation
oracle.sorts_per_user_call
(gauge)
sorts per user call
oracle.rows_per_sort
(gauge)
rows per sort
Shown as row
oracle.disk_sorts
(gauge)
disk sorts per second
Shown as operation
oracle.memory_sorts_ratio
(gauge)
memory sorts ratio
Shown as fraction
oracle.database_wait_time_ratio
(gauge)
memory sorts per second
Shown as fraction
oracle.session_limit_usage
(gauge)
session limit usage
Shown as percent
oracle.session_count
(gauge)
session count
oracle.process.pga_used_memory
(gauge)
PGA memory used by process
Shown as byte
oracle.process.pga_allocated_memory
(gauge)
PGA memory allocated by process
Shown as byte
oracle.process.pga_freeable_memory
(gauge)
PGA memory freeable by process
Shown as byte
oracle.process.pga_maximum_memory
(gauge)
PGA maximum memory ever allocated by process
Shown as byte
oracle.temp_space_used
(gauge)
temp space used
Shown as byte
oracle.tablespace.used
(gauge)
tablespace used
Shown as byte
oracle.tablespace.size
(gauge)
tablespace size
Shown as byte
oracle.tablespace.in_use
(gauge)
tablespace in-use
Shown as fraction
oracle.tablespace.offline
(gauge)
tablespace offline

イベント

Oracle Database チェックには、イベントは含まれません。

サービスのチェック

oracle.can_connect データベースが使用可能で接続を受け入れているかを検証します。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問合せください。