Oracle 用エージェントを設定する

ホストに Oracle Database とともに Google Cloudのコンピューティング ワークロード用エージェントを設定して、指標を収集し、Oracle Database ワークロードをモニタリングできます。

このドキュメントでは、Oracle Database ワークロードを実行する Compute Engine インスタンスに Agent for Compute Workloads をインストール、構成、検証する方法について説明します。

エージェントは、Oracle Database のパフォーマンス ビュー(V$DATABASEV$INSTANCEV$DATAGUARD_STATS など)とデータ ディクショナリ ビュー(DBA_DATA_FILESDBA_FREE_SPACE など)をクエリして、さまざまな Oracle 指標を収集します。これらの指標は Cloud Monitoring に送信され、可視化と分析に使用できます。サポートされている指標をご覧ください。

システム要件

オペレーティング システム Oracle のバージョン Oracle エディション
  • Red Hat Enterprise Linux バージョン 7、8、9
  • Oracle Linux バージョン 7、8、9
  • Oracle Database 19c
  • Oracle Database 23ai*
  • Enterprise Edition
  • Standard Edition
  • Express(無料)エディション

前提条件

Oracle Database ワークロードをモニタリングするために Agent for Compute Workloads をインストールする前に、次の前提条件が満たされていることを確認してください。

エージェントをインストールする

Agent for Compute Workloads をインストールする手順は次のとおりです。

  1. リポジトリ構成ファイルを作成します。

    sudo tee /etc/yum.repos.d/google-cloud-workload-agent.repo << EOM
    [google-cloud-workload-agent]
    name=Google Cloud Workload Agent
    baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-workload-agent-\$basearch
    enabled=1
    gpgcheck=0
    repo_gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOM
    
  2. パッケージ マネージャーのメタデータを更新します。

    sudo yum makecache
    
  3. google-cloud-workload-agent rpm パッケージをインストールします。

    sudo yum install google-cloud-workload-agent
    

Oracle 用エージェントをインストールしたら、エージェントのインストールを確認します。

エージェントのインストールを確認する

エージェントが実行されていることを確認するには、ご使用のオペレーティング システムに合わせて次の操作を行います。

  1. SSH を使用して VM インスタンスに接続します。
  2. 次のコマンドを実行します。

    systemctl status google-cloud-workload-agent
    

    エージェントが正常に機能している場合、出力には active (running) が含まれます。次に例を示します。

    google-cloud-workload-agent.service - Google Cloud Workload Agent
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; preset: disabled)
    Active: active (running) since Tue 2024-09-03 22:29:57 UTC; 3s ago
    Main PID: 274972 (google_cloud_wo)
     Tasks: 10 (limit: 100440)
    Memory: 51.2M (max: 1.0G limit: 1.0G available: 972.7M)
       CPU: 625ms
    CGroup: /system.slice/google-cloud-workload-agent.service
           └─274972 /usr/bin/google_cloud_workload_agent startdaemon
    
    Sep 03 22:29:57 my_gce_instance systemd[1]: Started Google Cloud Workload Agent.
    

    エージェントが実行されていない場合は、エージェントの再起動を試してください。

エージェントを構成する

Compute Workloads 用エージェントをインストールしたら、必要に応じて、エージェントの構成ファイルを更新して、エージェントの他の機能を有効にできます。Oracle Database ワークロード用に構成できるパラメータのリストについては、構成パラメータをご覧ください。

エージェントを構成したら、もう一度インストールを検証して、エージェントが正しく構成されていることを確認します。

構成パラメータ

Agent for Compute Workloads は、Oracle の次の構成パラメータをサポートしています。

パラメータ 説明
log_level

String

エージェントのロギングレベルを設定するには、ログレベルを追加します。使用可能なログレベルは次のとおりです。
  • DEBUG
  • INFO
  • WARNING
  • ERROR
デフォルトは INFO です。
log_to_cloud

Boolean

エージェントのログを Cloud Logging にリダイレクトするには、true を指定します。デフォルトは true です。

oracle_configuration.enabled

Boolean

省略可。Oracle サービスがアクティブかどうかを判断します。true に設定されている場合、または設定されておらず、ワークロードが存在する場合は、検出と指標の収集を構成できます。false に設定すると、Oracle サービスとその関連機能が無効になります。

