这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

管理 API

管理 API 是一个 REST API,您可以使用此 API 通过接受 REST 和 JSON 的脚本或应用程序查看和管理 Vertica 数据库。所有请求的响应格式均为 JSON。

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 配置

  1. 根据您的用例生成或导入以下内容:

    • 服务器模式:服务器证书私钥、服务器证书

    • 相互模式:服务器证书私钥、服务器证书、CA 证书

  2. 根据您所需的配置运行以下命令。新连接将使用 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;
      
  3. 启用 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';
    
  4. 验证 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_idGET 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_idGET 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_nameGET 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_nameGET 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_nameGET 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_nameGET 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_nameGET 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_nameGET 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_nameGET 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_nameGET databases 命令返回的 name 字段的值。:host_idGET 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_nameGET databases 命令返回的 name 字段的值。:host_idGET 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_nameGET 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_nameGET 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_nameGET databases 命令返回的 name 字段的值。:host_idGET databases/:database_name 返回的 host 字段的值。

返回一个作业 ID,它可用于确定作业的状态。请参阅GET jobs

资源 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_idGET 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_nameGET 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_idGET 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_nameGET 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_nameGET 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_nameGET 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_nameGET 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_nameGET 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 为所有作业提供的详细信息相同。

资源 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_idGET 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。各个用户可以查看各自的密钥。

  1. 连接到 MC,然后转到“MC 设置 (MC Settings)”>“用户管理 (User Management)”。

  2. 选择要查看的用户,然后单击“编辑 (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 参数设置为 infonotice

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