Oracle監視

最終更新日: 29 年 2023 月 XNUMX 日

LogicMonitor の Oracle パッケージを使用すると、ブロックされたセッション メトリック、ライブラリ キャッシュのパフォーマンス、バックアップとリカバリのアクティビティ、リソースの使用状況など、多数の Oracle 操作を監視できます。

Oracle データベースは、Groovy と JDBC 接続を使用して、統計テーブルへの読み取り専用権限を持つユーザー アカウントを介して監視されます。 複数のインスタンスが存在する場合、LogicMonitor は、正しく構成されたシステム (Linux の場合は SSH または Windows アクセスの場合は WMI) を持つクライアントを自動検出し、新しいデータベースが検出または作成されると自動的に監視を開始します。

互換性

LogicMonitor の Oracle パッケージは、Oracle バージョンと互換性があることが検証されています 12c21c. パッケージは以前のバージョンの 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 ユーザーを作成し、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.userOracleユーザーアカウントに割り当てられたユーザー名。 どこにでも同じユーザー名を設定すると最も簡単です。必須
jdbc.oracle.passOracleユーザーアカウントに割り当てられたパスワード。必須
jdbc.oracle.portポート番号。 空の場合、デフォルトのポート 1521 が使用されます。オプション
ssh ユーザーLinuxシステムの場合、SSHユーザー名を入力して、データベースの自動検出を有効にします。 Windowsシステムは、データベースを自動的に自動検出する必要があります。オプション
ssh.passLinuxシステムの場合、SSHパスワードを入力して、データベースの自動検出を有効にします。 Windowsシステムは、データベースを自動的に自動検出する必要があります。オプション
ssh.証明書Linuxシステムの場合、SSHの証明書(必要な場合)を入力して、データベースの自動検出を有効にします。 Windowsシステムは、データベースを自動的に自動検出する必要があります。オプション
oracle.dbnamesデータベース名のコンマ区切りリストを入力します。PDB を監視する場合、または Linux システムの SSH プロパティ経由でデータベースの自動検出が有効になっていない場合に必要です。
システム カテゴリOracle サーバーがデバイス上で検出されると、 OracleDB system.categories の値に追加されます。必須。 通常の操作では、このプロパティは自動入力されます。 欠落している場合は、OracleDB を手動で追加できます。
oracle.dbname.URL名前付きデータベースへの接続文字列。addCategory_OracleDatabase プロパティ ソースによって作成されていない場合にのみ必要です。   

例: jdbc:oracle:thin:@[ホスト]:[ポート]:[sid]
oracle.ssh.fileメソッドデータベース名とポートを検索するためのデフォルトの方法を変更するために使用されます。オプション。 受け入れるのみ リスナー オプションとして。
oracle.ssh.ファイルの場所データベース名を処理するファイルの場所を変更します。ディレクトリ名を受け入れます。 oratab ファイルは \etc\ listener.ora のデフォルトは /var/opt/oracle/スラッシュで終わる必要があります /オプション

複数のユーザーやポート番号を持つ複数のOracleデータベースがある場合は、次のプロパティを使用して、データベースごとにこれらの設定を確立します。 これらのプロパティ リソースレベルで設定する必要があります 前の表で強調表示されているjdbc.oracle.user / pass / portプロパティを上書きします。

プロパティ説明必須またはオプション
オラクル。 。ユーザー指定されたデータベースにアクセスできるOracleユーザーアカウントに割り当てられたユーザー名( Oracleデータベースの名前を持つプロパティ名のプレースホルダー)。オプション
オラクル。 。パスワード指定されたデータベースにアクセスできるOracleユーザーアカウントに割り当てられたパスワード( Oracleデータベースの名前を持つプロパティ名のプレースホルダー)。オプション
オラクル。 。ポート指定されたデータベースで使用されるポート番号(デフォルトのポート1521またはjdbc.oracle.portによって割り当てられたポートと異なる場合)( Oracleデータベースの名前を持つプロパティ名のプレースホルダー)。オプション
オラクル。 .url名前付きデータベースへの接続文字列。によって作成されていない場合にのみ必要です。 addCategory_OracleDatabase プロパティ ソース。   

例: jdbc:oracle:thin:@[ホスト]:[ポート]:[sid]

レガシーOracleデータソースからの移行

2022 年 XNUMX 月、LogicMonitor は Oracle DataSource の新しいスイートをリリースしました。 LogicMonitor は、LogicMonitor の他のデータベース モジュールと一致するように Oracle モジュールを書き直しました。 新しいモジュールには、JDBC 接続文字列が必要です。 ポートは不要になりましたが、引き続き使用できます。 接続文字列をデバイスのプロパティとして公開することで、接続文字列、ユーザー名、およびパスワードがあれば、LogicMonitor で任意の Oracle データベースを監視できるようになりました。 これは、Oracle Cloud データベース、Azure Oracle DB、または AWS RDS インスタンスです。

既存のインストールのアップグレード

既存のインストールの場合、新しい DataSources (変換) をインストールする必要があります。

  1. PropertySources を削除します。 Oracle_Database_Info.
  2. PropertySource を更新する addCategory_OracleDatabase および Oracle_Database_Names
  3. それを確認する addCategory_OracleDatabase が実行され、追加されました OracleDB カテゴリをデバイスに適用します。
  4. その 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 によってキャプチャされたエラーは、アラートの詳細に含まれます。

パッケージ内の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 情報元ファイルの種類ごとに、最新のバックアップ セットの経過時間を表示します。 バックアップに 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_usersSELECT システムデート FROM DUAL
oracle.max_retries

or

オラクル。データベース名。max_retries
アラートを生成するまでの再試行回数。 この数値を高く設定しすぎると、DataSource のタイムアウトが発生する可能性があり、アラートは送信されません。 の組み合わせ max_retries および wait_time
 180 秒未満にする必要があります。
53
oracle.wait_time

or

オラクル。データベース名。待ち時間
最初の試行の待機時間 (秒)。 その後の試行は wait_time * retrycount. この数値を高く設定しすぎると、コレクターのタイムアウトが発生したり、アラートを見逃したりする可能性があります。43

サンプルセットアップ

記事上で