次の子パラメータは、oracle_configuration.enabled: true を指定した場合にのみ適用されます。
oracle_configuration.oracle_discovery.enabled

Boolean

省略可。Oracle Discovery がアクティブかどうかを判断します。

デフォルト値は true です。

oracle_configuration.oracle_discovery.update_frequency

Int

省略可。サンプル間隔を秒単位で指定します。これにより、Compute Workloads 用エージェントが検出プロセスを実行する頻度が決まります。デフォルト値は 3,600 秒(1 時間)です。

値の末尾が小文字の「s」になっていることを確認してください。これは秒単位であることを示します。例: 30s

oracle_configuration.oracle_metrics.enabled

Boolean

省略可。Agent for Compute Workloads が Oracle モニタリング指標を収集できるようにするには、true を指定します。デフォルト値は false です。

次の子パラメータは、oracle_metrics.enabled: true を指定した場合にのみ適用されます。

oracle_configuration.oracle_metrics.collection_frequency

Int

省略可。サンプル間隔を秒単位で指定します。これにより、Compute Workloads 用エージェントが Oracle Database インスタンスにクエリを実行して Oracle モニタリング指標を収集する頻度を決定します。デフォルト値は 60 秒です。

値の末尾が小文字の「s」になっていることを確認してください。これは秒単位であることを示します。例: 30s

oracle_configuration.oracle_metrics.query_timeout

String

省略可。Oracle Database インスタンスに対して実行する各クエリのタイムアウトを指定します。デフォルト値は 10 秒です。

値の末尾が小文字の「s」になっていることを確認してください。これは秒単位であることを示します。例: 30s

oracle_configuration.oracle_metrics.connection_parameters.username

String

Oracle Database インスタンスのクエリに使用するユーザー アカウントを指定します。

このユーザーに、Oracle Database のパフォーマンス ビューを読み取るために必要な権限があることを確認してください。

oracle_configuration.oracle_metrics.connection_parameters.host

String

データベース インスタンスをホストするローカルマシンの識別子を指定します。

oracle_configuration.oracle_metrics.connection_parameters.port

Int

Oracle Database インスタンスがクエリを受け付けるポートを指定します。

oracle_configuration.oracle_metrics.connection_parameters.service_name

String

エージェントでモニタリングする Oracle Database インスタンスのサービス名を指定します。

oracle_configuration.oracle_metrics.connection_parameters.secret.project_id

String

データベースにクエリを行うユーザーのパスワードを取得する Secret Manager のプロジェクト ID を指定します。

oracle_configuration.oracle_metrics.connection_parameters.secret.secret_name

String

ユーザー アカウントのパスワードを保存する Secret Manager のシークレットの名前を指定します。

Oracle 指標を収集して表示する

Oracle Database ワークロードの指標の収集を有効にできます。サポートされている指標をご覧ください。

指標の収集を有効にする

Agent for Compute Workloads を使用して Oracle 指標の収集を有効にするには、次の操作を行います。

  1. SSH を使用して VM インスタンスに接続します。

  2. Oracle OS ユーザーとして、oraenv ツールを実行して環境変数を設定します。ここでは、/etc/oratab ファイルで oracle ユーザーと ORACLE_SID がすでに定義されていることを前提としています。

    sudo su - oracle
    export PATH=$PATH:/usr/local/bin
    . oraenv
    sqlplus / as sysdba
    
  3. SYSDBA または SYSOPER ユーザーとして、Oracle Database で、前提条件で作成したシークレットと一致するパスワードを使用して、モニタリング用のユーザーを作成します。

    CREATE USER wlmagent IDENTIFIED BY password;
    
  4. SYSDBA ユーザーまたは SYSOPER ユーザーとして、パフォーマンス ビューにクエリを実行する権限をモニタリング ユーザーに付与します。

    • SESSION
    • SELECT_CATALOG_ROLE
    • SYSDG
    GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO wlmagent;
    
  5. sqlplusoracle ユーザーを終了します。

  6. root ユーザーとして、任意のエディタを使用してエージェントの構成ファイルを編集します。

    sudo nano /etc/google-cloud-workload-agent/configuration.json
    
  7. 構成ファイルで、oracle_metrics セクションを編集して次の更新を行います。

    1. パラメータ enabledtrue に設定します。
    2. service_name パラメータを設定して、エージェントでモニタリングする Oracle インスタンスのサービス名を指定します。
    3. エージェントがデータベースに接続するための Oracle ユーザー名を指定します。
    4. エージェントがデータベースに接続できるように、host パラメータと port パラメータを設定します。
    5. エージェントの secret パラメータを設定して、ユーザー名のパスワードを取得します。
      • project_id: Secret Manager データを含むプロジェクトの ID。
      • secret_name: Secret Manager のシークレットの名前。

    次に、構成ファイルの例を示します。

    {
      "log_level": "INFO",
      "common_discovery": {"collection_frequency": "3600s" },
      "oracle_configuration": {
        "enabled": true,
        "oracle_metrics": {
          "enabled": true,
          "collection_frequency": "30s",
          "connection_parameters": [
            {
              "host": "localhost",
              "port": 1521,
              "service_name": "orcl",
              "username": "wlmagent",
              "secret": {
                "project_id": "my-project",
                "secret_name": "wlmagent_password"
              }
            }
          ]
        }
      }
    }
    
  8. 構成ファイルを保存します。

  9. 新しい設定を有効にするには、エージェントを再起動します。

