功能强大的 Hyperic 的 Web Service API

 Hyperic Api是一套访问和更新Hyperic 资源库和相关配置数据的Java API。用户可以使用这些API通过命令行或Java程序访问Hyperic 数据和资源。用户可以通过API访问平台,服务器,服务,组,升级,用户和角色等。同时还可以使用API管理缺省的指标采集设置和报警定义。

Hyperic API 的作用

Hyperic Api 可使用户绕过Hyperic用户界面,直接访问Hyperic 服务器的功能。这对于流水线式的实施和配置非常有用。例如,用户可以使用命令行工具执行批量更新。Hyperic API 可帮助用户实现Hyperic与其他系统的接口,例如可以写一个小工具调用API抽取数据并导入到资产跟踪系统。

Hyperic API 可帮助用户:

创建,更新和抽取平台,服务器,服务和组等的数据;

创建,更新和抽取资源类型和每个资源的指标数据及其配置;

定义资源的报警;

创建和更新用户和角色;

用户权限和Hyperic API

Hyperic中定义的用户权限和资源访问限制用户能通过Hyperic API 访问哪些Hyperic的资源,

例如,用户运行命令行工具列出的资源只包括该用户有权限访问的资源列表。

如何访问Hyperic API

程序调用:

每个API都可以通过程序调用,这种使用模式适合外部系统或操作Hyperic 内部数据。用户可以直接调用Java API,同时Hyperic也提供 RESTful web services 方式。

命令行工具:

Hyperic Api包包含了一个API的命令行接口。用户可以通过shell或脚本使用命令行工具。命令行工具是面向Hyperic管理员和用户的。命令行脚本可以直接使用命令行参数调用。很多命令返回XML对象。还可用于大规模的批量操作,如果使用图形界面将非常繁琐。

命令行工具提供完整API功能的一个子集。因此,工具调用的API都是由Java API支持的。Java API提供更多的功能,例如抽取指标数据的丰富功能。

如何安装Hyperic API

Hypeirc Api 与Hyperic 一起发行。可通过下面方式下载:
在Hyperic 用户界面 单击”管理“选项卡,在 ”插件“部分,单击 HQ Web Services API, 将显示一个下载页面,在该页面单击响应连接即可下载。

然后存放到某个目录下,解压缩。

API 包的内容

Hyperic API 的文件夹名称是 hqapix.y.z. 文件夹结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
hqapi1-client-5.0.0
  bin
    hqapi.bat
    hqapi.sh
    hq-encrypt-password.sh
    hq-encrypt-password.sh
  lib
  conf
    log4j.properties
  hqapi1-4.0.0.jar
  javadoc
  lib
  logs
     commandline.log
  wadl
      HQApi1.wadl
  xsd
      HQApi1.xsd

 

  其中

hqapi1.jar — 与Hyperic后台交互的客户端Jar包。
hqapi.sh 或 hqapi.bat — 启动和停止客户端的脚本
log4j.properties
HQApi1.wadl
HQApi1.xsd

命令行工具使用示例

基本格式: 

1
./bin/hqapi.sh <top-level-command> <sub-command> <options> 

其中 <top-level-command> 是命令行工具名,例如agent 或 resource.
<sub-command> 是支持的命令选项,例如, listsync, 或 delete.
<options> 是一个或多个所支持的命令选项,命令或子命令。例如,resource list 等

具体示例:

1
./bin/hqapi.sh resource list --prototype="MacOSX"

列出类型是 "MacOSX" 的资源。

1
2
3
4
5
6
7
$ ./bin/hqapi.sh agent list
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AgentsResponse>
<Status>Success</Status>
<Agent id="10901" address="10.17.184.239" port="4749" version="4.5.1.2.BUILD-SNAPSHOT"
unidirectional="false"/>
</AgentsResponse>

输出 hyperic agent 列表的xml。