データベースの可視性 API

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

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

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

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

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

すべてのコレクタの取得

CODE
GET /controller/rest/databases/collectors

特定のコレクタの取得

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

コレクタの作成

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

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

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
}
]
}

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

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
}
]
}

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

keydbagent.sampling.interval

value:正の整数。

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

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

Update a Collector

  1. Make a GET request for the collector that you want to update.
  2. Copy the JSON response body that is returned by the GET request to a text editor, and modify the fields that you want to update.
  3. Make a POST request for the collector that you want to update, and include the updated JSON.

    CODE
    POST /controller/rest/databases/collectors/update
    Example JSON Request
    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
    }
    ]
    }

The JSON you send must contain all the details of the existing collector with only the fields that you want to modify changed. To ensure you have all the fields, use the Get a Specific Collector call.

To add a new sub-collector to an existing collector, provide the sub-collector details without the id field.

注: To configure the interval for sampling queries, refer to the extraProperties parameter in the JSON request payload as mentioned in extraProperties under Create a Collector.

特定のコレクタの削除

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

削除リクエストの例

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

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

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

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

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

JSON
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

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

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

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

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

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

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

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

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

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

JSON
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

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

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

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

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

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

Database Type type
Database Agent agentName
Database name
Connection Details Hostname/IP Address hostname
EnterpriseDB enterpriseDB
Failover Partner failoverPartner
Listener Port port
Custom JDBC Connection String customConnectionString
Use Service Name useServiceName
SID or SERVICE_NAME sid
Connect as a sysdba connectAsSysdba
Username username
Password password
Logging Enabled
Hardware Monitoring Monitor Operating System enableOSMonitor
Operating System hostOS
Use Local WMI useLocalWMI
Domain hostDomain
SSH Port sshPort
Use certificate certificateAuth
Username hostUsername
Password hostPassword
注:

SSL フィールド

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

コレクタの正常性ルール違反の取得

CODE
GET /controller/rest/databases/servers/healthrule-violations/<server-id>

入力パラメータ

パラメータ名 Parameter Type 必須

server_id

URI

データベースサーバーの ID を入力します。

あり

time-range-type

クエリ

可能な値は以下の通りです:

BEFORE_NOW BEFORE_NOW" duration-in-mins"" オプションを使用するには、" および " パラメータも指定する必要があります。BEFORE_TIMEBEFORE_TIME"duration-in-mins""end-time" オプションを使用するには、" および " パラメータも指定する必要があります。AFTER_TIMEAFTER_TIME" duration-in-mins""start-time" オプションを使用するには、" および " パラメータも指定する必要があります。

BETWEEN_TIMES

このオプションを使用するには、"start-time" および "end-time" パラメータも指定する必要があります。"BETWEEN_TIMES" の範囲には start-time が含まれますが、end-time は除外されます。

あり

duration-in-mins

クエリ

メトリックデータを返す期間(分単位)。

time-range-type が BEFORE_NOW, BEFORE_TIME, または AFTER_TIME の場合

start-time

クエリ

メトリックデータが返される期間の開始時刻(ミリ秒単位)。

time-range-type が AFTER_TIME または BETWEEN_TIMES の場合

end-time

クエリ

メトリックデータが返される期間の終了時刻(ミリ秒単位)。

time-range-type が BEFORE_TIME または BETWEEN_TIMES の場合

出力

クエリ

出力形式を変更するために URL の一部として含まれている HTTP リクエストパラメータ。有効な値は XML(デフォルト)または JSON です。

いいえ

JSON
curl --user {username}@{account_name}:{password} {Controller_URL}/controller/rest/databases/servers/healthrule-violations/<server-id>?time-range-type=BEFORE_NOW&duration-in-mins=<required_duration>