内容纲要
概要描述
第三方软件可以调用API来对 Transwarp Manager管理的服务进行监控和告警,高版本使用aquila之后,原来的manager的告警查询接口已经不存在。如果想要类似功能,需要找到aquila-server所在节点以及端口(默认 8666),然后调用下文中的api实现类似功能。
如果是未使用aquila的版本,参考该文档:如何通过rest api的方式获取manager警报信息
如果是高版本的aquila如Manager 8.X、9.X集群可能api格式会有变化该文档不可用
详细说明
API URL
POST /api/alert/query
Body Example:
{
"filters": [
{
"keyName": "clusterId",
"values": [
1
]
}
], /*过滤条件*/
"from": "2019-03-12T06:30:05.998+08:00", /*起始时间*/
"severity": [
"WARNING"
], /*告警级别*/
"status": [
"ACTIVE" /*告警状态*/
],
"to": "2019-03-12T07:30:05.998+08:00" /*截止时间*/
}
使用说明
在使用上述api之前,需要先获取 Manager 的登录信息 token.txt。
-
通过命令登录 Manager 拿到 token.txt
curl -c token.txt --data '{"userName": "<用户名>", "userPassword": "<密码>"}' http://
:8180/api/users/login 下面命令是用 admin 账号,密码为 admin,登录地址为 172.22.38.23 的manager;
curl -c token.txt --data '{"userName": "admin", "userPassword": "admin"}' http://172.22.38.23:8180/api/users/login
-
用这个 token.txt访问 Aquila url
本案例中aquila url为: http://172.22.38.21:8666 ;curl -b token.txt -c token.txt -v "http://172.22.38.21:8666"
返回信息如下图所示,我们只需要关注
Location
部分;
Location: http://172.22.38.23:8180/#/ssologin?service=10%40ze1&loginapi=http%3A%2F%2F172.22.38.21%3A8666%2Fapi%2Flogin%2Fticket&callback=http%3A%2F%2F172.22.38.21%3A8666%2F
-
将上面 Location 信息中的
service
拷贝出来service=10%40ze1
-
带上这个 service,调用 Manager的
/api/users/getTicket
接口curl -b token.txt http://172.22.38.23:8180/api/users/getTicket?service=10%40ze1
上述命令会返回一个ticket, 如截图所示:
{ "ticket": "ST-261135217089-UwKP2Uq7HeP2WKGVPt8p-" }
-
再次调用 Aquila 的 /api/login/ticket 接口, 带上这个
ticket
curl -L -b token.txt -c token.txt "http://172.22.38.21:8666/api/login/ticket?callback=http://172.22.38.21:8666&ticket=ST-261135217089-UwKP2Uq7HeP2WKGVPt8p-"
此时界面上会返回一堆 HTML 信息,表示已经成功登录 Aquila,如下图所示:
-
调用真正的 alert 查询接口
curl -H 'Content-Type:application/json' -v http://172.22.38.21:8666/api/alert/query -b token.txt --data '{"filters":[{"keyName":"clusterId","values":[]},{"keyName":"nodeId","values":[]},{"keyName":"serviceId","values":[]}],"severity":[],"from":"2021-09-11T14:16:07.641+08:00","to":"2021-09-13T15:16:07.646+08:00"}'
如下图所示,已经获取到告警信息: