データベースの可視性 API
このページでは、データベースの可視性コレクタを取得、作成、更新、および削除できるデータベースの可視性 API のメソッドについて説明します。
すべてのデータベースの可視性 API リクエストには、次のヘッダーを含めます。
Accept: application/json; Content-type: application/json
JSON は現在サポートされている唯一の形式です。
licensesUsed パラメータは常に -1 を返します。
すべてのコレクタの取得
GET /controller/rest/databases/collectors
特定のコレクタの取得
GET /controller/rest/databases/collectors/{configurationId}
コレクタの作成
POST /controller/rest/databases/collectors/create
送信する 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
}
]
}
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
}
]
}
間隔を構成するために、extraProperties では次の JSON キー値のペアが使用されます。
dbagent.sampling.interval
value:正の整数。
値には、1、2、5、10、20、または 30 を指定できます。
このプロパティは、エージェントを使用して構成できます。「モニタリングデータベースのエージェント設定の構成」を参照してください。
Update a Collector
- Make a
GETrequest for the collector that you want to update. - Copy the JSON response body that is returned by the
GETrequest to a text editor, and modify the fields that you want to update. -
Make a
POSTrequest for the collector that you want to update, and include the updated JSON.Example JSON RequestCODEPOST /controller/rest/databases/collectors/updateJSON{ "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.
extraProperties parameter in the JSON request payload as mentioned in extraProperties under Create a Collector.
特定のコレクタの削除
DELETE /controller/rest/databases/collectors/{configurationId}
削除リクエストの例
DELETE /controller/rest/databases/collectors/{1}
複数のコレクタの一括削除
POST /controller/rest/databases/collectors/batchDelete
コレクタの構成 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
すべてのモニタ対象データベースサーバの取得
GET /controller/rest/databases/servers
例
curl --user {username}@{account_name}:{password} {Controller_URL}/controller/rest/databases/servers
出力は、データベースサーバとその詳細のリストです。
データベースサーバの詳細の取得
GET /controller/rest/databases/servers/{dbserver_id}
例
curl --user {username}@{account_name}:{password} {Controller_URL}/controller/rest/databases/servers/{dbserver_id}
出力には、名前、ノード ID、データベースタイプなど、データベースの詳細のリストが含まれます。
すべてのデータベース エージェント イベントの取得
GET /controller/rest/applications/_dbmon/events
クエリ文字列パラメータのリストについては、「イベントデータを取得する」を参照してください。
例
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
出力には、イベントのリストが表示されます。各イベント要素では、エンティティ定義要素を検索することにより、イベントがマッピングされるノードを判別できます。
すべてのデータベース モニタリング アプリケーション ノードの取得
GET /controller/rest/applications/_dbmon/nodes
例
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] フィールドとその値も指定する必要があります。
コレクタの正常性ルール違反の取得
GET /controller/rest/databases/servers/healthrule-violations/<server-id>
入力パラメータ
| パラメータ名 | Parameter Type | 値 | 必須 |
|---|---|---|---|
|
server_id |
URI |
データベースサーバーの ID を入力します。 |
あり |
|
time-range-type |
クエリ |
可能な値は以下の通りです: BEFORE_NOW
このオプションを使用するには、" |
あり |
|
duration-in-mins |
クエリ |
メトリックデータを返す期間(分単位)。 |
time-range-type が |
|
start-time |
クエリ |
メトリックデータが返される期間の開始時刻(ミリ秒単位)。 |
time-range-type が |
|
end-time |
クエリ |
メトリックデータが返される期間の終了時刻(ミリ秒単位)。 |
time-range-type が |
|
出力 |
クエリ |
出力形式を変更するために URL の一部として含まれている HTTP リクエストパラメータ。有効な値は |
いいえ |
例
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>