Oracle監視
最終更新日 - 18年2025月XNUMX日
LogicMonitor の Oracle パッケージを使用すると、ブロックされたセッション メトリック、ライブラリ キャッシュのパフォーマンス、バックアップとリカバリのアクティビティ、リソースの使用状況など、多数の Oracle 操作を監視できます。
Oracle データベースは、Groovy と JDBC 接続を使用して、統計テーブルへの読み取り専用権限を持つユーザー アカウントを介して監視されます。 複数のインスタンスが存在する場合、LogicMonitor は、正しく構成されたシステム (Linux の場合は SSH または Windows アクセスの場合は WMI) を持つクライアントを自動検出し、新しいデータベースが検出または作成されると自動的に監視を開始します。
互換性
LogicMonitor の Oracle パッケージは、Oracle バージョンと互換性があることが検証されています 12c 21c. パッケージは以前のバージョンの Oracle で動作する可能性がありますが、一部のデータポイントが利用できない場合があります。
セットアップ要件
セットアップ要件は次のとおりです。
- LogicModulesをインポートする
- デバイスをモニタリングに追加する
- Oracle ユーザーのセットアップ
LogicModulesをインポートする
LogicMonitor Exchange から、すべての Oracle LogicModules をインストールします。 パッケージ内のLogicModules このサポート記事のセクション。 これらの LogicModules が既に存在する場合は、最新バージョンであることを確認してください。 詳細については、次を参照してください。 LMエクスチェンジ.
監視にデバイスを追加する
Oracleリソースを監視に追加します。 監視にリソースを追加する方法の詳細については、を参照してください。 デバイスの追加.
Oracleユーザーの設定
LogicMonitor Collectorは、Oracleリソースに正常にアクセスするために、適切な資格情報を提供する必要があります。 これらの資格情報は、特定のシステムテーブルにアクセスできるOracleユーザーアカウントに属している必要があります。 ユーザーテーブルを公開する必要はなく、Oracleユーザーアカウントは読み取り専用である必要があります。
LogicMonitor監視の目的でOracleユーザーアカウントを設定するプロセスは、Oracleデータベースがコンテナデータベースであるか非コンテナデータベースであるかによって異なります。 に記載されている手順に従ってください データベースがCDBであるかどうかの判別 『Oracle Database管理者ガイド』のセクションで、Oracleデータベースのタイプを確認してください。
注意: このセクションで説明する手順は、読者が PL/SQL に関するある程度の知識を持ち、新しいユーザーを設定するために必要な管理権限 (SYSDBA) を持っていることを前提としています。
コンテナ データベースのセットアップ
次のスクリプトを実行して、コンテナ データベースに Oracle ユーザーを作成し、LogicMonitor によって照会された特定のシステム テーブルのみにアクセスできるようにします。 必ず更新してください、 とユーザー アカウントに割り当てる資格情報を含むプレースホルダー。
CREATE USER <username> IDENTIFIED BY <password>;
CREATE PROFILE <monitorProfile> LIMIT SESSIONS_PER_USER 30;
GRANT SELECT ON DBA_DATA_FILES to <username> CONTAINER=ALL;
GRANT SELECT ON DBA_SEGMENTS TO <username> CONTAINER=ALL;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS to <username> CONTAINER=ALL;
GRANT SELECT ON DBA_TABLESPACES TO <username> CONTAINER=ALL;
GRANT SELECT ON DBA_TEMP_FILES to <username> CONTAINER=ALL;
GRANT SELECT ON V_$ASM_DISKGROUP to <username> CONTAINER=ALL;
GRANT SELECT ON V_$BACKUP_ASYNC_IO TO <username> CONTAINER=ALL;
GRANT SELECT ON V_$BACKUP_FILES TO <username> CONTAINER=ALL;
GRANT SELECT ON V_$DATAFILE TO <username> CONTAINER=ALL;
GRANT SELECT ON V_$DATAFILE_HEADER to <username> CONTAINER=ALL;
GRANT SELECT ON v_$LIBRARYCACHE TO <username> CONTAINER=ALL;
GRANT SELECT ON v_$LOCK TO <username> CONTAINER=ALL;
GRANT SELECT ON V_$LOG to <username> CONTAINER=ALL;
GRANT SELECT ON V_$RECOVERY_FILE_DEST to <username> CONTAINER=ALL;
GRANT SELECT ON V_$RESOURCE_LIMIT TO <username> CONTAINER=ALL;
GRANT SELECT ON V_$RMAN_BACKUP_JOB_DETAILS TO <username> CONTAINER=ALL;
GRANT SELECT ON v_$session TO <username> CONTAINER=ALL;
GRANT SELECT ON v_$SESSION_LONGOPS TO <username> CONTAINER=ALL;
GRANT SELECT ON v_$sql TO <username> CONTAINER=ALL;
GRANT SELECT ON v_$SYSMETRIC to <username> CONTAINER=ALL;
GRANT SELECT ON V_$SYSSTAT TO <username> CONTAINER=ALL;
GRANT SELECT ON V_$VERSION to <username> CONTAINER=ALL;Oracleユーザーアカウントの設定に関するその他のリソースについては、以下を参照してください。
- マルチテナント:Oracle Database 12cリリース1(12.1)でのコンテナデータベース(CDB)およびプラガブルデータベース(PDB)のユーザーと権限の管理
- マルチテナントアーキテクチャの概要
非コンテナ データベースのセットアップ
次のスクリプトを実行して、コンテナ以外のデータベースに Oracle ユーザーを作成し、LogicMonitor によって照会された特定のシステム テーブルのみにアクセスできるようにします。 必ず更新してください、 とユーザー アカウントに割り当てる資格情報を含むプレースホルダー。
CREATE USER <username> IDENTIFIED BY <password>;
CREATE PROFILE <monitorProfile> LIMIT SESSIONS_PER_USER 30;
ALTER USER <username> PROFILE <monitorProfile>
GRANT SELECT ON DBA_DATA_FILES to <username>;
GRANT SELECT ON DBA_SEGMENTS TO <username>;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS to <username>;
GRANT SELECT ON DBA_TABLESPACES TO <username>;
GRANT SELECT ON DBA_TEMP_FILES to <username>;
GRANT SELECT ON V_$ASM_DISKGROUP to <username>;
GRANT SELECT ON V_$BACKUP_ASYNC_IO TO <username>;
GRANT SELECT ON V_$BACKUP_FILES TO <username>;
GRANT SELECT ON V_$DATAFILE TO <username>;
GRANT SELECT ON V_$DATAFILE_HEADER to <username>;
GRANT SELECT ON v_$LIBRARYCACHE TO <username>;
GRANT SELECT ON v_$LOCK TO <username>;
GRANT SELECT ON V_$LOG to <username>;
GRANT SELECT ON V_$RECOVERY_FILE_DEST to <username>;
GRANT SELECT ON V_$RESOURCE_LIMIT TO <username>;
GRANT SELECT ON V_$RMAN_BACKUP_JOB_DETAILS TO <username>;
GRANT SELECT ON v_$session TO <username>;
GRANT SELECT ON v_$SESSION_LONGOPS TO <username>;
GRANT SELECT ON v_$sql TO <username>;
GRANT SELECT ON v_$SYSMETRIC to <username>;
GRANT SELECT ON V_$SYSSTAT TO <username>;
GRANT SELECT ON V_$VERSION to <username>;資格証明の設定
監視目的でOracleユーザーアカウントが確立されたら、そのアカウントの資格情報をLogicMonitor内のOracleリソースのプロパティとして設定する必要があります。 次の表で強調表示されているように、Oracleリソースにも設定できる他の(オプションの)プロパティがあります。 プロパティの設定の詳細については、を参照してください。 リソースとインスタンスのプロパティ.
| プロパティ | 詳細説明 | 必須またはオプション |
| jdbc.oracle.user | Oracleユーザーアカウントに割り当てられたユーザー名。 どこにでも同じユーザー名を設定すると最も簡単です。 | 必須 |
| jdbc.oracle.pass | Oracleユーザーアカウントに割り当てられたパスワード。 | 必須 |
| jdbc.oracle.port | ポート番号。 空の場合、デフォルトのポート 1521 が使用されます。 | オプション |
| ssh ユーザー | Linuxシステムの場合、SSHユーザー名を入力して、データベースの自動検出を有効にします。 Windowsシステムは、データベースを自動的に自動検出する必要があります。 | オプション |
| ssh.pass | Linuxシステムの場合、SSHパスワードを入力して、データベースの自動検出を有効にします。 Windowsシステムは、データベースを自動的に自動検出する必要があります。 | オプション |
| ssh.証明書 | Linuxシステムの場合、SSHの証明書(必要な場合)を入力して、データベースの自動検出を有効にします。 Windowsシステムは、データベースを自動的に自動検出する必要があります。 | オプション |
| oracle.dbnames | データベース名のコンマ区切りリストを入力します。 | PDB を監視する場合、または Linux システムの SSH プロパティ経由でデータベースの自動検出が有効になっていない場合に必要です。 |
| システム カテゴリ | Oracle サーバーがデバイス上で検出されると、 OracleDB system.categories の値に追加されます。 | 必須。 通常の操作では、このプロパティは自動入力されます。 欠落している場合は、OracleDB を手動で追加できます。 |
| オラクル。 .url | 名前付きデータベースへの接続文字列。 | addCategory_OracleDatabase プロパティ ソースによって作成されていない場合にのみ必要です。 例: jdbc:oracle:thin:@[host]:[port]:[sid] or jdbc:oracle:thin:@[host]:[port]/[sid] |
| oracle.ssh.fileメソッド | データベース名とポートを検索するためのデフォルトの方法を変更するために使用されます。 | オプション。 受け入れるのみ リスナー オプションとして。 |
| oracle.ssh.ファイルの場所 | データベース名を処理するファイルの場所を変更します。ディレクトリ名を受け入れます。 oratab ファイルは \etc\ listener.ora のデフォルトは /var/opt/oracle/スラッシュで終わる必要があります / | オプション |
| oracle.rman.インスタンスフォーマット | (詳細)Oracle RMANバックアップセット経過時間モジュールのインスタンスグループの重複排除を有効にします。インスタンスグループが欠落している場合(例:重複排除)に、マルチインスタンスのOracle環境でのみ使用してください。 注意: このプロパティを設定すると、このリソースのモジュールの履歴が変更される可能性があります。 | オプション |
複数のユーザーやポート番号を持つ複数のOracleデータベースがある場合は、次のプロパティを使用して、データベースごとにこれらの設定を確立します。 これらのプロパティ リソースレベルで設定する必要があります 前の表で強調表示されているjdbc.oracle.user / pass / portプロパティを上書きします。
| プロパティ | 詳細説明 | 必須またはオプション |
| オラクル。 。ユーザー | 指定されたデータベースにアクセスできるOracleユーザーアカウントに割り当てられたユーザー名( Oracleデータベースの名前を持つプロパティ名のプレースホルダー)。 | オプション |
| オラクル。 。パスワード | 指定されたデータベースにアクセスできるOracleユーザーアカウントに割り当てられたパスワード( Oracleデータベースの名前を持つプロパティ名のプレースホルダー)。 | オプション |
| オラクル。 。ポート | 指定されたデータベースで使用されるポート番号(デフォルトのポート1521またはjdbc.oracle.portによって割り当てられたポートと異なる場合)( Oracleデータベースの名前を持つプロパティ名のプレースホルダー)。 | オプション |
| オラクル。 .url | 名前付きデータベースへの接続文字列。 | によって作成されていない場合にのみ必要です。 addCategory_OracleDatabase プロパティ ソース。 例: jdbc:oracle:thin:@[host]:[port]:[sid] or jdbc:oracle:thin:@[host]:[port]/[sid] |
レガシーOracleデータソースからの移行
2022 年 XNUMX 月、LogicMonitor は Oracle DataSource の新しいスイートをリリースしました。 LogicMonitor は、LogicMonitor の他のデータベース モジュールと一致するように Oracle モジュールを書き直しました。 新しいモジュールには、JDBC 接続文字列が必要です。 ポートは不要になりましたが、引き続き使用できます。 接続文字列をデバイスのプロパティとして公開することで、接続文字列、ユーザー名、およびパスワードがあれば、LogicMonitor で任意の Oracle データベースを監視できるようになりました。 これは、Oracle Cloud データベース、Azure Oracle DB、または AWS RDS インスタンスです。
既存のインストールのアップグレード
既存のインストールの場合、新しい DataSources (変換) をインストールする必要があります。
- PropertySources を削除します。
Oracle_Database_Info. - PropertySource を更新する
addCategory_OracleDatabaseおよびOracle_Database_Names. - それを確認する
addCategory_OracleDatabaseが実行され、追加されましたOracleDBカテゴリをデバイスに適用します。 - その
Oracle_Database_Names PropertySourceが実行され、すべての Oracle データベースにプロパティがありますauto.oracle.dbnamesおよびauto.oracle.dbnames.urlコラボレー データベース名 の名前の XNUMX つです。auto.oracle.dbnamesプロパティ。
注意: デバイスのプロパティが手動で構成されている場合 oracle.dbnames および oracle.port, Oracle_Database_Names JDBC 接続文字列の作成を試みます。 これが失敗した場合は、接続文字列を手動で追加する必要があります。 データソースの無効化の詳細については、次を参照してください。 データソースまたはインスタンスの監視を無効にする.
トラブルシューティング
Oracle Database Troubleshooter DataSource は、初期セットアップ時の構成と権限の問題をキャプチャするために存在します。 監視用の DataSource として設計されていません。 データが期待どおりに返されない場合は、リソース ツリーでこの DataSource に移動し、エラーの有無を確認します。 (エラーはリソース ツリーにインスタンスとして表示されます)。 さらに、トラブルシューティング ツールの DataSource によってキャプチャされたエラーは、アラートの詳細に含まれます。
注意:
接続とログインの問題を継続的に監視するには、モジュール Oracle_Database_ConnectStatus を使用する必要があります。
パッケージ内のLogicModules
Oracle用のLogicMonitorのパッケージは、次のLogicModuleで構成されています。 完全にカバーするには、これらのLogicModuleがすべてLogicMonitorプラットフォームにインポートされていることを確認してください。
| お名前 | タイプ | 詳細説明 |
| addCategory_Oracleデータベース | プロパティソース | OracleDB をリソースの system.categories プロパティに追加します。 |
| Oracle_データベース名 | プロパティソース | データベース名、接続文字列 (url)、およびデータベース バージョンのプロパティを作成します。 |
| Oracle_Database_ASMストレージ | データソース | Oracle ASMストレージのステータスと使用率を表示します。 |
| Oracle_Database_ConnectionStatus | データソース | コレクタが Oracle データベースに接続できるかどうかをチェックします。 また、select ステートメントの往復時間もレポートします。 失敗時に TNS エラー コードまたは ORA エラー コードを返します。 詳細については、を参照してください。 Oracle 接続ステータス データソース. |
| Oracle_Database_DatafileStatus | データソース | データ ファイルのステータスを表示します。 |
| Oracle_Database_DiskUsage | データソース | データ、ログ、および一時ファイルによって使用されるスペースの量を表示します。 |
| Oracle_Database_FRAUtilization | データソース | 高速リカバリ領域のディスク クォータと現在のディスク使用量に関する情報を表示します。 リカバリ領域がいっぱいに近づくと警告します。 |
| Oracle_Database_MonitorUser | データソース | 監視ユーザーがOracleで使用しているセッション数を監視します。 アクティブ、非アクティブ、および強制終了されたセッションを報告します。 |
| Oracle_Database_TableSpaceUsage | データソース | OracleTableSpaceの使用メトリック。 |
| Oracle_Database_TableSpaceUsageMaxGrowth | データソース | データファイル内のテーブルスペースに割り当てられたバイトと空きバイトを表示し、データファイルを拡張できる最大サイズを示します。 |
| Oracle_Database_RMANBackupAsyncIOByType | データソース | 進行中および最近完了したRMANのバックアップと復元に関するパフォーマンス情報。 |
| Oracle_Database_RMANBackupSyncIOByType | データソース | 進行中および最近完了したRMANのバックアップと復元に関するパフォーマンス情報。 |
| Oracle_Database_RMANBackupSetsAge | 情報元 | Oracle RMAN バックアップ セットの経過時間を監視します。 推奨事項: Oracle環境がマルチインスタンスであり、一部のRMANインスタンスグループが期待どおりに検出されない場合は、リソースプロパティを「 |
| Oracle_Database_RMAN最新のバックアップファイル | データソース | セット タイプのないバックアップに関する情報。 |
| Oracle_Database_RMANlatestBackupJobByType | データソース | 最新の RMAN ジョブに関する情報。 |
| Oracle_Database_BlockedSessions | データソース | データベース上でブロックされたセッションごとにインスタンスを作成します。 |
| Oracle_Database_BlockedSession概要 | データソース | データベースでブロックされたセッションの合計数。 |
| Oracle_Database_ResourceLimits | データソース | 一部のシステム リソースのグローバル リソースの使用に関する情報を表示します。 |
| Oracle_Database_LongOperations | データソース | XNUMX 秒以上続く最新の操作に関する情報。 |
| Oracle_Database_SystemStats | データソース | データベースインスタンスの統計をOracleから取得します。 |
| Oracle_Database_SystemMetrics | データソース | 過去60秒間のOracleデータベースのV $ Sysmetricテーブルのシステムメトリック値を表示します。 |
| Oracle_Database_TableSpaceStatus | データソース | Oracleデータベースの表領域を検出し、それらがオンライン、読み取り専用、またはオフラインのいずれであるかを判別します。 |
| Oracle_データベース_トラブルシューティング | データソース | OracleDatabaseの構成の問題に関する問題を示します。 テーブルのアクセス許可をチェックして、すべてのテーブルが使用可能であることを確認します。 |
| Oracle_Database_IndividualSchemaSize | データソース | 各所有者の個々のスキーマのサイズ。 |
| Oracle_Database_SessionsWaiting_LockRelease | データソース | テーブル、スキーマ、またはデータベースがロックされている別のセッションによってブロックされたセッションの数。 |
| Oracle_Database_LibraryCache | データソース | ライブラリキャッシュのパフォーマンスとアクティビティに関する情報。 |
| Oracle_Database_WinServices | データソース | Oracleデータベースに関連付けられているWindowsサービスのステータスを監視します。 |
このパッケージによって追跡されるさまざまなメトリックに静的データポイントのしきい値を設定する場合、LogicMonitorはテクノロジ所有者のベストプラクティスのKPI推奨事項に従います。 必要に応じて、これらの事前定義されたしきい値を調整して、環境固有のニーズを満たすことをお勧めします。 データポイントのしきい値の調整の詳細については、を参照してください。 データポイントの静的しきい値の調整.
Oracle 接続ステータス データソース
私達の Oracle_Database_ConnectionStatus DataSource は、コレクターから Oracle データベースへの接続を確認するために使用されます。 デフォルトでは、DataSource はアラートを出す前に Oracle データベースへの接続を XNUMX 回試行します。
- 最初の試行が失敗した場合: DataSource は XNUMX 秒間待ってから、再度接続を試みます。
- 12 回目の試行が失敗した場合: DataSource は XNUMX 秒間待ってから、再度接続を試みます。
- XNUMX 回目の試行が失敗した場合: アラートが送信されます。
試行回数と試行間の時間の長さは、デバイスのプロパティで設定できます。 DataSource がタイムアウトにならないように注意する必要があります。 デフォルトのタイムアウトは 180 秒ですが、コレクターのプロパティで変更できます。
データベースへの接続が成功すると、DataSource は select ステートメントを実行します。 SELECT SYSDATE FROM DUAL; 返された行数と実行時間を報告します。 この select ステートメントは、デバイス プロパティでオーバーライドできます。 プロパティの形式は次のとおりです。 oracle.propertyName or oracle.dbname.propertyName。 いつ oracle.dbname.propertyName を使用すると、プロパティは特定のデータベース名に使用されます。 ないとき dbname 指定すると、DataSource はデバイス上の各データベース インスタンスのプロパティを使用します。
プロパティ
これらのプロパティはすべてオプションですが、低速の接続では必要になる場合があります。
| プロパティ名 | 詳細説明 | 例: | デフォルト |
| oracle.sqltest or オラクル。データベース名。sqltest | 接続テストが実行されるたびに実行される SQL ステートメント。 の jdbc.oracle.userステートメントが成功するには、このテーブルにアクセスできる必要があります。 | SELECT ユーザーID FROM dba_users | SELECT システムデート FROM DUAL |
| oracle.max_retries or オラクル。データベース名。max_retries | アラートを生成するまでの再試行回数。 この数値を高く設定しすぎると、DataSource のタイムアウトが発生する可能性があり、アラートは送信されません。 の組み合わせ max_retries および wait_time180 秒未満にする必要があります。 | 5 | 3 |
| oracle.wait_time or オラクル。データベース名。待ち時間 | 最初の試行の待機時間 (秒)。 その後の試行は wait_time * retrycount. この数値を高く設定しすぎると、コレクターのタイムアウトが発生したり、アラートを見逃したりする可能性があります。 | 4 | 3 |
サンプルセットアップ