指標を表示する

収集された指標を表示し、Oracle のパフォーマンスとステータスをモニタリングするには、Metrics Explorer を使用するか、カスタム ダッシュボードをインポートします。

Metrics Explorer で指標を表示する

Metrics Explorer で Oracle 指標を表示する手順は次のとおりです。

  1. Google Cloud コンソールで [Monitoring] に移動します。
  2. [Metrics Explorer] をクリックします。
  3. [リソースタイプと指標を見つける] で、次の操作を行います。
    1. [Resource type] に [VM Instance] を選択します。
    2. [指標] で、表示する Oracle 指標を選択します。

必要に応じてフィルタと集計を使用して、選択した Oracle 指標のリアルタイム データと過去のデータを表示できます。

カスタム ダッシュボードをインポートする

エージェントによって収集された Oracle 指標を表示するには、カスタム ダッシュボードを作成して管理するの手順に沿って、カスタムの Cloud Monitoring ダッシュボードを作成します。

サンプル ダッシュボード oracle-status-overview.json と、そのインポート方法の手順を提供します。oracle-status-overview.json ダッシュボードには、次の Oracle 指標グラフが表示されます。

  • データベース時間の内訳
  • データベースのメモリ使用量
  • 待機クラス別の平均アクティブ セッション数
  • ディスク I/O
  • CPU 使用率
  • ネットワーク トラフィック

oracle-status-overview.json ダッシュボードをインポートする手順は次のとおりです。

  1. gcloud CLI がインストールされ、最新の状態であることを確認します。手順については、gcloud CLI をインストールするをご覧ください。

  2. Agent for Compute Workloads GitHub リポジトリから、oracle-status-overview.json ダッシュボードをダウンロードします。

    $ curl -H "Accept: application/vnd.github.v3.raw" -o oracle-status-overview.json https://api.github.com/repos/GoogleCloudPlatform/workloadagent/contents/observability/dashboards/oracle-status-overview.json
    
  3. 次のコマンドを実行して、ダッシュボードをインポートします。

    gcloud alpha monitoring dashboards create --config-from-file=oracle-status-overview.json
    

    コマンドを実行すると、Cloud Monitoring にカスタム ダッシュボードが作成されます。ダッシュボードを表示する方法については、ダッシュボードを検索して表示するをご覧ください。

サポートされている指標

Agent for Compute Workloads によって収集されたすべての Oracle 指標は、workload.googleapis.com/oracle パスで使用できます。

