このページでは、データベースの可視性コレクタを取得、作成、更新、および削除できるデータベースの可視性 API のメソッドについて説明します。

すべてのデータベースの可視性 API リクエストには、次のヘッダーを含めます。

Accept: application/json; Content-type: application/json
CODE

JSON は現在サポートされている唯一の形式です


データベースの可視性では、インフラストラクチャベースのライセンスが使用されます。このライセンスでは、データベースコレクタとライセンスの使用状況には直接的な相関関係はありません。したがって、コントローラバージョンが 21.2 以降の場合、licensesUsed パラメータは常に -1 を返します。

すべてのコレクタの取得

GET /controller/rest/databases/collectors
CODE

特定のコレクタの取得

GET /controller/rest/databases/collectors/{configurationId}
CODE

コレクタの作成

POST /controller/rest/databases/collectors/create
CODE

送信する JSON には、関連するコレクタ情報が含まれている必要があります。コレクタを説明する必須フィールドは、データベースのタイプによって異なります。「UI コレクタと JSON コレクタの設定フィールド名」を参照してください。

JSON リクエストの例

{
    "type":"MYSQL",
    "name":"localdocker_dbagent-MySQLCollector",
    "hostname":"mysql",
    "port":"3306",
    "username":"root",
    "password":"appdynamics_redacted_password",
    "enabled":true,
    "excludedSchemas":null,
    "databaseName":null,
    "failoverPartner":null,
    "connectAsSysdba":false,
    "useServiceName":false,
    "sid":null,
    "customConnectionString":null,
    "enterpriseDB":false,
    "useSSL":false,
    "enableOSMonitor":false,
    "hostOS":null,
    "useLocalWMI":false,
    "hostDomain":null,
    "hostUsername":null,
    "hostPassword":"",
    "dbInstanceIdentifier":null,
    "region":null,
    "certificateAuth":false,
    "removeLiterals":true,
    "sshPort":0,
    "agentName":"localdocker_dbagent",
    "dbCyberArkEnabled":false,
    "dbCyberArkApplication":null,
    "dbCyberArkSafe":null,
    "dbCyberArkFolder":null,
    "dbCyberArkObject":null,
    "hwCyberArkEnabled":false,
    "hwCyberArkApplication":null,
    "hwCyberArkSafe":null,
    "hwCyberArkFolder":null,
    "hwCyberArkObject":null,
    "orapkiSslEnabled":false,
    "orasslClientAuthEnabled":false,
    "orasslTruststoreLoc":null,
    "orasslTruststoreType":null,
    "orasslTruststorePassword":"",
    "orasslKeystoreLoc":null,
    "orasslKeystoreType":null,
    "orasslKeystorePassword":"",
    "ldapEnabled":false,
    "customMetrics":null,
    "subConfigs":[
        {
            "type":"MYSQL",
            "name":"localdocker_dbagent-MySQLCollector sub-collector",
            "hostname":"mysql-remote",
            "port":"3388",
            "username":"root",
            "password":"different-password",
            "enabled":true,
            "excludedSchemas":null,
            "databaseName":null,
            "failoverPartner":null,
            "connectAsSysdba":false,
            "useServiceName":false,
            "sid":null,
            "customConnectionString":null,
            "enterpriseDB":false,
            "useSSL":false,
            "enableOSMonitor":false,
            "hostOS":null,
            "useLocalWMI":false,
            "hostDomain":null,
            "hostUsername":null,
            "hostPassword":"",
            "dbInstanceIdentifier":null,
            "region":null,
            "certificateAuth":false,
            "removeLiterals":true,
            "sshPort":0,
            "agentName":"localdocker_dbagent",
            "dbCyberArkEnabled":false,
            "dbCyberArkApplication":null,
            "dbCyberArkSafe":null,
            "dbCyberArkFolder":null,
            "dbCyberArkObject":null,
            "hwCyberArkEnabled":false,
            "hwCyberArkApplication":null,
            "hwCyberArkSafe":null,
            "hwCyberArkFolder":null,
            "hwCyberArkObject":null,
            "orapkiSslEnabled":false,
            "orasslClientAuthEnabled":false,
            "orasslTruststoreLoc":null,
            "orasslTruststoreType":null,
            "orasslTruststorePassword":"",
            "orasslKeystoreLoc":null,
            "orasslKeystoreType":null,
            "orasslKeystorePassword":"",
            "ldapEnabled":false,
            "customMetrics":null
        }
    ]
}
CODE

