管理 API 是一个 REST API,您可以使用此 API 通过接受 REST 和 JSON 的脚本或应用程序查看和管理 Vertica 数据库。所有请求的响应格式均为 JSON。
管理 API
- 1: cURL
- 2: 常规 API 信息
- 3: 适用于代理的 Rest API
- 3.1: VerticaAPIKey
- 3.2: 备份和还原
- 3.2.1: GET backups
- 3.2.2: POST backups/:config_script_base
- 3.2.3: GET backups/:config_script_base/:archive_id
- 3.2.4: POST restore/:archive_id
- 3.3: 数据库
- 3.3.1: GET databases
- 3.3.2: POST databases
- 3.3.3: GET databases/:database_name
- 3.3.4: PUT databases/:database_name
- 3.3.5: DELETE databases/:database_name
- 3.3.6: GET databases/:database_name/configuration
- 3.3.7: PUT databases/:database_name/configuration
- 3.3.8: GET databases/:database_name/hosts
- 3.3.9: POST databases/:database_name/hosts
- 3.3.10: DELETE databases/:database_name/hosts/:host_id
- 3.3.11: POST databases/:database_name/hosts/:host_id/process
- 3.3.12: GET databases/:database_name/license
- 3.3.13: GET databases/:database_name/licenses
- 3.3.14: DELETE databases/:database_name/hosts/:host_id/process
- 3.3.15: POST databases/:database_name/hosts/:host_id/replace_with/:host_id_new
- 3.3.16: GET databases/:database_name/nodes
- 3.3.17: GET databases/:database_name/nodes/:node_id
- 3.3.18: POST databases/:database_name/process
- 3.3.19: GET databases/:database_name/process
- 3.3.20: DELETE databases/:database_name/process
- 3.3.21: POST databases/:database_name/rebalance/process
- 3.3.22: POST databases/:database_name/Workload analyzer/process
- 3.4: 主机
- 3.4.1: GET hosts
- 3.4.2: GET hosts/:hostid
- 3.5: 作业
- 3.5.1: GET jobs
- 3.5.2: GET jobs/:id
- 3.6: 许可证
- 3.6.1: POST licenses
- 3.6.2: GET licenses
- 3.7: 节点
- 3.7.1: GET nodes
- 3.7.2: GET nodes/:nodeid
- 3.8: Webhooks
- 3.8.1: GET webhooks
- 3.8.2: POST webhooks/subscribe
- 3.8.3: DELETE webhooks/:subscriber_id
- 4: 管理控制台的 Rest API
- 4.1: MC-User-ApiKey
- 4.2: GET alerts
- 4.3: GET mcTimeInfo
- 4.4: 阈值类别筛选器
- 4.5: 数据库名称类别筛选器
- 4.6: 将子类别筛选器与类别筛选器组合起来
1 - cURL
cURL 是一个命令行工具兼应用程序库,用于将数据传输到服务器以及从中传输数据。所有发送到 Vertica 服务器的 API 请求都必须使用 HTTPS 发出。
可以使用 cURL 传递以下四种 HTTP 请求以调用 API 方法:
-
GET:检索数据。
-
PUT:更新数据。
-
POST:创建新数据。
-
DELETE:删除数据。
语法
curl https://<NODE>:5444/
选项
下面是截断的选项列表。如需完整的列表,请参阅 cURL 文档。
配置 HTTPS
HTTPS 使用 TLS 对您的连接加密。以下过程使用预定义的 server
TLS 配置启用 HTTPS。要创建自定义 TLS 配置,请参阅TLS 配置。
-
根据您的用例生成或导入以下内容:
-
服务器模式:服务器证书私钥、服务器证书
-
相互模式:服务器证书私钥、服务器证书、CA 证书
-
-
根据您所需的配置运行以下命令。新连接将使用 TLS。
-
要使用服务器模式,请为
server
TLS 配置设置服务器证书:=> ALTER TLS CONFIGURATION server CERTIFICATE server_cert;
-
要使用相互模式,请设置服务器和 CA 证书。此 CA 证书用于验证客户端证书:
=> ALTER TLS CONFIGURATION server CERTIFICATE server_cert ADD CA CERTIFICATES ca_cert;
要使用多个 CA 证书,请用逗号分隔它们:
=> ALTER TLS CONFIGURATION server CERTIFICATE server_cert ADD CA CERTIFICATES intermediate_ca_cert, ca_cert;
-
-
启用 TLS(默认情况下禁用)。选择以下按安全性升序列出的 TLSMODE 之一。
-
DISABLE
:禁用 TLS。此参数的所有其他选项都启用 TLS。 -
ENABLE
:启用 TLS。Vertica 不检查客户端证书。 -
TRY_VERIFY
:如果出现以下任一情况,则建立 TLS 连接:-
客户出示有效证书
-
客户没有出示证书
如果客户端提供无效证书,则连接将使用纯文本。
-
-
VERIFY_CA
:如果 Vertica 验证客户端证书来自受信任的 CA,则连接成功。如果客户端不提供客户端证书,则连接使用纯文本。
TLS 配置也支持 TLSMODE
VERIFY_FULL
,但 HTTPS 不支持此 TLSMODE,其行为类似于VERIFY_CA
。对于服务器模式,选择
ENABLE
:=> ALTER TLS CONFIGURATION server TLSMODE 'ENABLE';
对于相互模式,选择
TRY_VERIFY
或更高版本:=> ALTER TLS CONFIGURATION server TLSMODE 'VERIFY_CA';
-
-
验证 HttpsTLSConfig 参数是否设置为
server
TLS 配置:=> SHOW CURRENT HttpsTLSConfig; level | name | setting ---------+-----------------+--------- DEFAULT | HttpsTLSConfig | server (1 row)
如果没有,请设置 HttpsTLSConfig 参数:
=> ALTER DATABASE DEFAULT SET HttpsTLSConfig = 'server';
2 - 常规 API 信息
这些 API 可以与标准 Vertica 节点或管理控制台节点交互。
2.1 - GET /
返回 API 版本信息和指向管理 API 的子资源的链接的列表。
资源 URL
https://<NODE>:5444/
身份验证
不是必需。
参数
无。
示例请求
响应:
{
"body": {
"mime-types": [
"default",
"application/vertica.database.configuration.json-v2",
"application/json",
"application/vertica.nodes.json-v2",
"default",
"application/json",
"default",
"application/json",
"application/vertica.jobs.json-v2",
"default",
"application/vertica.hosts.json-v2",
"application/json",
"default",
"application/vertica.hosts.json-v2",
"application/json",
"default",
"application/json",
"application/vertica.host.json-v2",
"default",
"application/vertica.hosts.json-v2",
"application/json",
"application/vertica.nodes.json-v2",
"default",
"application/json",
"default",
"application/json",
"application/vertica.database.json-v2",
"default",
"application/vertica.hosts.json-v2",
"application/json",
"default",
"application/vertica.hosts.json-v2",
"application/json",
"default",
"application/json",
"application/vertica.databases.json-v2",
"application/vertica.nodes.json-v2",
"default",
"application/json",
"application/vertica.agent.json-v2",
"default",
"application/json",
"default",
"application/vertica.users.json-v2",
"application/json"
],
"version": "7.1.0"
},
"href": "/",
"links": [
"/databases",
"/hosts",
"/nodes",
"/licenses",
"/webhooks",
"/backups",
"/restore",
"/jobs"
],
"mime-type": "application/vertica.agent.json-v2"
}
2.2 - GET api
列出所有管理 API 命令,并简要说明每个命令及其参数。
资源 URL
https://node-ip-address:5444/api
身份验证
无
示例
$ curl -k https://10.20.100.247:5444/api
[
{
"route": "/",
"method": "GET",
"description": "Returns the agent specific information useful for version checking and service discovery",
"accepts": {},
"params": []
},
{
"route": "/api",
"method": "GET",
"description": "build the list of cluster objects and properties and return it as a JSON formatted array",
"accepts": {},
"params": []
},
{
"route": "/backups",
"method": "GET",
"description": "list all the backups that have been created for all vbr configuration files ( *.ini ) that are located in the /opt/vertica/config directory.",
"accepts": {},
"params": []
},
{
"route": "/backups/:config_script_base",
"method": "POST",
"description": "create a new backup as defined by the given vbr configuration script base (filename minus the .ini extenstion)",
"accepts": {},
"params": []
},
{
"route": "/backups/:config_script_base/:archive_id",
"method": "GET",
"description": "get the detail for a specific backup archive",
"accepts": {},
"params": []
},
{
"route": "/backups/:config_script_base/:archive_id",
"method": "DELETE",
"description": "delete a backup based on the config ini file script",
"accepts": {},
"params": []
},
{
"route": "/databases",
"method": "GET",
"description": "build the list of databases, their properties, and current status (from cache) and return it as a JSON formatted array",
"accepts": {},
"params": []
},
{
"route": "/databases",
"method": "POST",
"description": "Create a new database by supplying a valid set of parameters",
"accepts": {},
"params": [
"name : name of the database to create",
"passwd : password used by the database administrative user",
"only : optional list of hostnames to include in database",
"exclude : optional list of hostnames to exclude from the database",
"catalog : directory used for the vertica catalog",
"data : directory used for the initial vertica storage location",
"port : port the database will listen on (default 5433)",
"restart_policy : (optional) set restart policy",
"force_cleanup_on_failure : (optional) Force removal of existing directories on failure of command",
"force_removal_at_creation : (optional) Force removal of existing directories before creating the database",
"communal_storage_url : (optional) communal storage location for the database",
"num_shards : (optional) number of shared for databases with communal storage",
"depot_path : (optional, but if specified requires depot_size) path to a directory where files from communal storage can be locally cached",
"depot_size : (optional, required by depot_path) size of the depot. Examples: (\"10G\", \"2000M\", \"1T\", \"250K\")",
"aws_access_key_id: (optional)",
"aws_secret_access_key : (optional)",
"configuration_parameters : (optional) A string that is a serialized python-literal dictionary of configuration parameters set at bootstrap.
'{\"kerberosservicename\":\"verticakerb\"}'"]
},
{
"route": "/databases/:database_name",
"method": "GET",
"description": "Retrieve the database properties structure",
"accepts": {},
"params": []
},
{
"route": "/databases/:database_name",
"method": "PUT",
"description": "Control / alter a database values using the PUT http method",
"accepts": {},
"params": ["action : value one of start|stop|rebalance|wla"]
},
{
"route": "/databases/:database_name",
"method": "DELETE",
"description": "Delete an existing database",
"accepts": {},
"params": []
},
{
"route": "/databases/:database_name/configuration",
"method": "GET",
"description": "retrieve the current parameters from the database. if its running return 503 Service Unavailable",
"accepts": {},
"params": [
"user_id : vertica database username",
"passwd : vertica database password"]
},
{
"route": "/databases/:database_name/configuration",
"method": "PUT",
"description": "set a list of parameters in the database. if its not running return 503 Service Unavailable",
"accepts": {},
"params": [
"user_id : vertica database username",
"passwd : vertica database password",
"parameter : value vertica parameter/key combo"]
},
...
{
"route": "/webhooks/subscribe",
"method": "POST",
"description": "post a request with a callback url to subscribe to events from this agent. Returns a subscription_id that can be used to unsubscribe from the service. @returns subscription_id",
"accepts": {},
"params": ["url : full url to the callback resource"]
}
]
3 - 适用于代理的 Rest API
这些 API 调用与标准 Vertica 节点交互。
备份和还原
数据库
主机
作业
许可证
节点
Webhooks
3.1 - VerticaAPIKey
管理 API 需要使用名为 VerticaAPIKEY 的身份验证密钥来访问某些 API 资源。可以使用 apikeymgr 命令行工具管理 API 密钥。
usage: apikeymgr [-h] [--user REQUESTOR] [--app APPLICATION] [--delete]
[--create] [--update] [--migrate]
[--secure {restricted,normal,admin}] [--list]
API key management tool
optional arguments:
-h, --help show this help message and exit
--user REQUESTOR The name of the person requesting the key
--app APPLICATION The name of the application that will use the key
--delete Delete the key for the given R & A
--create Create a key for the given R & A
--update Update a key for the given R & A
--migrate migrate the keyset to the latest format
--secure {restricted,normal,admin}
Set the keys security level
--list List all the keys known
示例请求
若要为 dbadmin
用户创建具有 admin
访问权限的新的 VerticaAPIKEY,请输入以下命令:
$ apikeymgr --user dbadmin --app vertica --create --secure admin
响应:
Requestor : dbadmin
Application: vertica
API Key : ValidAPIKey
Synchronizing cluster...
3.2 - 备份和还原
可以使用这些 API 调用执行数据库的备份和恢复任务。
3.2.1 - GET backups
返回已为 VBR 配置文件 (*.ini)(驻留在 /opt/vertica/config
中)创建的所有备份列表,并提供有关每个备份的详细信息。
资源 URL
https://<NODE>:5444/backups
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"data": [
{
"backups": [
{
"archive_id": "v_vdb_bk_snapshot_20190305_174428",
"version": "v9.2.1-20190305",
"href": "/backups/fullbk/v_vdb_bk_snapshot_20190305_174428",
"exclude_patterns": "",
"backup_type": "full",
"include_patterns": "",
"epoch": "16",
"objects": "",
"hosts": "v_vdb_bk_node0001(10.20.91.240), v_vdb_bk_node0002(10.20.91.241), v_vdb_bk_node0003(10.20.91.242), v_vdb_bk_node0004(10.20.91.243), v_vdb_bk_node0005(10.20.91.244)"
},
{
"archive_id": "v_vdb_bk_snapshot_20190305_174025",
"version": "v9.2.1-20190305",
"href": "/backups/fullbk/v_vdb_bk_snapshot_20190305_174025",
"exclude_patterns": "",
"backup_type": "full",
"include_patterns": "",
"epoch": "16",
"objects": "",
"hosts": "v_vdb_bk_node0001(10.20.91.240), v_vdb_bk_node0002(10.20.91.241), v_vdb_bk_node0003(10.20.91.242), v_vdb_bk_node0004(10.20.91.243), v_vdb_bk_node0005(10.20.91.244)"
}
],
"config_file": "/opt/vertica/config/fullbk.ini",
"config_script_base": "fullbk",
"num_backups": 2
}
],
"href": "/backups",
"mime-type": "application/vertica.databases.json-v2"
}
3.2.2 - POST backups/:config_script_base
为 VBR 配置脚本 :config_script_base
中定义的备份创建新的备份作业。VBR 配置脚本必须驻留在 /opt/vertica/configuration
中。:config_script_base
值不包含 .ini 文件名扩展名。
要确定有效的 :config_script_base
值,请参阅 GET backups。
返回一个作业 ID,它可用于确定作业的状态。
资源 URL
https://<NODE>:5444/backups/:config_script_base
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"id": "CreateBackup-VMart-1404750602.03",
"url": "/jobs/CreateBackup-VMart-1404750602.03"
}
3.2.3 - GET backups/:config_script_base/:archive_id
返回有关特定备份的详细信息。您必须提供 :config_script_base
。此值为驻留在 /opt/vertica/config
中的 VBR config 文件(没有扩展名 .ini)的名称。:archive_id
是 GET backups 命令返回的 backup 字段的值。
资源 URL
https://<NODE>:5444/backups/:config_script_base/:archive_id
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"archive_id": "v_vdb_bk_snapshot_20190304_204814",
"config_file": "/opt/vertica/config/fullbk.ini",
"objects": "",
"href": "/backups/fullbk/v_vdb_bk_snapshot_20190304_204814",
"exclude_patterns": "",
"epoch": "16",
"include_patterns": "",
"backup_type": "full",
"version": "v9.2.1-20190304",
"hosts": "v_vdb_bk_node0001(10.20.91.240),
v_vdb_bk_node0002(10.20.91.241),
v_vdb_bk_node0003(10.20.91.242),
v_vdb_bk_node0004(10.20.91.243),
v_vdb_bk_node0005(10.20.91.244)"
}
3.2.4 - POST restore/:archive_id
创建新的恢复作业,以从 :archive_id
所标识的备份存档恢复数据库。:archive_id
是 GET backups 命令返回的 backup 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/restore/:archive_id
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"id": "RestoreBackup-VMart-1404760113.71",
"url": "/jobs/RestoreBackup-VMart-1404760113.71"
}
3.3 - 数据库
可以使用这些 API 调用与数据库交互。
3.3.1 - GET databases
返回数据库及其当前状态和数据库属性的列表。
资源 URL
https://<NODE>:5444/databases
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
使用 cURL 的完整请求的示例:
curl -H "VerticaApiKey: ValidAPIKey" https://<NODE>:5444/databases
响应:
{
"body": [
{
"href": "/databases/VMart",
"mime-type": [
"application/vertica.database.json-v2"
],
"name": "VMart",
"port": "5433",
"status": "UP"
},
{
"href": "/databases/testDB",
"mime-type": [
"application/vertica.database.json-v2"
],
"name": "testDB",
"port": "5433",
"status": "DOWN"
}
],
"href": "/databases",
"links": [
"/:database_name"
],
"mime-type": "application/vertica.databases.json-v2"
}
3.3.2 - POST databases
创建一个作业,以使用所提供的参数创建新数据库。
重要
对于要在其中创建新数据库的节点,您必须停止这些节点上任何正在运行的数据库。否则,数据库创建将失败。返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/databases
<<<<<<<
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有管理级别的安全性。
API 密钥必须具有管理 级别的安全性。
参数
示例请求
响应:
{
"jobid": "CreateDatabase-testDB-2014-07-07 15:49:53.219445",
"resource": "/jobs/CreateDatabase-testDB-2014-07-07 15:49:53.219445",
"userid": "dbadmin"
}
3.3.3 - GET databases/:database_name
返回特定数据库的详细信息。:database_name
是 GET databases 命令返回的 name 字段的值。
资源 URL
https://<NODE>:5444/databases/:database_name
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"body": {
"database_id": "VMart",
"id": "VMart",
"nodes": "v_vmart_node0001,v_vmart_node0002,v_vmart_node0003",
"nodes_new": [
{
"catalog_base": "/home/dbadmin",
"data_base": "/home/dbadmin",
"host": "10.20.100.247",
"id": "v_vmart_node0001"
},
{
"catalog_base": "/home/dbadmin",
"data_base": "/home/dbadmin",
"host": "10.20.100.248",
"id": "v_vmart_node0002"
},
{
"catalog_base": "/home/dbadmin",
"data_base": "/home/dbadmin",
"host": "10.20.100.249",
"id": "v_vmart_node0003"
}
],
"path": "/home/dbadmin/VMart",
"port": "5433",
"restartpolicy": "ksafe",
"status": "UP"
},
"href": "/databases/VMart",
"links": [
"/configuration",
"/hosts",
"/license",
"/nodes",
"/process",
"/rebalance/process",
"/status",
"/Workload Analyzer/process"
],
"mime-type": "application/vertica.database.json-v2"
}
3.3.4 - PUT databases/:database_name
创建一个作业,以对 :database_name
所标识的数据库运行 action 参数所标识的操作。:database_name
是 GET databases 命令返回的 name 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/databases/:database_name
认证
请求头中需要包含 VerticaAPIKey。
API 密钥的安全性级别必须为普通或更高。
参数
示例请求
响应:
{
"id": "StopDatabase-testDB-2014-07-20 13:28:49.321744",
"url": "/jobs/StopDatabase-testDB-2014-07-20 13:28:49.321744"
}
3.3.5 - DELETE databases/:database_name
创建一个作业,以在群集中删除(丢弃)现有数据库。若要执行此操作,您必须先停止该数据库。:database_name
是 GET databases 命令返回的 name 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/databases/:database_name
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有管理 级别的安全性。
参数
无。
示例请求
响应:
{
"id": "DropDatabase-TestDB-2014-07-18 12:50:33.332383",
"url": "/jobs/DropDatabase-TestDB-2014-07-18 12:50:33.332383"
}
3.3.6 - GET databases/:database_name/configuration
返回 :database_name
所标识的数据库的配置参数列表。:database_name
是 GET databases 命令返回的 name 字段的值。
资源 URL
https://<NODE>:5444/databases/:database_name/configuration
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
示例请求
响应:
此 API 调用将返回超过 100 个配置参数。以下响应只是返回的总数中的一小部分。
[
{
"node_name": "ALL",
"parameter_name": "ACDAlgorithmForSynopsisVersion1",
"current_value": "1",
"restart_value": "1",
"database_value": "1",
"default_value": "1",
"current_level": "DEFAULT",
"restart_level": "DEFAULT",
"is_mismatch": "f",
"groups": "",
"allowed_levels": "SESSION, DATABASE",
"superuser_visible_only": "f",
"change_under_support_guidance": "t",
"change_requires_restart": "f",
"description": "Algorithm used to interpret synopsis version 1 for approximate count distinct"
},
{
"node_name": "ALL",
"parameter_name": "ACDLinearCountThreshold",
"current_value": "-1.000000",
"restart_value": "-1.000000",
"database_value": "-1.000000",
"default_value": "-1.000000",
"current_level": "DEFAULT",
"restart_level": "DEFAULT",
"is_mismatch": "f",
"groups": "",
"allowed_levels": "SESSION, DATABASE",
"superuser_visible_only": "f",
"change_under_support_guidance": "t",
"change_requires_restart": "f",
"description": "If positive, will overwrite the default linear counting threshold in approximate count distinct"
},
{
"node_name": "ALL",
"parameter_name": "ACDSynopsisVersion",
"current_value": "2",
"restart_value": "2",
"database_value": "2",
"default_value": "2",
"current_level": "DEFAULT",
"restart_level": "DEFAULT",
"is_mismatch": "f",
"groups": "",
"allowed_levels": "SESSION, DATABASE",
"superuser_visible_only": "f",
"change_under_support_guidance": "t",
"change_requires_restart": "f",
"description": "Default synopsis version to be generated by approximate count distinct"
},
{
"node_name": "ALL",
"parameter_name": "AHMBackupManagement",
"current_value": "0",
"restart_value": "0",
"database_value": "0",
"default_value": "0",
"current_level": "DEFAULT",
"restart_level": "DEFAULT",
"is_mismatch": "f",
"groups": "",
"allowed_levels": "NODE, DATABASE",
"superuser_visible_only": "f",
"change_under_support_guidance": "t",
"change_requires_restart": "f",
"description": "Consider backup epochs when setting new AHM"
},
{
"node_name": "ALL",
"parameter_name": "ARCCommitPercentage",
"current_value": "3.000000",
"restart_value": "3.000000",
"database_value": "3.000000",
"default_value": "3.000000",
"current_level": "DEFAULT",
"restart_level": "DEFAULT",
"is_mismatch": "f",
"groups": "",
"allowed_levels": "DATABASE",
"superuser_visible_only": "f",
"change_under_support_guidance": "t",
"change_requires_restart": "f",
"description": "ARC will commit only if the change is more than the percentage specified"
},
{
"node_name": "ALL",
"parameter_name": "AWSCAFile",
"current_value": "",
"restart_value": "",
"database_value": "",
"default_value": "",
"current_level": "DEFAULT",
"restart_level": "DEFAULT",
"is_mismatch": "f",
"groups": "",
"allowed_levels": "DATABASE",
"superuser_visible_only": "f",
"change_under_support_guidance": "f",
"change_requires_restart": "f",
"description": "Overrides the default CA file"
},
...
]
3.3.7 - PUT databases/:database_name/configuration
为 :database_name
所标识的数据库设置一个或多个配置参数。:database_name
是 GET databases 命令返回的 name 字段的值。
返回参数名称、请求的值和尝试的更改的结果(Success 或 Failed)。
资源 URL
https://<NODE>:5444/databases/:database_name/configuration
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有管理级别的安全性。
参数
示例请求
响应:
[
{
"key": "JavaBinaryForUDx",
"result": "Success",
"value": "/usr/bin/java"
},
{
"key": "TransactionIsolationLevel",
"result": "Success",
"value": "SERIALIZABLE"
}
]
3.3.8 - GET databases/:database_name/hosts
返回与 :database_name
所标识的数据库关联的每个主机的主机名/IP 地址、节点名称和 UP/DOWN 状态。:database_name
是 GET databases 命令返回的 name 字段的值。
资源 URL
https://<NODE>:5444/databases/:database_name/hosts
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"body": [
{
"hostname": "10.20.100.247",
"nodename": "v_vmart_node0001",
"status": "UP",
"ts": "2014-07-18T13:12:31.904191"
},
{
"hostname": "10.20.100.248",
"nodename": "v_vmart_node0002",
"status": "UP",
"ts": "2014-07-18T13:12:31.904209"
},
{
"hostname": "10.20.100.249",
"nodename": "v_vmart_node0003",
"status": "UP",
"ts": "2014-07-18T13:12:31.904215"
}
],
"href": "/databases/VMart/hosts",
"links": [],
"mime-type": "application/vertica.hosts.json-v2"
}
3.3.9 - POST databases/:database_name/hosts
创建一个作业,以将主机添加到 :database_name
所标识的数据库。此主机必须已属于该群集的一部分。:database_name
是 GET databases 命令返回的 name 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/databases/:database_name/hosts
<<<<<<<
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有管理级别的安全性。
API 密钥必须具有管理 级别的安全性。
参数
示例请求
响应:
{
"id": "AddHostToDatabase-testDB-2014-07-20 12:24:04.088812",
"url": "/jobs/AddHostToDatabase-testDB-2014-07-20 12:24:04.088812"
}
3.3.10 - DELETE databases/:database_name/hosts/:host_id
创建一个作业,以从 :database_name
所标识的数据库中移除 :host_id
所标识的主机。:database_name
是 GET databases 命令返回的 name 字段的值。:host_id
是 GET databases/:database_name 返回的 host 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/databases/:database_name/hosts/:host_id
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有管理 级别的安全性。
参数
示例请求
响应:
{
"id": "RemoveHostFromDatabase-testDB-2014-07-20 13:41:15.646235",
"url": "/jobs/RemoveHostFromDatabase-testDB-2014-07-20 13:41:15.646235"
}
3.3.11 - POST databases/:database_name/hosts/:host_id/process
创建一个作业,以在 :host_id
所标识的主机上启动 :database_name
所标识的数据库的 Vertica 进程。:database_name
是 GET databases 命令返回的 name 字段的值。:host_id
是 GET databases/:database_name 返回的 host 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/databases/:database_name/hosts/:host_id/process
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"id": "StartDatabase-testDB-2014-07-20 13:14:03.968340",
"url": "/jobs/StartDatabase-testDB-2014-07-20 13:14:03.968340"
}
3.3.12 - GET databases/:database_name/license
返回有关 :database_name
所标识的数据库正在使用的数据库许可证的详细信息。:database_name
是 GET databases 命令返回的 name 字段的值。
资源 URL
https://<NODE>:5444/:database_name/license
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
示例请求
响应:
{
"body": {
"details": {
"assigned_to": "Vertica Systems, Inc.",
"grace_period": 0,
"is_ce": false,
"is_unlimited": false,
"name": "vertica",
"not_after": "Perpetual",
"not_before": "2007-08-03"
},
"last_audit": {
"audit_date": "2014-07-18 13:49:22.530105-04",
"database_size_bytes": "814060522",
"license_size_bytes": "536870912000",
"usage_percent": "0.00151630588248372"
}
},
"href": "/databases/VMart/license",
"links": [],
"mime-type": "application/vertica.license.json-v2"
}
3.3.13 - GET databases/:database_name/licenses
返回有关 :database_name
所标识的数据库正在使用的所有许可证的详细信息。:database_name
是 GET databases 命令返回的 name 字段的值。
资源 URL
https://<NODE>:5444/:database_name/licenses
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
示例请求
响应:
{
"body": [
{
"details": {
"assigned_to": "Vertica Systems, Inc.",
"audit_date": "2014-07-19 21:35:25.111312",
"is_ce": "False",
"name": "vertica",
"node_restriction": "",
"not_after": "Perpetual",
"not_before": "2007-08-03",
"size": "500GB"
},
"last_audit": {
"audit_date": "2014-07-19 21:35:26.318378-04",
"database_size_bytes": "819066288",
"license_size_bytes": "536870912000",
"usage_percent": "0.00152562984824181"
}
},
{
"details": {
"assigned_to": "Vertica Systems, Inc., FlexTable",
"audit_date": "2014-07-19 21:35:25.111312",
"is_ce": "False",
"name": "com.vertica.flextable",
"node_restriction": "",
"not_after": "Perpetual",
"not_before": "2007-08-03",
"size": "500GB"
},
"last_audit": {
"audit_date": "2014-07-19 21:35:25.111312",
"database_size_bytes": 0,
"license_size_bytes": 536870912000,
"usage_percent": 0
}
}
],
"href": "/databases/VMart/licenses",
"links": [],
"mime-type": "application/vertica.features.json-v2"
}
3.3.14 - DELETE databases/:database_name/hosts/:host_id/process
创建一个作业,以在 :host_id
所标识的主机上停止 :database_name
所标识的数据库的 Vertica 进程。:database_name
是 GET databases 命令返回的 name 字段的值。:host_id
是 GET databases/:database_name 返回的 host 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
注意
如果在主机上停止数据库会导致数据库不再是 k-safe 的,则所有数据库节点可能会关闭。资源 URL
https://<NODE>:5444/databases/:database_name/hosts/:host_id/process
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"id": "StopDatabase-testDB-2014-07-20 13:02:08.453547",
"url": "/jobs/StopDatabase-testDB-2014-07-20 13:02:08.453547"
}
3.3.15 - POST databases/:database_name/hosts/:host_id/replace_with/:host_id_new
创建一个作业以替换由 hosts/:host_id
标识的主机,其中 replace_with/:host_id
. Vertica performs these operations for the database identified by :database_name
. The :database_name
标识的主机是 GET databases 命令返回的 name 字段的值。:host_id
是 GET databases/:database_name 返回的 host 字段的值。可以使用 GET hosts 查找有效的替换主机。替换主机不能已属于该数据库的一部分。必须在要替换的主机上停止 Vertica 进程。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/databases/:database_name/hosts/:host_id/replace_with/:host_id_new
<<<<<<<
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有管理级别的安全性。
API 密钥必须具有管理 级别的安全性。
参数
示例请求
响应:
{
"id": "ReplaceNode-testDB-2014-07-20 13:50:28.423509",
"url": "/jobs/ReplaceNode-testDB-2014-07-20 13:50:28.423509"
}
3.3.16 - GET databases/:database_name/nodes
返回 :database_name
所标识的数据库的节点 ID 的逗号分隔列表。:database_name
是 GET databases 命令返回的 name 字段的值。
资源 URL
https://<NODE>:5444/:database_name/nodes
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
[
{
"database_id": "VMart",
"node_id": "v_vmart_node0001,v_vmart_node0002,v_vmart_node0003",
"status": "Unknown"
}
]
3.3.17 - GET databases/:database_name/nodes/:node_id
返回 :node_id
标识的节点的详细信息。:node_id
是 GET databases/:database_name/nodes 返回的节点 ID 之一。
资源 URL
https://<NODE>:5444/:database_name/nodes/:node_id
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"db": "VMart",
"host": "10.20.100.247",
"name": "v_vmart_node0001",
"state": "UP"
}
3.3.18 - POST databases/:database_name/process
创建一个作业,以启动 :database_name
所标识的数据库。:database_name
是 GET databases 命令返回的 name 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/databases/:database_name/process
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
示例请求
使用 cURL 的完整请求的示例:
curl -d "epoch=epoch_number&include=host1,host2" -X POST -H "VerticaApiKey: ValidAPIKey" https://<NODE>:5444/:testDB/process
响应:
{
"id": "StartDatabase-testDB-2014-07-20 12:41:46.061408",
"url": "/jobs/StartDatabase-testDB-2014-07-20 12:41:46.061408"
}
3.3.19 - GET databases/:database_name/process
返回 :database_name
所标识的数据库的 UP 或 DOWN 状态。:database_name
是 GET databases 命令返回的 name 字段的值。
资源 URL
https://<NODE>:5444/databases/:database_name/process
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"state": "UP"
}
3.3.20 - DELETE databases/:database_name/process
创建一个作业,以停止 :database_name
所标识的数据库。:database_name
是 GET databases 命令返回的 name 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/databases/:database_name/process
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
示例请求
使用 cURL 的完整请求的示例:
curl -X DELETE -H "VerticaApiKey: ValidAPIKey" https://<NODE>:5444/:testDB/process?user_id=dbadmin"&"passwd=vertica
响应:
{
"id": "StopDatabase-testDB-2014-07-20 12:46:04.406637",
"url": "/jobs/StopDatabase-testDB-2014-07-20 12:46:04.406637"
}
3.3.21 - POST databases/:database_name/rebalance/process
创建一个作业,以对 :database_name
所标识的数据库运行重新平衡。:database_name
是 GET databases 命令返回的 name 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/databases/:database_name/rebalance/process
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
示例请求
响应:
{
"id": "RebalanceData-testDB-2014-07-20 21:42:45.731038",
"url": "/jobs/RebalanceData-testDB-2014-07-20 21:42:45.731038"
}
3.3.22 - POST databases/:database_name/Workload analyzer/process
创建一个作业,以对 :database_name
所标识的数据库运行 Workload Analyzer。:database_name
是 GET databases 命令返回的 name 字段的值。
返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs。
资源 URL
https://<NODE>:5444/databases/:database_name/Workload Analyzer/process
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
示例请求
响应:
{
"id": "AnalyzeWorkLoad-testDB-2014-07-20 21:48:27.972989",
"url": "/jobs/AnalyzeWorkLoad-testDB-2014-07-20 21:48:27.972989"
}
3.4 - 主机
可以使用这些 API 调用获取有关群集中的主机的信息。
3.4.1 - GET hosts
返回群集中的主机的列表,以及有关每个主机的硬件、软件和网络详细信息。
资源 URL
https://<NODE>:5444/hosts
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"body": [
{
"cpu_info": {
"cpu_type": " Intel(R) Xeon(R) CPU E5-2695 v2 @ 2.40GHz",
"number_of_cpus": 2
},
"host_id": "10.20.100.247",
"hostname": "v_vmart_node0001.example.com",
"max_user_proc": "3833",
"nics": [
{
"broadcast": "10.20.100.255",
"ipaddr": "10.20.100.247",
"name": "eth0",
"netmask": "255.255.255.0",
"speed": "unknown"
},
{
"broadcast": "255.255.255.255",
"ipaddr": "127.0.0.1",
"name": "lo",
"netmask": "255.0.0.0",
"speed": "locallink"
}
],
"total_memory": 3833,
"vertica": {
"arch": "x86_64",
"brand": "vertica",
"release": "20140716",
"version": "12.0.x0"
}
},
{
"cpu_info": {
"cpu_type": " Intel(R) Xeon(R) CPU E5-2695 v2 @ 2.40GHz",
"number_of_cpus": 2
},
"host_id": "10.20.100.248",
"hostname": "v_vmart_node0002.example.com",
"max_user_proc": "3833",
"nics": [
{
"broadcast": "10.20.100.255",
"ipaddr": "10.20.100.248",
"name": "eth0",
"netmask": "255.255.255.0",
"speed": "unknown"
},
{
"broadcast": "255.255.255.255",
"ipaddr": "127.0.0.1",
"name": "lo",
"netmask": "255.0.0.0",
"speed": "locallink"
}
],
"total_memory": 3833,
"vertica": {
"arch": "x86_64",
"brand": "vertica",
"release": "20140716",
"version": "12.0.x0"
}
},
{
"cpu_info": {
"cpu_type": " Intel(R) Xeon(R) CPU E5-2695 v2 @ 2.40GHz",
"number_of_cpus": 2
},
"host_id": "10.20.100.249",
"hostname": "v_vmart_node0003.example.com",
"max_user_proc": "3833",
"nics": [
{
"broadcast": "10.20.100.255",
"ipaddr": "10.20.100.249",
"name": "eth0",
"netmask": "255.255.255.0",
"speed": "unknown"
},
{
"broadcast": "255.255.255.255",
"ipaddr": "127.0.0.1",
"name": "lo",
"netmask": "255.0.0.0",
"speed": "locallink"
}
],
"total_memory": 3833,
"vertica": {
"arch": "x86_64",
"brand": "vertica",
"release": "20140716",
"version": "12.0.x0"
}
}
],
"href": "/hosts",
"links": [
"/:hostid"
],
"mime-type": "application/vertica.hosts.json-v2"
}
3.4.2 - GET hosts/:hostid
返回有关 :host_id
所标识的主机的硬件、软件和网络详细信息。可以使用 GET hosts 查找每个主机的 :host_id
。
资源 URL
https://<NODE>:5444/hosts/:hostid
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"body": {
"cpu_info": {
"cpu_type": " Intel(R) Xeon(R) CPU E5-2695 v2 @ 2.40GHz",
"number_of_cpus": 2
},
"hostname": "v_vmart_node0001.example.com",
"max_user_proc": "3833",
"nics": [
{
"broadcast": "10.20.100.255",
"ipaddr": "10.20.100.247",
"name": "eth0",
"netmask": "255.255.255.0",
"speed": "unknown"
},
{
"broadcast": "255.255.255.255",
"ipaddr": "127.0.0.1",
"name": "lo",
"netmask": "255.0.0.0",
"speed": "locallink"
}
],
"total_memory": 3833,
"vertica": {
"arch": "x86_64",
"brand": "vertica",
"release": "20140716",
"version": "12.0.x0"
}
},
"href": "/hosts/10.20.100.247",
"links": [],
"mime-type": "application/vertica.host.json-v2"
}
3.5 - 作业
可以使用这些 API 调用获取有关数据库的作业的信息。
3.5.1 - GET jobs
返回代理正在跟踪的作业的列表和作业详细信息。
作业始终立即启动。is_running
字段是一个布尔值。如果 is_running
为 false,则表明作业已完成。
exit_code
详细介绍了作业的状态。某些类型的作业的 exit_code
是不同的:
-
对于备份作业:
-
0 表示成功。
-
所有其他数字都表示失败。
-
-
对于所有其他作业:
-
-9 表示成功。
-
所有其他数字都表示失败。
-
可以在 /opt/vertica/log/agentStdMsg.log
中查看有关失败的详细信息。
资源 URL
https://<NODE>:5444/jobs
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"body": [
{
"exit_code": 0,
"id": "CreateBackup-VMart-1405012447.75",
"is_running": false,
"status": "unused",
"ts": "1405012461.18"
},
{
"exit_code": 1,
"id": "CreateBackup-VMart-1405012454.88",
"is_running": false,
"status": "unused",
"ts": "1405012455.18"
}
],
"href": "/jobs",
"links": [
"/:jobid"
],
"mime-type": "application/vertica.jobs.json-v2"
}
3.5.2 - GET jobs/:id
使用所提供的 :id
获取特定作业的详细信息。可以使用 GET jobs 确定 jobs/:id 的列表。
特定作业的详细信息与 GET jobs 为所有作业提供的详细信息相同。
注意
您必须对:id
进行 URL 编码,因为一些 ID 可能包含空格或其他特殊字符。
资源 URL
https://<NODE>:5444/jobs/:id
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
3.6 - 许可证
可以使用这些 API 调用管理数据库的许可证。
3.6.1 - POST licenses
将许可证文件上传并应用到此群集。
必须以 HTTP POST 表单上传格式提供许可证文件,并用名称 license 标识该许可证文件。例如,可以使用以下 cURL:
curl -k --request POST -H "VerticaApiKey:ValidAPIKey" \
https://v_vmart_node0001:5444/licenses --form "license=@vlicense.dat"
资源 URL
https://<NODE>:5444/licenses
<<<<<<<
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有管理级别的安全性。
API 密钥必须具有管理 级别的安全性。
参数
无。
示例请求
响应:
成功的上传没有 HTTP 主体响应。成功的上传将返回 HTTP 200/OK 标头。
3.6.2 - GET licenses
返回在创建数据库时由此群集使用的任何许可证文件。许可证文件必须驻留在 /opt/vertica/config/share
中。
资源 URL
https://<NODE>:5444/licenses
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"body": [
{
"comment": "Vertica license is valid",
"end": "Perpetual",
"grace": "0",
"size": "1TB CE Nodes 3",
"start": "2011-11-22",
"status": true,
"vendor": "Vertica Community Edition"
}
],
"href": "/license",
"links": [],
"mime-type": "application/vertica.license.json-v2"
}
3.7 - 节点
可以使用这些 API 调用检索有关群集中的节点的信息。
3.7.1 - GET nodes
返回与此群集关联的节点的列表。
资源 URL
https://<NODE>:5444/nodes
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"body": [
"node0001",
"node0002",
"node0003",
"v_testdb_node0001",
"v_testdb_node0002",
"v_testdb_node0003",
"v_vmart_node0001",
"v_vmart_node0002",
"v_vmart_node0003"
],
"href": "/nodes",
"links": [
"/:nodeid"
],
"mime-type": "application/vertica.nodes.json-v2"
}
3.7.2 - GET nodes/:nodeid
返回 :node_id
标识的节点的详细信息。可以使用 GET nodes 查找每个节点的 :node_id
。
主体字段中以逗号分隔格式详细介绍了以下信息:
-
节点名称
-
主机地址
-
编录目录
-
数据目录
资源 URL
https://<NODE>:5444/nodes/:node_id
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"body": [
"v_vmart_node0001",
"10.20.100.247,/home/dbadmin,/home/dbadmin"
],
"href": "/nodes/v_vmart_node0001",
"links": [],
"mime-type": "application/vertica.node.json-v2"
}
3.8 - Webhooks
可以使用这些 API 调用获取有关 Webhook 的信息,以及创建或删除 Webhook。
3.8.1 - GET webhooks
返回此群集的活动 Webhook 的列表。
资源 URL
https://<NODE>:5444/webhooks
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
{
"body": [
{
"host": "192.168.232.1",
"id": "79c1c8a18be02804b3d2f48ea6462909",
"port": 80,
"timestamp": "2014-07-20 22:54:09.829642",
"url": "/gettest.htm"
},
{
"host": "192.168.232.1",
"id": "9c32cb0f3d2f9a7cb10835f1732fd4a7",
"port": 80,
"timestamp": "2014-07-20 22:54:09.829707",
"url": "/getwebhook.php"
}
],
"href": "/webhooks",
"links": [
"/subscribe",
"/:subscriber_id"
],
"mime-type": "application/vertica.webhooks.json-v2"
}
3.8.2 - POST webhooks/subscribe
为 Webhook 创建订阅。
资源 URL
https://<NODE>:5444/webhooks/subscribe
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
示例请求
响应:
响应不采用 JSON 编码。仅有的文本响应是 Webhook 订阅的 ID。此外,HTTP 200/OK 标头指示操作成功。
79c1c8a18be02804b3d2f48ea6462909
3.8.3 - DELETE webhooks/:subscriber_id
删除 :subscriber_id
所标识的 Webhook。:subscriber_id
是 GET webhooks 命令返回的 id 字段的值。
资源 URL
https://<NODE>:5444/webhooks/:subscriber_id
认证
请求头中需要包含 VerticaAPIKey。
API 密钥必须具有受限 级别或更高级别的安全性。
参数
无。
示例请求
响应:
成功的删除没有 HTTP 主体响应。成功的删除将返回 HTTP 200/OK 标头。
4 - 管理控制台的 Rest API
这些 API 调用与管理控制台节点交互。
警报
时间信息
4.1 - MC-User-ApiKey
MC-User-ApiKey 是特定于用户的密钥,与管理控制台结合使用。用户必须拥有 MC-User-ApiKey 才能使用 Rest API 与 MC 交互。所有具有 None 以外的其他角色的用户都将自动收到 MC-User-ApiKey。
此密钥可通过 API 向用户授予他们已通过 MC 角色获取的相同权限。若要与 MC 交互,用户应在 API 的请求标头中传递该密钥。
查看 MC-User-ApiKey
如果您是数据库管理员,则可以查看所有用户的 MC-User-ApiKey。各个用户可以查看各自的密钥。
-
连接到 MC,然后转到“MC 设置 (MC Settings)”>“用户管理 (User Management)”。
-
选择要查看的用户,然后单击“编辑 (Edit)”。该用户的密钥将显示在“用户 API 密钥 (User API Key)”字段中。
4.2 - GET alerts
返回 MC 警报及其当前状态和数据库属性的列表。
资源 URL
https://<MC_NODE>:5450/webui/api/alerts
认证
请求头中需要包含 MC-User-Apikey。
筛选器参数
示例请求
使用 cURL 请求警报
以下示例显示了如何使用 cURL 请求警报。在此示例中,limit
参数设置为“2”,而 types
参数设置为 info
和 notice
:
curl -H "MC-User-ApiKey: ValidUserKey" https://<MC_NODE>:5450/webui/api/alerts?limit=2&types=info,notice
响应:
[
{
"alerts":[
{
"id":5502,
"markedRead":false,
"eventTypeCode":0,
"create_time":"2016-02-02 05:12:10.0",
"updated_time":"2016-02-02 15:50:20.511",
"severity":"warning",
"status":1,
"nodeName":"v_vmart_node0001",
"databaseName":"VMart",
"databaseId":1,
"clusterName":"1449695416208_cluster",
"description":"Warning: Low disk space detected (73% in use)",
"summary":"Low Disk Space",
"internal":false,
"count":3830
},
{
"id":5501,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2016-02-02 05:12:02.31",
"updated_time":"2016-02-02 05:12:02.31",
"severity":"notice",
"status":1,
"databaseName":"VMart",
"databaseId":1,
"clusterName":"1449695416208_cluster",
"description":"Analyze Workload operation started on Database",
"summary":"Analyze Workload operation started on Database",
"internal":false,
"count":1
}
],
"total_alerts":190,
"request_query":"limit=2",
"request_time":"2016-02-02 15:50:26 -0500"
}
]
请求某个时间范围内的警报
以下示例显示了多种方法,您可以使用这些方法请求与以上示例相同但处于指定时间范围的警报。
使用 time_from
和 time_to
参数请求处于特定时间范围的警报:
curl -H "MC-User-ApiKey: ValidUserKey" https://<MC_NODE>:5450/webui/api/alerts?types=info,notice&time_from=2016-01-01T12:12&time_to=2016-02-01T12:12
使用 time_from
参数请求从特定开始时间到当前时间的警报:
curl -H "MC-User-ApiKey: ValidUserKey" https://<MC_NODE>:5450/webui/api/alerts?types=info,notice&time_from=2016-01-01T12:12
使用 time_to
参数请求到特定终点为止的警报:如果使用 time_to
参数但不使用 time_from
参数,则 time_from
参数默认设置为 MC 所包含的最旧警报:
curl -H "MC-User-ApiKey: ValidUserKey" https://<MC_NODE>:5450/webui/api/alerts?types=info,notice&time_to=2016-01-01T12:12
4.3 - GET mcTimeInfo
返回 MC 服务器的当前时间和该 MC 服务器所位于的时区。
资源 URL
https://<MC_NODE>:5450/webui/api/mcTimeInfo
认证
请求头中需要包含 MC-User-Apikey。
参数
无。
示例请求
以下示例显示了如何使用 cURL 请求 MC 时间信息:
curl -H "MC-User-ApiKey: ValidUserKey" https://<MC_NODE>:5450/webui/api/mcTimeInfo
响应:
{"mc_current_time":"Tue, 2000-01-01 01:02:03 -0500","mc_timezone":"US/Eastern"}
4.4 - 阈值类别筛选器
返回与 MC 中的阈值设置相关的警报的列表。
资源 URL
https://<MC_NODE>:5450/webui/api/alerts?category=thresholds
认证
请求头中需要包含 MC-User-Apikey。
示例请求
以下示例显示了如何使用 cURL 请求有关阈值的警报:
curl -H "MC-User-ApiKey: ValidUserKey" https://<MC_NODE>:5450/webui/api/alerts?category=thresholds
响应:
[
{
"alerts":[
{
"id":33,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-10 10:28:41.332",
"updated_time":"2015-11-10 10:28:41.332",
"severity":"warning",
"status":1,
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":" Database: mydb Lower than threshold Node Disk I/O 10 % v_mydb_node0002 ;1.6% v_mydb_node0002 ;1.4% v_mydb_node0002 ;2.3% v_mydb_node0002 ;1.13% v_mydb_node0002 ;1.39% v_mydb_node0001 ;3.78% v_mydb_node0003 ;1.79% ",
"summary":"Threshold : Node Disk I/O < 10 %",
"internal":false,
"count":1
},
{
"id":32,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-10 10:28:40.975",
"updated_time":"2015-11-10 10:28:40.975",
"severity":"warning",
"status":1,
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":" Database: mydb Lower than threshold Node Memory 10 % v_mydb_node0002 ;5.47% v_mydb_node0002 ;5.47% v_mydb_node0002 ;5.47% v_mydb_node0002 ;5.47% v_mydb_node0002 ;5.48% v_mydb_node0003 ;4.53% ",
"summary":"Threshold : Node Memory < 10 %",
"internal":false,
"count":1
},
{
"id":31,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-10 10:28:40.044",
"updated_time":"2015-11-10 10:28:40.044",
"severity":"warning",
"status":1,
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":" Database: mydb Lower than threshold Node CPU 10 % v_mydb_node0002 ;1.4% v_mydb_node0002 ;1.64% v_mydb_node0002 ;1.45% v_mydb_node0002 ;2.49% ",
"summary":"Threshold : Node CPU < 10 %",
"internal":false,
"count":1
},
{
"id":30,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-10 10:28:34.562",
"updated_time":"2015-11-10 10:28:34.562",
"severity":"warning",
"status":1,
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":" Database: mydb Exceed threshold Node Disk Usage 60 % v_mydb_node0001 ;86.41% ",
"summary":"Threshold : Node Disk Usage > 60 %",
"internal":false,
"count":1
}
],
"total_alerts":4,
"request_query":"category=thresholds",
"request_time":"2015-11-10 10:29:17.129"
}
]
另请参阅
4.5 - 数据库名称类别筛选器
返回有关特定数据库的 MC 警报的列表。
资源 URL
https://<MC_NODE>:5450/webui/api/alerts?db_name=
认证
请求头中需要包含 MC-User-Apikey。
示例请求
以下示例显示了如何使用 cURL 查看有关特定数据库的警报:
curl -H "MC-User-ApiKey: ValidUserKey" https://<MC_NODE>:5450/webui/api/alerts?db_name="mydb"
响应:
[
{
"alerts":[
{
"id":9,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-05 15:10:53.391",
"updated_time":"2015-11-05 15:10:53.391",
"severity":"notice",
"status":1,
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":"Workload analyzed successfully",
"summary":"Analyze Workload operation has succeeded on Database",
"internal":false,
"count":1
},
{
"id":8,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-05 15:10:31.16",
"updated_time":"2015-11-05 15:10:31.16",
"severity":"notice",
"status":1,
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":"Analyze Workload operation started on Database",
"summary":"Analyze Workload operation started on Database",
"internal":false,
"count":1
},
{
"id":7,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-05 00:15:00.204",
"updated_time":"2015-11-05 00:15:00.204",
"severity":"alert",
"status":1,
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":"Workload analyzed successfully",
"summary":"Analyze Workload operation has succeeded on Database",
"internal":false,
"count":1
},
{
"id":6,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-04 15:14:59.344",
"updated_time":"2015-11-04 15:14:59.344",
"severity":"notice",
"status":1,
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":"Workload analyzed successfully",
"summary":"Analyze Workload operation has succeeded on Database",
"internal":false,
"count":1
},
{
"id":5,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-04 15:14:38.925",
"updated_time":"2015-11-04 15:14:38.925",
"severity":"notice",
"status":1,
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":"Analyze Workload operation started on Database",
"summary":"Analyze Workload operation started on Database",
"internal":false,
"count":1
},
{
"id":4,
"markedRead":false,
"eventTypeCode":0,
"create_time":"2015-11-04 15:14:33.0",
"updated_time":"2015-11-05 16:26:17.978",
"severity":"notice",
"status":1,
"nodeName":"v_mydb_node0001",
"databaseName":"lmydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":"Workload analyzed successfully",
"summary":"Analyze Workload operation has succeeded on Database",
"internal":false,
"count":1
},
{
"id":3,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-04 15:14:32.806",
"updated_time":"2015-11-04 15:14:32.806",
"severity":"info",
"status":1,
"hostIp":"10.20.100.64",
"nodeName":"v_mydb_node0003",
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":"Agent status is UP on IP 127.0.0.1",
"summary":"Agent status is UP on IP 127.0.0.1",
"internal":false,
"count":1
},
{
"id":2,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-04 15:14:32.541",
"updated_time":"2015-11-04 15:14:32.541",
"severity":"info",
"status":1,
"hostIp":"10.20.100.63",
"nodeName":"v_mydb_node0002",
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":"Agent status is UP on IP 127.0.0.1",
"summary":"Agent status is UP on IP 127.0.0.1",
"internal":false,
"count":1
},
{
"id":1,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-04 15:14:32.364",
"updated_time":"2015-11-04 15:14:32.364",
"severity":"info",
"status":1,
"hostIp":"10.20.100.62",
"nodeName":"v_mydb_node0001",
"databaseName":"mydb",
"databaseId":1,
"clusterName":"1446668057043_cluster",
"description":"Agent status is UP on IP 127.0.0.1",
"summary":"Agent status is UP on IP 127.0.0.1",
"internal":false,
"count":1
}
],
"total_alerts":9,
"request_query":"db_name=mydb",
"request_time":"2015-11-05 16:26:21.679"
}
]
4.6 - 将子类别筛选器与类别筛选器组合起来
您可以将类别筛选器与子类别筛选器结合使用,以获取在 MC 中设置的特定阈值的警报消息。还可以使用子类别筛选器,以获取有关数据库中特定资源池的警报。
子类别筛选器
可以将以下子类别筛选器与类别筛选器结合使用。子类别筛选器区分大小写,并且必须是小写。
特定于资源池的子类别筛选器
若要检索特定资源池的警报,您可以将子类别筛选器与以下类别筛选器结合使用:
-
thresholds
-
rp_name
如果使用这些子类别筛选器但不使用 RP_NAME
筛选器,查询将检索数据库中所有资源池的警报。
认证
请求头中需要包含 MC-User-Apikey。
示例请求
将阈值类别筛选器与子类别筛选器结合使用
以下示例显示了如何将 cURL 与阈值类别筛选器和子类别筛选器结合使用以获取警报。您可应用以下筛选器:
-
THRESHOLDS
-
THRESHOLD_NODE_CPU
curl -H "MC-User-ApiKey: ValidUserKey" https://<MC_NODE>:5450/webui/api/alerts?category=thresholds&subcategory=threshold_node_cpu
响应:
[
{
"alerts":[
{
"id":11749,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-05 11:04:43.997",
"updated_time":"2015-11-05 11:04:43.997",
"severity":"warning",
"status":1,
"databaseName":"mydb",
"databaseId":105,
"clusterName":"1443122180317_cluster",
"description":" Database: mydb Lower than threshold Node CPU 10 % v_mydb_node0002 ;1.03% v_mydb_node0003 ;0.9% v_mydb_node0001 ;1.36% ",
"summary":"Threshold : Node CPU < 10 %",
"internal":false,
"count":1
},
{
"id":11744,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-05 10:59:46.107",
"updated_time":"2015-11-05 10:59:46.107",
"severity":"warning",
"status":1,
"databaseName":"mydb2",
"databaseId":106,
"clusterName":"1443552354071_cluster",
"description":" Database: mydb2 Lower than threshold Node CPU 10 % v_mydb2_node0002 ;0.83% v_mydb2_node0001 ;1.14% ",
"summary":"Threshold : Node CPU < 10 %",
"internal":false,
"count":1
}
],
"total_alerts":2,
"request_query":"category=thresholds&subcategory=threshold_node_cpu",
"request_time":"2015-11-05 11:05:28.116"
}
]
请求有关特定资源池的警报
以下示例显示了如何使用 cURL 请求有关特定资源池的警报。资源池的名称是 resourcepool1
。您可应用以下筛选器:
-
THRESHOLDS
-
RP_NAME
-
THRESHOLD_RP_QUERY_RUN_TIME
curl -H "MC-User-ApiKey: ValidUserKey" https://<MC_NODE>:5450/webui/api/alerts?category=thresholds&subcategory=threshold_rp_query_run_time&rp_name=resourcepool1
响应:
[
{
"alerts":[
{
"id":6525,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-05 14:25:36.797",
"updated_time":"2015-11-05 14:25:36.797",
"severity":"warning",
"status":1,
"databaseName":"mydb",
"databaseId":106,
"clusterName":"1443552354071_cluster",
"description":" Resource Pool: resourcepool1 Threshold Name: Ended Query with Run Time Exceeding Limit Time Interval: 14:20:36 to 14:25:36 Threshold Value: 0 min(s) Actual Value: 2186 query(s) ",
"summary":"Resource Pool: resourcepool1; Threshold : Ended Query with Run Time Exceeding Limit > 0 min(s)",
"internal":false,
"count":1
},
{
"id":6517,
"markedRead":false,
"eventTypeCode":2,
"create_time":"2015-11-05 14:20:39.541",
"updated_time":"2015-11-05 14:20:39.541",
"severity":"warning",
"status":1,
"databaseName":"mydb",
"databaseId":106,
"clusterName":"1443552354071_cluster",
"description":" Resource Pool: resourcepool1 Threshold Name: Ended Query with Run Time Exceeding Limit Time Interval: 14:15:39 to 14:20:39 Threshold Value: 0 min(s) Actual Value: 2259 query(s) ",
"summary":"Resource Pool: resourcepool1; Threshold : Ended Query with Run Time Exceeding Limit > 0 min(s)",
"internal":false,
"count":1
}
],
"total_alerts":14,
"request_query":"category=thresholds&subcategory=threshold_rp_query_run_time&rp_name=resourcepool1",
"request_time":"2015-11-05 11:07:43.988"
}
]