サポートされている Oracle 指標と、対応する Cloud Monitoring パスの一覧を次に示します。

  • プロセス メモリ

    • 使用中のプロセス(PGA)メモリ(バイト単位)。

      process/pga_memory/total_used_size

    • 割り当てられたプロセス(PGA)メモリ(バイト単位)

      process/pga_memory/total_allocated_size

  • 共有メモリ

    • 共有メモリ(SGA)アイテムのサイズ(バイト単位)

      process/sga_memory/size

  • システム待機イベント

    • 登録された待機クラスの合計待機数

      sys_wait/count

    • この待機クラスで費やされた合計時間(秒)

      sys_wait/time

    • この待機クラスのフォアグラウンド待機の合計

      sys_wait/foreground/count

    • この待機クラスのフォアグラウンド待機時間の合計(秒)

      sys_wait/foreground/time

  • システム経過時間

    • データベース ユーザーレベルの呼び出しの実行に費やされた経過時間(秒単位)

      sys_time/db_time

    • データベース ユーザーレベルの呼び出しで使用された CPU 時間(秒単位)

      sys_time/db_cpu

    • SQL ステートメントの実行経過時間

      sys_time/sql_execute_elapsed_time

    • SQL ステートメントの解析に費やされた経過時間

      sys_time/parse_time_elapsed

    • PL/SQL インタープリタの実行に費やされた経過時間

      sys_time/pl_sql_execution_elapsed_time

    • データベースのバックグラウンド プロセスで使用された経過時間(秒単位)

      sys_time/background_elapsed_time

  • I/O 統計情報

    • 読み取りオペレーションの合計数(小規模 + 大規模)

      iostat/read_ops_count

    • 書き込みオペレーションの合計数(小 + 大)

      iostat/write_ops_count

    • 読み取りバイト数の合計

      iostat/read_bytes_count

    • 書き込まれた合計バイト数

      iostat/write_bytes_count

    • I/O オペレーションあたりの平均レイテンシ

      iostat/average_latency_seconds

  • データファイル

    • データファイルの割り当てサイズ(バイト単位)

      data_files/total_bytes

    • 使用中のデータファイル スペース(バイト単位)

      data_files/bytes_used

    • データファイルの空き容量(バイト単位)

      data_files/available_bytes

    • データファイルの自動拡張の上限(バイト単位)

      data_files/max_bytes

    • 使用されたデータファイルの割合

      data_files/percent_used

  • データベース インスタンス

    • インスタンスの稼働時間(秒単位)

      instance/uptime

    • インスタンスのステータス

      instance/status

      この指標には次の値を指定できます。

      UNKNOWN 0
      STARTED 1
      MOUNTED 2
      OPEN 3
      OPEN MIGRATE 4
    • オープンモード

      instance/db_open_mode

      この指標には次の値を指定できます。

      UNKNOWN 0
      MOUNTED 1
      READ WRITE 2
      READ ONLY 3
      READ ONLY WITH APPLY 4
  • Oracle Data Guard

    • やり直しの適用遅延(秒)

      dataguard/apply_lag

    • やり直しの転送遅延(秒単位)

      dataguard/transport_lag

エージェントを管理する

エージェントを再起動する

Agent for Compute Workloads が停止するか、構成を更新した場合は、エージェントを再起動します。

  1. SSH を使用して VM インスタンスに接続します。
  2. 次のコマンドを実行します。

    sudo systemctl restart google-cloud-workload-agent

エージェントのバージョンを確認する

エージェントのバージョンを確認する手順は次のとおりです。

  1. SSH を使用して VM インスタンスに接続します。
  2. 次のコマンドを実行します。

    yum info google-cloud-workload-agent
    

更新を確認する

  1. SSH を使用して VM インスタンスに接続します。
  2. 次のコマンドを実行します。

    sudo yum check-update google-cloud-workload-agent

エージェントを更新する

エージェントの最新バージョンを使用するには、定期的に更新を確認し、エージェントを更新します。

  1. SSH を使用して VM インスタンスに接続します。
  2. 次のコマンドを実行します。

    sudo yum --nogpgcheck update google-cloud-workload-agent

エージェントのログを表示する

コンピューティング ワークロード用エージェントのログは /var/log/google-cloud-workload-agent.log で確認できます。

ログの詳細度は log_level パラメータで制御されます。DEBUG ログレベルを設定すると、特定の問題のトラブルシューティングに役立つ追加情報が含まれますが、ログのサイズが大幅に大きくなります。

デフォルトでは、Agent for Compute Workloads のログは VM インスタンスから Cloud Logging にリダイレクトされます。

Logging でエージェントのログを表示する手順は次のとおりです。

  1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. [クエリ] ペインに移動します。

  3. [リソース] プルダウン メニューから [グローバル] を選択し、[適用] をクリックします。

  4. クエリエディタで、「google-cloud-workload-agent」と入力します。

  5. [クエリを実行] をクリックします。