extraProperties:データベースからのサンプリングクエリの頻度を構成するには(Cassandra を除く)、JSON リクエストペイロードの extraProperties パラメータを使用できます。次の JSON のサンプルは、リクエストペイロードでサンプリング間隔を構成するために使用できます。

{
    "type":"POSTGRESQL",
    "agentName":"UpgradeTest204",
    "name":"SamplingInterval",
    "hostname":"ec2-54-202-140-213.us-west-2.compute.amazonaws.com",
    "port":"5432",
    "username":"postgres",
    "password":"Appd123",
    "removeLiterals":"true",
    "enableOSMonitor":"true",
    "hostOS":"LINUX",
    "sshPort":"22",
    "hostUsername":"ec2-user",
    "hostPassword":"",
    "certificateAuth":true,
    "enabled":"true",
    "enterpriseDB":"false",
    "extraProperties":[
        {
            "key":"dbagent.sampling.interval",
            "value":"10",
            "sensitive":false
        }
    ]
}
CODE

間隔を構成するために、extraProperties では次の JSON キー値のペアが使用されます。

key: dbagent.sampling.interval

value:正の整数

値には、1、2、5、10、20、または 30 を指定できます。

このプロパティは、エージェントを使用して構成できます。「モニタリングデータベースのエージェント設定の構成」を参照してください。

コレクタの更新

  1. 更新するコレクタの GET リクエストを実行します。
  2. GET リクエストによって返された JSON 応答本文をテキストエディタにコピーし、更新するフィールドを変更します。
  3. 更新するコレクタの POST リクエストを実行し、更新された JSON を含めます。 

    POST /controller/rest/databases/collectors/update
    CODE

    JSON リクエストの例

    {
        "id":1,
        "type":"MYSQL",
        "name":"localdocker_dbagent-MySQLCollector",
        "hostname":"mysql",
        "port":"3306",
        "username":"root",
        "password":"appdynamics_redacted_password",
        "enabled":true,
        "excludedSchemas":null,
        "databaseName":null,
        "failoverPartner":null,
        "connectAsSysdba":false,
        "useServiceName":false,
        "sid":null,
        "customConnectionString":null,
        "enterpriseDB":false,
        "useSSL":false,
        "enableOSMonitor":false,
        "hostOS":null,
        "useLocalWMI":false,
        "hostDomain":null,
        "hostUsername":null,
        "hostPassword":"",
        "dbInstanceIdentifier":null,
        "region":null,
        "certificateAuth":false,
        "removeLiterals":true,
        "sshPort":0,
        "agentName":"localdocker_dbagent",
        "dbCyberArkEnabled":false,
        "dbCyberArkApplication":null,
        "dbCyberArkSafe":null,
        "dbCyberArkFolder":null,
        "dbCyberArkObject":null,
        "hwCyberArkEnabled":false,
        "hwCyberArkApplication":null,
        "hwCyberArkSafe":null,
        "hwCyberArkFolder":null,
        "hwCyberArkObject":null,
        "orapkiSslEnabled":false,
        "orasslClientAuthEnabled":false,
        "orasslTruststoreLoc":null,
        "orasslTruststoreType":null,
        "orasslTruststorePassword":"",
        "orasslKeystoreLoc":null,
        "orasslKeystoreType":null,
        "orasslKeystorePassword":"",
        "ldapEnabled":false,
        "customMetrics":null,
        "subConfigs":[
            {
                "id":2,
                "type":"MYSQL",
                "name":"localdocker_dbagent-MySQLCollector sub-collector",
                "hostname":"mysql",
                "port":"3388",
                "username":"root",
                "password":"appdynamics-redacted-password",
                "enabled":true,
                "excludedSchemas":null,
                "databaseName":null,
                "failoverPartner":null,
                "connectAsSysdba":false,
                "useServiceName":false,
                "sid":null,
                "customConnectionString":null,
                "enterpriseDB":false,
                "useSSL":false,
                "enableOSMonitor":false,
                "hostOS":null,
                "useLocalWMI":false,
                "hostDomain":null,
                "hostUsername":null,
                "hostPassword":"",
                "dbInstanceIdentifier":null,
                "region":null,
                "certificateAuth":false,
                "removeLiterals":true,
                "sshPort":0,
                "agentName":"localdocker_dbagent",
                "dbCyberArkEnabled":false,
                "dbCyberArkApplication":null,
                "dbCyberArkSafe":null,
                "dbCyberArkFolder":null,
                "dbCyberArkObject":null,
                "hwCyberArkEnabled":false,
                "hwCyberArkApplication":null,
                "hwCyberArkSafe":null,
                "hwCyberArkFolder":null,
                "hwCyberArkObject":null,
                "orapkiSslEnabled":false,
                "orasslClientAuthEnabled":false,
                "orasslTruststoreLoc":null,
                "orasslTruststoreType":null,
                "orasslTruststorePassword":"",
                "orasslKeystoreLoc":null,
                "orasslKeystoreType":null,
                "orasslKeystorePassword":"",
                "ldapEnabled":false,
                "customMetrics":null
            }
        ]
    }
    CODE

