JDBC アクティブ ディスカバリ
最終更新日: 25 年 2020 月 XNUMX 日JDBC Active Discoveryメソッドは、データベースが特定のポートで実行されているかどうかを検出し、SQLクエリへの応答に基づいてデータベースをフィルタリングするために使用されます。 また、任意のSQLクエリに基づいてインスタンスを作成するために使用することもできます。これを使用して、オブジェクトに関する詳細を収集できます。
計測パラメータ
Active DiscoveryメソッドをJDBCに設定したら、次のパラメーターを構成する必要があります。
- JDBC URL: このフィールドには、データベースエンジンのタイプまたは完全に定義されたURLのいずれかを入力できます。 接続するデータベースエンジンのタイプ(つまり、mysql、oracle、postgresql、またはmssql)のみを指定した場合、LogicMonitorは定義済みを使用してJDBCURLを構築しようとします。 デバイスプロパティ。 完全に定義されたURLは、次のいずれかの形式で指定できます。
- SQLステートメント: インスタンスの検出に使用されるデータベースエンジンでサポートされるSQLクエリ。 たとえば、次のクエリを実行できます。 information_schema.tables から * を選択します。 or スレーブステータスを表示 mysqlの場合。
- ディスカバリータイプ: XNUMXつの検出タイプがあります。列の属性| 行の属性| データベースリスト| インスタンスリスト
- Oracle SID: Oracleデータベースへの接続に使用するSID。
- ポート番号リスト: ActiveDiscoveryがチェックする必要のあるポートのコンマ区切りリスト。 これらのポートで検出されたデータベースサービスは、指定された検出タイプに従ってインスタンスとして返されます。
- セパレータ: このフィールドは、検出タイプがに設定されている場合にのみ有効です。 データベースリスト。 ここで指定する区切り文字は、次の方法でポート番号とデータベース名を連結してインスタンス名を作成するために使用されます。 ポート番号セパレーターdatabaseName.
行の属性
使い方 行の属性 検出タイプ、ポートリスト内のポートで検出されたデータベースサービスは、SQLステートメントをそれらに対して実行できる場合、インスタンスとして返されます。 フィルタが定義されている場合、フィルタを通過したインスタンスのみがインスタンスとして検出されます。
この検出方法を使用する場合、返されるActiveDiscoveryワイルド値はポート番号です。
次の例では、このデータベースがポート3306で検出されていると想定します。
SQLステートメントは、XNUMX列のテーブルになります。
ワイルド値が3306のインスタンスがXNUMXつ検出されます。
SQLステートメントは、XNUMX列のテーブルになります。
最初の属性はフィルター基準を満たしているため、3306つのインスタンスがワイルド値XNUMXで返されます。
SQLステートメントは、XNUMX列のテーブルになります。
返される属性はフィルター基準を満たしていないため、インスタンスは返されません。
列の属性
使い方 列の属性 検出タイプの場合、ポートリスト内のポートで実行されているデータベースサービスは、SQLステートメントを実行できる場合、インスタンスとして検出されます。 フィルタが定義されている場合、フィルタ条件を満たすインスタンスのみがインスタンスとして検出されます。
[列の属性]検出タイプを使用する場合、返されるActiveDiscoveryワイルド値はポート番号です。
SQLステートメントは、XNUMX列のテーブルになります。
ワイルド値が3306のインスタンスがXNUMXつ検出されます。
SQLステートメントは、XNUMX列のテーブルになります。
属性がフィルター基準を満たしているため、ワイルド値3306のインスタンスがXNUMXつ検出されます。
SQLステートメントは、XNUMX列のテーブルになります。
属性がフィルターに適合しないため、インスタンスは検出されません。
データベースリスト
使用している場合 データベースリスト ディスカバリータイプ、アクティブディスカバリーワイルドバリューは次のとおりです。
ポートセパレータSQLstatementRowResult
例
データベースにXNUMXつのテーブルがあると仮定します。
次のテーブルはインスタンスとして検出され、次のように名前が付けられます。
- 3306:robin_test
- 3306:robin_test_1
インスタンスリスト
使用している場合 インスタンスリスト ディスカバリー・タイプであるActive Discoveryワイルド値は、SQLステートメントの結果です。
このメソッドは、データベースリストメソッドと同様に、SQLクエリから返された情報を使用してインスタンスを作成し、クエリは各行の値がインスタンスと等しい単一の列テーブルを返す必要があります。
例
次のSQLクエリについて考えてみます。
検出されるインスタンスは1と2になります。
これにより、データソースが適用される各ホストで、デフォルトのmysqlポート3306でクエリに応答するcustomersテーブルの各エントリのインスタンスが返されます。
データソースは、メインのJDBCコレクターで、接続文字列(各顧客が独自のデータベースを持っている場合)またはクエリでこのインスタンスを使用できます。