ManageOne OC 调用北向性能数据接口返回403

新人帖[复制链接]
发表于 : 2018-3-13 09:28:06 最新回复:2018-06-05 11:08:41
3833 5
  求助帖: (未解决)
涉及的 OperationCenter 版本为 3.0,参考的 北向接口文档 为 "ManageOne OperationCenter 3.0 北向接口参考 01.docx",文档出现在 ManageOne_OperationCenter_3.0_版本文档_04.zip 中。

目前采用 curl 调试,构造的获取 token 的命令是:
curl -k -X POST https://172.27.222.5:63234/oc/v2.3/tokens --cert cert/cert.pem --key cert/key.pem -H "Content-Type: application/json;charset=UTF-8" -H "Accept: application/json;charset=UTF-8" -d '{"user_id": "openapi", "host_ip": "172.30.210.19", "value": "passwd"}'

{"data":"A7F1651A696E107A98249354D31AB9F09CBEE9882B207322"}
这样能获取到 token,其中客户端信任证书 cert.pem 和客户端私钥 key.pem 已指定且已导入 OC 平台;OC OpenAPI 方式登录用户 openapi/passwd 也通过 --data 选项指定,客户端 IP 地址已加入 OC IP 白名单。

将此获取到的 token 附加到 X-Auth-Token 继续请求,如下 性能数据接口,会返回 403 forbidden.
curl -k -X GET "https://172.27.222.5:63234/oc/v2.3/monitors/server/realtime?object_ids=["-1233310163"]&kpi_groups={"virtrualkpi":["cpuusage","memusage","diskioin"],"diskstate":["diskusage"]}kpi_groups" --cert cert/cert.pem --key cert/key.pem -H "Content-Type: application/json;charset=UTF-8" -H "Accept: application/json;charset=UTF-8" -H "X-Auth-Token: A7F1651A696E107A98249354D31AB9F09CBEE9882B207322"

{"forbidden ":{"code":"403","message":"!403!","details":""}}
此处严格按照 OC 的 北向接口文档构造的请求,其中 object_ids 取的是 北向接口文档 5.3 节 获取指定类型对象资源列表中返回的某虚拟机的 id,kpi_groups 也是按照 “ManageOne OperationCenter 3.0 北向性能指标参考 01.xlsx”中给的构造并做 urlencode.

不清楚是哪方面的问题,有知道的麻烦回答下,非常感谢~

  • x
  • 常规:

点评 回复

跳转到指定楼层
user_2968429
user_2968429   发表于 2018-3-13 09:31:23 已赞(0) 赞(0)

论坛怎么把 urlencode 的 params 直接给“翻译”过来了?
  • x
  • 常规:

点评 回复

user_2968429
user_2968429   发表于 2018-3-13 09:38:06 已赞(0) 赞(0)

没有报 400 bad request 说明请求体本身是没有语法错误的,openapi 用户目前给的是 维护组,之后调试怀疑是用户权限的问题,新建了 管理组 的 OpenAPI 用户,同样格式请求仍然返回 403.
  • x
  • 常规:

点评 回复

nephelo
nephelo  新锐 发表于 2018-3-14 09:54:39 已赞(0) 赞(0)

curl -k -X GET "https://172.27.222.5:63234/oc/v2.3/monitors/server/realtime?object_ids=["-1233310163"]&kpi_groups={"virtrualkpi":["cpuusage","memusage","diskioin"],"diskstate":["diskusage"]}kpi_groups" --cert cert/cert.pem --key cert/key.pem -H "Content-Type: application/json;charset=UTF-8" -H "Accept: application/json;charset=UTF-8" -H "X-Auth-Token: A7F1651A696E107A98249354D31AB9F09CBEE9882B207322"

 

你添加的指标最后有这个 kpi_groups 吗?这个参数多余了。

  • x
  • 常规:

点评 回复

user_2968429
user_2968429   发表于 2018-3-14 10:28:00 已赞(0) 赞(0)

nephelo 发表于 2018-03-14 09:54 curl -k -X GET "https://172.27.222.5:63234/oc/v2.3/monitors/server/realtime?object_ids=["-1233310163 ...
我看北向接口文档也觉得奇怪,文档是这样写的;最开始我按自己理解没有添加最后的 kpi_groups 过不了才按文档描述添加这个的,按这样写仍然过不了才过来求助的。

参考 OC 3.0 Api 文档 7.1.7 节

GET /oc/v2.3/monitors/server/realtime?object_ids=["7106864"]&kpi_groups={"virtrualkpi":["cpuusage","memusage","diskioin"],"diskstate":["diskusage"]}
kpi_groups HTTP/1.1
Host: 192.168.8.230:63234
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: application/json
Accept-Language: null
Accept-Encoding: gzip, deflate
X-Auth-Token: 1AD7241E4FA61A236142E9E1E8CDB1DCC85C9C3A
Content-Type: application/json;charset=UTF-8
Connection: keep-alive
  • x
  • 常规:

点评 回复

nWX363913
nWX363913   发表于 2018-6-5 11:08:41 已赞(0) 赞(0)

获取性能数据这块需要管理员权限才可以,就是说你在获取token时的用户要有管理员权限,这块才可以调通
  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录