送信する JSON には、変更するフィールドだけを変更し、既存のコレクタのすべての詳細を含める必要があります。すべてのフィールドがあることを確認するには、「特定のコレクタの取得」コールを使用します。

既存のコレクタに新しいサブコレクタを追加するには、id フィールドを使用せずにサブコレクタの詳細を指定します。 

サンプリングクエリの間隔を構成するには、「コレクタの作成」の「extraProperties」で説明している、JSON リクエストペイロードの extraProperties パラメータを参照してください。

特定のコレクタの削除

DELETE /controller/rest/databases/collectors/{configurationId}
CODE

削除リクエストの例

DELETE /controller/rest/databases/collectors/{1}
CODE

複数のコレクタの一括削除

POST /controller/rest/databases/collectors/batchDelete
CODE

コレクタの構成 ID の配列を送信します。

次に、batch delete コマンドの例を示します。

curl --user {username}@{account_name}:{password} -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '[1,2,3]' {Controller_URL}/controller/rest/databases/collectors/batchDelete 
CODE

すべてのモニター対象データベースサーバーの取得

GET /controller/rest/databases/servers
CODE

curl --user {username}@{account_name}:{password} {Controller_URL}/controller/rest/databases/servers
CODE

出力は、データベースサーバとその詳細のリストです。

データベースサーバーの詳細の取得

GET /controller/rest/databases/servers/{dbserver_id}
CODE

curl --user {username}@{account_name}:{password} {Controller_URL}/controller/rest/databases/servers/{dbserver_id}
CODE

出力には、名前、ノード ID、データベースタイプなど、データベースの詳細のリストが含まれます。

すべてのデータベース エージェント イベントの取得

GET /controller/rest/applications/_dbmon/events
CODE

クエリ文字列パラメータのリストについては、「イベントデータを取得する」を参照してください。

curl --user {username}@{account_name}:{password} {Controller_URL}/controller/rest/applications/_dbmon/events?time-range-type=BEFORE_NOW&duration-in-mins=30&event-types=%20AGENT_EVENT,DB_SERVER_PARAMTER_CHANGE&severities=INFO,WARN,ERROR
CODE

出力には、イベントのリストが表示されます。各イベント要素では、エンティティ定義要素を検索することにより、イベントがマッピングされるノードを判別できます。

すべてのデータベース モニタリング アプリケーション ノードの取得

GET /controller/rest/applications/_dbmon/nodes
CODE

curl --user {username}@{account_name}:{password} {Controller_URL}/controller/rest/applications/_dbmon/nodes
CODE

UI コレクタと JSON コレクタの設定フィールド名

次の表を使用して、API コールに正しいフィールド名を使用していることを確認します。コレクタ設定フィールド名については、「サーバハードウェアをモニタするデータベースエージェントの構成」および「データベースコレクタの追加」を参照してください。

セクションUI コレクタの設定フィールド名JSON コレクタの設定フィールド名


id(コレクタを設定するときに、AppDynamics がこの ID をコレクタに割り当てます。この ID は、バッチ削除の実行時に必要になります)。

Database Type type

Database Agent agentName

Database name
Connection DetailsHostname/IP Address hostname

EnterpriseDB enterpriseDB

Failover PartnerfailoverPartner

Listener Port port

Custom JDBC Connection String customConnectionString

Use Service NameuseServiceName

SID or SERVICE_NAMEsid

Connect as a sysdba connectAsSysdba

Username  username

Passwordpassword

Logging Enabled
Hardware MonitoringMonitor Operating SystemenableOSMonitor

Operating SystemhostOS

Use Local WMIuseLocalWMI

DomainhostDomain

SSH PortsshPort

Use certificatecertificateAuth

UsernamehostUsername

PasswordhostPassword

SSL フィールド

JSON 設定フィールドに加えて、[SSL] フィールドもあります。SSL は、データベースエージェントの設定可能なプロパティです。データベースエージェントが SSL を使用するように設定されている場合は、データベースの可視性 API コールで [SSL] フィールドとその値も指定する必要があります。