このページでは、IBM DB2 コレクタの設定について詳しく説明しています。

前提条件

データベースの可視性で IBM DB2 をモニタするには、DB2 9.x 以降を実行している必要があります。 

Connection Details

セクションフィールド説明
新しいコレクタの作成データベースタイプモニタするデータベースタイプ。
Agent(エージェント)コレクタを管理するデータベースエージェント。
Collector Nameコレクタを識別する名前。
接続の詳細[ホスト名] または [IP アドレス]データベースが実行されているマシンのホスト名または IP アドレス。
データベース

モニタ対象のデータベースインスタンスの名前。

データベースインスタンスが複数のデータベースをホストする場合は、データベースごとに個別のコレクタを作成してください。

Listener Portデータベースエージェントと通信するデータベースのポートの TCP/IP アドレス。
Custom JDBC Connection String

データベースエージェントによって生成された JDBC 接続文字列(jdbc:db2:// など)。カスタムの接続文字列を指定することもできます。これはカスタム認証オプションを設定する場合に有効です。

Kerberos 認証に接続文字列を使用している場合は、[Advanced Options] の下の [Kerberos] オプションを選択してください。

[Username] と [Password]ユーザ名データベースエージェントを介してデータベースに接続し、データベースをモニタしているユーザの名前。ユーザは、「IBM DB2 LUW のユーザ権限」で説明されている権限を持っている必要があります。
パスワードデータベースエージェントを介してデータベースに接続し、データベースをモニタしているユーザのパスワード。
Cyberarkデータベースのユーザ名とパスワードに対して CyberArk を有効にする場合にクリックします。CyberArk を有効にすると、データベースのユーザ名とパスワードを取得するために、アプリケーション、安全、フォルダ、およびオブジェクトに関する情報が必要になります。データベースの可視性とともに CyberArk を使用するには、CyberArk Web サイトから JavaPasswordSDK.jar ファイルをダウンロードし、ファイルの名前を cyberark-sdk-9.5.jar に変更する必要があります。その後、この JAR ファイルをデータベースエージェント zip ファイルの lib ディレクトリにコピーする必要があります。 
詳細オプションSub-Collectors

複数のデータベースインスタンスを統合ビューでモニタし、複数のデータベースのメトリックを集約する場合にクリックします。カスタムクラスタをモニタするには、サブコレクタごとに追加のホスト名または IP アドレス、およびポートの詳細を追加できます。合計で最大 29 個のサブコレクタを追加できます。したがって、カスタムクラスタで 30 個のデータベースをモニタできます。メインコレクタによって消費されるライセンスに加え、各サブコレクタはデータベースタイプに応じて 1 つ以上のライセンスを消費します。

注意

  • ホスト名または IP アドレス以外のすべての接続パラメータ、およびサブコレクタのポートの詳細はメインコレクタと同じです。コレクタの設定を作成または編集する際にサブコレクタに異なるパラメータを指定する場合は、コレクタの作成 API を使用してのみ、これを行うことができます。

  • カスタムクラスタコレクタをスタンドアロンコレクタに変換することはできません。スタンドアロンデータベースをモニタする場合は、カスタムクラスタコレクタ全体を削除し、新しいスタンドアロンコレクタを作成します。ただし、カスタムクラスタコレクタを削除すると、すべての履歴データが削除されることに注意してください。
接続プロパティ(Connection Properties)

新しい JDBC 接続プロパティを追加するか、またはリレーショナルデータベースの既存のプロパティを編集する場合にクリックします。

Kerberos 認証を使用してデータベースをモニタリングするには、「Kerberos 認証を使用した IBM DB2 データベースのモニタ」で説明されている手順に従います。

Kerberosクリックして Kerberos 認証を使用し、データベースユーザとホストユーザのパスワードを管理します。
Monitor Operating Systemサーバハードウェアをモニタするデータベースエージェントの構成」を参照してください

IBM DB2 LUW のユーザ権限

モニタリングユーザは、モニタするために SYSMON 権限と接続権限が必要です。このユーザは sysmon_group の一員である必要があります。

実行プランを生成するには、スキーマで関連する EXPLAIN テーブルを作成する必要があります。

DB2 9.7 以降

データベースの可視性の完全な機能を使用するには、DB2 サーバのモニタリングスイッチ「TIMESTAMP」を有効にする必要があります。

「TIMESTAMP」モニタリングスイッチを有効にするには、次のように入力します。

update dbm cfg using dft_mon_timestamp on;
update db cfg using mon_act_metrics BASE
CODE

Privileges

grant select on SYSIBMADM.MON_CURRENT_SQL to user DBMon_Agent_User
grant select on SYSIBMADM.MON_LOCKWAITS to user DBMon_Agent_User
grant execute on function SYSPROC.MON_GET_CONNECTION to user DBMon_Agent_User
grant execute on function SYSPROC.MON_GET_PKG_CACHE_STMT to user DBMon_Agent_User
(version 10.5 and above) grant execute on function SYSPROC.MON_GET_TRANSACTION_LOG to DBMon_Agent_User
(version 10.5 and above) grant execute on function SYSPROC.MON_GET_DATABASE to DBMon_Agent_User
CODE

DBMon_Agent_User はデータベースの可視性エージェントを実行するユーザ名に置き換えます。

DB2 9.5

データベースの可視性の完全な機能を使用するには、DB2 サーバのモニタリングスイッチ「STATEMENT」および「TIMESTAMP」を有効にする必要があります。

これらのモニタリングスイッチを有効にするには、次のように入力します。

update dbm cfg using dft_mon_stmt on;
update dbm cfg using dft_mon_timestamp on;
CODE

Privileges

grant select on SYSIBMADM.SNAPSTMT to user DBMon_Agent_User 
grant select on SYSIBMADM.SNAPAPPL_INFO to user DBMon_Agent_User 
grant select on table SYSIBMADM.ENV_PROD_INFO to user DBMon_Agent_User 
CODE

ここで、DBMon_Agent_User は、データベースの可視性エージェントを実行するユーザ名です。

restrict_access が [YES] に設定されている場合のユーザ権限

データベースの restrict_access パラメータが [YES] に設定されている場合は、次の権限を付与する必要があります。

grant select on SYSIBMADM.MON_CURRENT_SQL to user DBMon_Agent_User;
grant select on SYSIBMADM.MON_LOCKWAITS to user DBMon_Agent_User;
grant execute on function SYSPROC.MON_GET_CONNECTION to user DBMon_Agent_User;
grant select on SYSIBMADM.SNAPAPPL_INFO to user DBMon_Agent_User;
grant EXECUTE on function SYSPROC.MON_GET_PKG_CACHE_STMT to user DBMon_Agent_User;
grant execute on function SYSPROC.MON_GET_TRANSACTION_LOG to user DBMon_Agent_User;
grant EXECUTE on package NULLID.SQLC2K26 to user DBMon_Agent_User;
grant select on SYSIBM.SYSDUMMY1 to user DBMon_Agent_User;
grant select on SYSIBMADM.ENV_PROD_INFO to user DBMon_Agent_User;
grant select on SYSIBMADM.ENV_SYS_RESOURCES to user DBMon_Agent_User;
grant execute on function SYSPROC.SNAP_GET_STMT(varchar(),Integer) to user DBMon_Agent_User;
grant select on SYSCAT.STATEMENTS to user DBMon_Agent_User;
grant select on SYSIBMADM.DBCFG to user DBMon_Agent_User;
grant execute on function SYSPROC.SNAP_GET_DB(varchar(),Integer) to user DBMon_Agent_User;
grant EXECUTE on package NULLID.SYSSH200 to user DBMon_Agent_User;
grant select on SYSIBMADM.ENV_SYS_RESOURCESto user DBMon_Agent_User;
grant select on SYSCAT.DBAUTH to user DBMon_Agent_User;
grant execute on function SYSPROC.SNAP_GET_DBM(Integer) to user DBMon_Agent_User;
grant select on syscat.schemata to user DBMon_Agent_User;
CODE

DBMon_Agent_User はデータベースの可視性エージェントを実行するユーザ名に置き換えます。

実行プランの生成

DB2 で実行プランを生成するには、モニタリングユーザ ID で explain_ * テーブルにアクセスできる必要があります。 

  1. 次のいずれかの方法を使用して、explain テーブルを作成します。
    • SYSPROC.SYSINSTALLOBJECTS procedure:{{}} を呼び出す

{{db2 CONNECT TO database-name
db2 }}

{{CALL SYSPROC.SYSINSTALLOBJECTS('EXPLAIN', 'C',
CAST (NULL AS VARCHAR(128)), CAST (NULL AS VARCHAR(128)))}}

このコールによって、SYSTOOLS スキーマの下に explain テーブルが作成されます。別のスキーマでテーブルを作成するには、コールの最後のパラメータとしてスキーマ名を指定します。

    • EXPLAIN.DDL command file:{{}} を実行する

{{db2 CONNECT TO database-name
db2 -tf EXPLAIN.DDL}}

{{}}

モニタリングユーザ ID に、SQL でアクセスされるすべてのテーブルと必要な explain_ * テーブルに対する SELECT 権限が付与されていないと、プランの説明は適切に機能しません。