すべての VM インスタンスで実行されているエージェントによって生成されたログを表示できます。特定のインスタンスのログをフィルタできます。

Cloud Logging でエージェントログを構成する

エージェントのログの Cloud Logging へのデフォルトのリダイレクトを無効にするには、次の操作を行います。

  1. SSH を使用して VM インスタンスに接続します。

  2. エージェントの構成ファイルを開きます。

    /etc/google-cloud-workload-agent/configuration.json
  3. log_to_cloud プロパティの値を false に更新します。

  4. 構成ファイルを保存します。

  5. エージェントを再起動して、この変更を有効にします。

トラブルシューティング

以降のセクションでは、Oracle Database ワークロード用エージェントの使用に関連する一般的な問題とその原因、解決策について説明します。

十分な IAM 権限がない

問題: Agent for Compute Workloads のログに IAM 権限不足のエラーが表示される。

googleapi: Error 403: The client is not authorized to make this request.

原因: エージェントが使用するサービス アカウントに、 Google Cloud API にアクセスするために必要な IAM 権限がないか、Secret Manager の Oracle ユーザーのパスワードがありません。

解決策: この問題を解決するには、VM サービス アカウントに前提条件で説明されている IAM ロールと権限があることを確認します。

認証スコープが不十分

問題: Agent for Compute Workloads のログに認証スコープが不足していることが示される。

googleapi: Error 403: Request had insufficient authentication scopes.

原因: エージェントで使用されるサービス アカウントに必要なアクセス スコープがありません。

解決策: この問題を解決するには、VM のアクセス スコープcloud-platform に構成します。

指標が Cloud Monitoring に表示されない

問題: Agent for Compute Workloads の指標が Cloud Monitoring に表示されない。

原因:

この問題の原因として考えられるのは次のとおりです。

  • Agent for Compute Workloads で使用されるサービス アカウントに必要な IAM 権限がありません。
  • エージェントで使用される Oracle ユーザーに、パフォーマンス ビューをクエリするのに十分な権限がありません。
  • エージェントの設定にエラーがあります。

解決策:

  • サービス アカウントの権限が不足している問題を解決するには、次の操作を行います。

    1. Google Cloud コンソールで、[VM インスタンスの詳細] ページに移動し、エージェントを実行しているインスタンスで使用されているサービス アカウントをメモします。
    2. [IAM と管理] ページに移動し、サービス アカウントに前提条件に記載されている必要なロールと権限がすべて付与されていることを確認します。必要なロールのうち、サービス アカウントに付与されていないロールを付与します。
  • Oracle ユーザーの権限が不足している問題を解決するには、次の操作を行います。

    1. Oracle ユーザーに、パフォーマンス ビューをクエリするために必要な次の権限があることを確認します。

      • SESSION
      • SELECT_CATALOG_ROLE
      • SYSDG
    2. 次の SQL コマンドを実行して、不足している権限を付与します。

      -- Grant the "wlmagent" user the required permissions
      GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO USERNAME;
      
  • エージェントの構成ミスに関する問題を解決するには、次の操作を行います。

    1. SSH を使用して VM インスタンスに接続します。
    2. エージェントのログを確認して、指標の収集を妨げるエラーや問題がないか確認します。ログは /var/log/google-cloud-workload-agent.log にあります。

      権限エラー、構成ミス、接続の問題を探します。

    3. エラーがあれば解決します。

    4. エージェントを再起動し、指標の収集が開始されるかどうかを確認します。

構成ファイルを読み込めませんでした

問題: 構成ファイルに無効な値が含まれている場合、次のエラーが表示されます。

"Failed to load configuration","pid":3524,"error":"proto: (line 19:42): unknown
field "{field_name}"

解決策: この問題を解決するには、構成パラメータの詳細を使用して構成ファイルを更新します。

データ収集を初期化できませんでした

問題: エージェントのインストール後に構成ファイルが更新されないと、次のエラーが表示されます。

"Failed to initialize guest collection","pid":2112,"error":"invalid value for "user_name" "secret_name"

解決策: この問題を解決するには、構成パラメータを使用して認証情報構成を初期化します。