ホストに Oracle Database とともに Google Cloudのコンピューティング ワークロード用エージェントを設定して、指標を収集し、Oracle Database ワークロードをモニタリングできます。
このドキュメントでは、Oracle Database ワークロードを実行する Compute Engine インスタンスに Agent for Compute Workloads をインストール、構成、検証する方法について説明します。
エージェントは、Oracle Database のパフォーマンス ビュー(V$DATABASE
、V$INSTANCE
、V$DATAGUARD_STATS
など)とデータ ディクショナリ ビュー(DBA_DATA_FILES
、DBA_FREE_SPACE
など)をクエリして、さまざまな Oracle 指標を収集します。これらの指標は Cloud Monitoring に送信され、可視化と分析に使用できます。サポートされている指標をご覧ください。
システム要件
オペレーティング システム | Oracle のバージョン | Oracle エディション |
---|---|---|
|
|
|
前提条件
Oracle Database ワークロードをモニタリングするために Agent for Compute Workloads をインストールする前に、次の前提条件が満たされていることを確認してください。
Compute Engine インスタンスをまだ作成していない場合は作成します。アクセス スコープを
cloud-platform
に構成します。一般公開ネットワーク アクセスまたは限定公開ネットワーク アクセスを使用して、 Google Cloud API エンドポイントへの接続を有効にします。
指標の収集を有効にする場合は、Secret Manager にシークレットを作成して、このガイドで後ほど作成するデータベース ユーザーのデータベース パスワードを保存します。
このガイドの例では、
wlmagent-password
であると想定しています。サービス アカウントに Identity and Access Management(IAM)ロールを付与します。
Google Cloudの Compute Workloads 用エージェントは、VM に関連付けられた Identity and Access Management(IAM)サービス アカウントを使用して、 Google Cloud での認証と Google Cloud リソースへのアクセス権限を取得します。次の IAM ロールを含む新しいサービス アカウントを使用します。
- Compute 閲覧者(roles/compute.viewer)
- モニタリング指標の書き込み(roles/monitoring.metricWriter)
Secret Manager のシークレット アクセサー(roles/secretmanager.secretAccessor)
最小権限の原則に従って、
Secret Manager Secret Accessor
ロールはプロジェクト レベルではなくシークレット レベルで付与することをおすすめします。これにより、サービス アカウントが必要とする特定のシークレットへのアクセスのみが制限されます。
ロールを付与する方法については、サービス アカウントに対するアクセス権の管理をご覧ください。
Google Cloud API へのアクセスを有効にします。
Google Cloud API へのアクセスを有効にするには、VM を作成してサービス アカウントを接続するをご覧ください。
Google CloudAPI にアクセスするように VM インスタンスを構成し、サービス アカウントに割り当てられた IAM 権限を使用してアクセス制御を管理することをおすすめします。ユーザー管理のサービス アカウントと認可をご覧ください。
外部 IP アドレスを持たない VM インスタンスで Oracle Database を実行している場合は、VM のサブネットで限定公開の Google アクセスを有効にして、Compute Workloads 用エージェントがGoogle Cloud API とサービスにアクセスできるようにします。サブネットで限定公開の Google アクセスを有効にするには、限定公開の Google アクセスを構成するをご覧ください。
エージェントをインストールする
Agent for Compute Workloads をインストールする手順は次のとおりです。
リポジトリ構成ファイルを作成します。
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
パッケージ マネージャーのメタデータを更新します。
sudo yum makecache
google-cloud-workload-agent
rpm パッケージをインストールします。sudo yum install google-cloud-workload-agent
Oracle 用エージェントをインストールしたら、エージェントのインストールを確認します。
エージェントのインストールを確認する
エージェントが実行されていることを確認するには、ご使用のオペレーティング システムに合わせて次の操作を行います。
- SSH を使用して VM インスタンスに接続します。
次のコマンドを実行します。
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 |
INFO です。 |
|
log_to_cloud |
エージェントのログを Cloud Logging にリダイレクトするには、 |
|
oracle_configuration.enabled |
省略可。Oracle サービスがアクティブかどうかを判断します。 |
|
次の子パラメータは、oracle_configuration.enabled: true を指定した場合にのみ適用されます。 |
||
oracle_configuration.oracle_discovery.enabled |
省略可。Oracle Discovery がアクティブかどうかを判断します。 デフォルト値は |
|
oracle_configuration.oracle_discovery.update_frequency |
省略可。サンプル間隔を秒単位で指定します。これにより、Compute Workloads 用エージェントが検出プロセスを実行する頻度が決まります。デフォルト値は 3,600 秒(1 時間)です。 値の末尾が小文字の「s」になっていることを確認してください。これは秒単位であることを示します。例: |
|
oracle_configuration.oracle_metrics.enabled |
省略可。Agent for Compute Workloads が Oracle モニタリング指標を収集できるようにするには、 |
|
次の子パラメータは、 |
||
oracle_configuration.oracle_metrics.collection_frequency |
省略可。サンプル間隔を秒単位で指定します。これにより、Compute Workloads 用エージェントが Oracle Database インスタンスにクエリを実行して Oracle モニタリング指標を収集する頻度を決定します。デフォルト値は 60 秒です。 値の末尾が小文字の「s」になっていることを確認してください。これは秒単位であることを示します。例: |
|
oracle_configuration.oracle_metrics.query_timeout |
省略可。Oracle Database インスタンスに対して実行する各クエリのタイムアウトを指定します。デフォルト値は 10 秒です。 値の末尾が小文字の「s」になっていることを確認してください。これは秒単位であることを示します。例: |
|
oracle_configuration.oracle_metrics.connection_parameters.username |
Oracle Database インスタンスのクエリに使用するユーザー アカウントを指定します。 このユーザーに、Oracle Database のパフォーマンス ビューを読み取るために必要な権限があることを確認してください。 |
|
oracle_configuration.oracle_metrics.connection_parameters.host |
データベース インスタンスをホストするローカルマシンの識別子を指定します。 |
|
oracle_configuration.oracle_metrics.connection_parameters.port |
Oracle Database インスタンスがクエリを受け付けるポートを指定します。 |
|
oracle_configuration.oracle_metrics.connection_parameters.service_name |
エージェントでモニタリングする Oracle Database インスタンスのサービス名を指定します。 |
|
oracle_configuration.oracle_metrics.connection_parameters.secret.project_id |
データベースにクエリを行うユーザーのパスワードを取得する Secret Manager のプロジェクト ID を指定します。 |
|
oracle_configuration.oracle_metrics.connection_parameters.secret.secret_name |
ユーザー アカウントのパスワードを保存する Secret Manager のシークレットの名前を指定します。 |
Oracle 指標を収集して表示する
Oracle Database ワークロードの指標の収集を有効にできます。サポートされている指標をご覧ください。
指標の収集を有効にする
Agent for Compute Workloads を使用して Oracle 指標の収集を有効にするには、次の操作を行います。
SSH を使用して VM インスタンスに接続します。
Oracle OS ユーザーとして、
oraenv
ツールを実行して環境変数を設定します。ここでは、/etc/oratab
ファイルでoracle
ユーザーとORACLE_SID
がすでに定義されていることを前提としています。sudo su - oracle export PATH=$PATH:/usr/local/bin . oraenv sqlplus / as sysdba
SYSDBA
またはSYSOPER
ユーザーとして、Oracle Database で、前提条件で作成したシークレットと一致するパスワードを使用して、モニタリング用のユーザーを作成します。CREATE USER wlmagent IDENTIFIED BY password;
SYSDBA
ユーザーまたはSYSOPER
ユーザーとして、パフォーマンス ビューにクエリを実行する権限をモニタリング ユーザーに付与します。SESSION
SELECT_CATALOG_ROLE
SYSDG
GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO wlmagent;
sqlplus
とoracle
ユーザーを終了します。root ユーザーとして、任意のエディタを使用してエージェントの構成ファイルを編集します。
sudo nano /etc/google-cloud-workload-agent/configuration.json
構成ファイルで、
oracle_metrics
セクションを編集して次の更新を行います。- パラメータ
enabled
をtrue
に設定します。 service_name
パラメータを設定して、エージェントでモニタリングする Oracle インスタンスのサービス名を指定します。- エージェントがデータベースに接続するための Oracle ユーザー名を指定します。
- エージェントがデータベースに接続できるように、
host
パラメータとport
パラメータを設定します。 - エージェントの
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" } } ] } } }
- パラメータ
構成ファイルを保存します。
新しい設定を有効にするには、エージェントを再起動します。
指標を表示する
収集された指標を表示し、Oracle のパフォーマンスとステータスをモニタリングするには、Metrics Explorer を使用するか、カスタム ダッシュボードをインポートします。
Metrics Explorer で指標を表示する
Metrics Explorer で Oracle 指標を表示する手順は次のとおりです。
- Google Cloud コンソールで [Monitoring] に移動します。
- [Metrics Explorer] をクリックします。
- [リソースタイプと指標を見つける] で、次の操作を行います。
- [Resource type] に [VM Instance] を選択します。
- [指標] で、表示する Oracle 指標を選択します。
必要に応じてフィルタと集計を使用して、選択した Oracle 指標のリアルタイム データと過去のデータを表示できます。
カスタム ダッシュボードをインポートする
エージェントによって収集された Oracle 指標を表示するには、カスタム ダッシュボードを作成して管理するの手順に沿って、カスタムの Cloud Monitoring ダッシュボードを作成します。
サンプル ダッシュボード oracle-status-overview.json
と、そのインポート方法の手順を提供します。oracle-status-overview.json
ダッシュボードには、次の Oracle 指標グラフが表示されます。
- データベース時間の内訳
- データベースのメモリ使用量
- 待機クラス別の平均アクティブ セッション数
- ディスク I/O
- CPU 使用率
- ネットワーク トラフィック
oracle-status-overview.json
ダッシュボードをインポートする手順は次のとおりです。
gcloud CLI がインストールされ、最新の状態であることを確認します。手順については、gcloud CLI をインストールするをご覧ください。
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
次のコマンドを実行して、ダッシュボードをインポートします。
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
-
読み取りオペレーションの合計数(小規模 + 大規模)
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
-
やり直しの適用遅延(秒)
dataguard/apply_lag
やり直しの転送遅延(秒単位)
dataguard/transport_lag
エージェントを管理する
エージェントを再起動する
Agent for Compute Workloads が停止するか、構成を更新した場合は、エージェントを再起動します。
- SSH を使用して VM インスタンスに接続します。
次のコマンドを実行します。
sudo systemctl restart google-cloud-workload-agent
エージェントのバージョンを確認する
エージェントのバージョンを確認する手順は次のとおりです。
- SSH を使用して VM インスタンスに接続します。
次のコマンドを実行します。
yum info google-cloud-workload-agent
更新を確認する
- SSH を使用して VM インスタンスに接続します。
次のコマンドを実行します。
sudo yum check-update google-cloud-workload-agent
エージェントを更新する
エージェントの最新バージョンを使用するには、定期的に更新を確認し、エージェントを更新します。
- SSH を使用して VM インスタンスに接続します。
次のコマンドを実行します。
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 でエージェントのログを表示する手順は次のとおりです。
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
[ログ エクスプローラ] に移動
[クエリ] ペインに移動します。
[リソース] プルダウン メニューから [グローバル] を選択し、[適用] をクリックします。
クエリエディタで、「
google-cloud-workload-agent
」と入力します。[クエリを実行] をクリックします。
すべての VM インスタンスで実行されているエージェントによって生成されたログを表示できます。特定のインスタンスのログをフィルタできます。
Cloud Logging でエージェントログを構成する
エージェントのログの Cloud Logging へのデフォルトのリダイレクトを無効にするには、次の操作を行います。
SSH を使用して VM インスタンスに接続します。
エージェントの構成ファイルを開きます。
/etc/google-cloud-workload-agent/configuration.json
log_to_cloud
プロパティの値をfalse
に更新します。構成ファイルを保存します。
エージェントを再起動して、この変更を有効にします。
トラブルシューティング
以降のセクションでは、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 ユーザーに、パフォーマンス ビューをクエリするのに十分な権限がありません。
- エージェントの設定にエラーがあります。
解決策:
サービス アカウントの権限が不足している問題を解決するには、次の操作を行います。
- Google Cloud コンソールで、[VM インスタンスの詳細] ページに移動し、エージェントを実行しているインスタンスで使用されているサービス アカウントをメモします。
- [IAM と管理] ページに移動し、サービス アカウントに前提条件に記載されている必要なロールと権限がすべて付与されていることを確認します。必要なロールのうち、サービス アカウントに付与されていないロールを付与します。
Oracle ユーザーの権限が不足している問題を解決するには、次の操作を行います。
Oracle ユーザーに、パフォーマンス ビューをクエリするために必要な次の権限があることを確認します。
SESSION
SELECT_CATALOG_ROLE
SYSDG
次の SQL コマンドを実行して、不足している権限を付与します。
-- Grant the "wlmagent" user the required permissions GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO USERNAME;
エージェントの構成ミスに関する問題を解決するには、次の操作を行います。
- SSH を使用して VM インスタンスに接続します。
エージェントのログを確認して、指標の収集を妨げるエラーや問題がないか確認します。ログは
/var/log/google-cloud-workload-agent.log
にあります。権限エラー、構成ミス、接続の問題を探します。
エラーがあれば解決します。
エージェントを再起動し、指標の収集が開始されるかどうかを確認します。
構成ファイルを読み込めませんでした
問題: 構成ファイルに無効な値が含まれている場合、次のエラーが表示されます。
"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"
解決策: この問題を解決するには、構成パラメータを使用して認証情報構成を初期化します。