データベースの可視性 API

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

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

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

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

注: データベースの可視性では、インフラストラクチャベースのライセンスが使用されます。このライセンスでは、データベースコレクタとライセンスの使用状況には直接的な相関関係はありません。したがって、コントローラバージョンが 21.2 以降の場合、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 キーと値のペアが使用されます。

keydbagent.sampling.interval

value:正の整数

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

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

コレクタの更新

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

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

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

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

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

特定のコレクタの削除

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 は、バッチ削除の実行時に必要になります)。

データベースタイプ type
データベースエージェント agentName
データベース name
Connection Details [ホスト名/IP アドレス(Hostname/IP Address)] hostname
EnterpriseDB enterpriseDB
フェールオーバーパートナー failoverPartner
リスナーポート port
カスタムJDBC接続文字列 customConnectionString
サービス名の使用 useServiceName
SIDまたはSERVICE_NAME sid
Connect as a sysdba connectAsSysdba
ユーザー名(Username) username
パスワード パスワード
有効なロギング
ハードウェアモニタリング Monitor Operating System enableOSMonitor
オペレーティング システム hostOS
ローカルWMIの使用 useLocalWMI
ドメイン(Domain) hostDomain
[SSH ポート(SSH Port)] sshPort
証明書の使用 certificateAuth
ユーザー名(Username) hostUsername
パスワード 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

[Query(クエリ)]

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

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

BETWEEN_TIMES

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

あり

duration-in-mins

[Query(クエリ)]

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

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

start-time

[Query(クエリ)]

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

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

end-time

[Query(クエリ)]

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

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

出力

[Query(クエリ)]

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