# 前端接口 `POST /api/portal/auth/login` 校验用户登录信息的接口,is_ldap=0表示不使用LDAP账号验证,is_ldap=1表示使用LDAP账号验证 ``` { "username": "", "password": "", "is_ldap": 0 } ``` --- `GET /api/portal/auth/logout` 退出当前账号,如果请求成功,前端需要跳转到登录页面 --- `GET /api/portal/self/profile` 获取个人信息,可以用此接口校验用户是否登录了 --- `PUT /api/portal/self/profile` 更新个人信息 ``` { "dispname": "", "phone": "", "email": "", "im": "" } ``` --- `PUT /api/portal/self/password` 更新个人密码,新密码输入两次做校验,在前端完成 ``` { "oldpass": "", "newpass": "" } ``` --- `GET /api/portal/user` 获取用户列表,支持搜索,搜索条件参数是query,每页显示条数是limit,页码是p,如果当前用户是root,则展示相关操作按钮,如果不是,则所有按钮不展示,只是查看 --- `POST /api/portal/user` root账号新增一个用户,is_root字段表示新增的这个用户是否是个root ``` { "username": "", "password": "", "dispname": "", "phone": "", "email": "", "im": "", "is_root": 0 } ``` --- `GET /api/portal/user/:id/profile` 获取某个人的信息 --- `PUT /api/portal/user/:id/profile` root账号修改某人的信息 ``` { "dispname": "", "phone": "", "email": "", "im": "", "is_root": 0 } ``` --- `PUT /api/portal/user/:id/password` root账号重置某人的密码,输入两次新密码保证一致的校验由前端来做 ``` { "password": "" } ``` --- `DELETE /api/portal/user/:id` root账号来删除某个用户 --- `GET /api/portal/team` 获取团队列表,支持搜索,搜索条件参数是query,每页显示条数是limit,页码是p --- `POST /api/portal/team` 创建团队,mgmt=0表示成员管理制,mgmt=1表示管理员管理制,admins是团队管理员的id列表,members是团队普通成员的id列表 ``` { "ident": "", "name": "", "mgmt: 0, "admins": [], "members": [] } ``` --- `PUT /api/portal/team/:id` 修改团队信息 ``` { "ident": "", "name": "", "mgmt: 0, "admins": [], "members": [] } ``` --- `DELETE /api/portal/team/:id` 删除团队 --- `GET /api/portal/endpoint` 获取endpoint列表,用于【服务树】-【对象列表】页面,该页展示endpoint列表,搜索条件参数是query,每页显示条数是limit,页码是p,如果要做批量筛选,则同时要指定用哪个字段(参数名字是field)来筛选,只支持ident和alias,批量筛选的内容是batch,即batch和field一般是同时出现的 --- `POST /api/portal/endpoint` 导入endpoint,要求传入列表,每一条是ident::alias拼接在一起 ``` { "endpoints": [] } ``` --- `PUT /api/portal/endpoint/:id` 修改一个endpoint的alias信息 ``` { "alias": "" } ``` --- `DELETE /api/portal/endpoint` 删除多个endpoint,ids参数放到request body里 ``` { "ids": [10000, 200000] } ``` --- `GET /api/portal/endpoints/bindings` 查询endpoint的绑定关系,QueryString:idents,逗号分隔多个 --- `GET /api/portal/endpoints/bynodeids` 根据节点id查询挂载了哪些endpoint,QueryString:ids,逗号分隔的多个节点id --- `GET /api/portal/tree` 查询整颗服务树 --- `GET /api/portal/tree/search` 根据节点路径(path)查询服务树子树 --- `POST /api/portal/node` 创建服务树节点,pid表示父节点id,leaf=0表示非叶子节点,leaf=1表示叶子节点,note是备注信息 ``` { "pid": 0, "name": "", "leaf": 0, "note": "" } ``` --- `PUT /api/portal/node/:id/name` 服务树节点改名 ``` { "name": "" } ``` --- `DELETE /api/portal/node/:id` 删除服务树节点 --- `GET /api/portal/node/:id/endpoint` 获取节点下面的endpoint列表,查询字符串使用query,每页展示多少条使用limit,页码使用p,如要批量筛选,一行一个,使用batch,同时必须指定field,即使用哪个字段进行批量筛选,有ident和alias可选 --- `POST /api/portal/node/:id/endpoint-bind` 绑定一批endpoint到当前节点,del_old=1表示同时删除老的挂载关系 ``` { "idents": [], "del_old": 0 } ``` --- `POST /api/portal/node/:id/endpoint-unbind` 解绑endpoint和节点的挂载关系 ``` { "idents": [] } ``` --- `GET /api/portal/nodes/search` 搜索节点,limit表示最多返回多少条,query是搜索条件 --- `GET /api/portal/nodes/leafids` 获取节点对应的叶子节点的id,参数是ids,逗号分隔的多个节点id --- `GET /api/portal/nodes/pids` 获取节点对应的父、祖节点的id,参数是ids,逗号分隔的多个节点id --- `GET /api/portal/nodes/byids` 查询节点的信息,参数是ids,逗号分隔的多个节点id,返回这多个节点的信息 --- `GET /api/portal/node/:id/maskconf` 获取报警屏蔽列表,因为已经是某个节点下的了,量比较少,后端不分页 --- `POST /api/portal/maskconf` 创建一个报警屏蔽策略 ``` { "nid": 0, "endpoints": [], "metric": "", "tags": "", "cause": "", "btime": 1563838361, "etime": 1563838461 } ``` --- `PUT /api/portal/maskconf/:id` 修改一个报警屏蔽策略 ``` { "endpoints": [], "metric": "", "tags": "", "cause": "", "btime": 1563838361, "etime": 1563838461 } ``` --- `DELETE /api/portal/maskconf/:id` 删除一个报警屏蔽策略 --- `GET /api/portal/node/:id/screen` 获取screen列表,因为已经是某个节点下的了,量比较少,后端不分页 --- `POST /api/portal/node/:id/screen` 创建screen ``` { "name": "" } ``` --- `PUT /api/portal/screen/:id` 修改screen,其中node_id顺带也可以修改,这样screen相当于直接挪动了挂载节点 ``` { "name": "", "node_id": 0 } ``` --- `DELETE /api/portal/screen/:id` 删除某个screen --- `GET /api/portal/screen/:id/subclass` 获取screen下面的子类,返回的subclass按照weight字段排序 --- `POST /api/portal/screen/:id/subclass` 创建subclass ``` { "name": "", "weight": 0 } ``` --- `PUT /api/portal/subclass` 批量修改subclass ``` [ { "id": 1, "name": "a", "weight": 1 }, { "id": 2, "name": "b", "weight": 0 } ] ``` --- `DELETE /api/portal/subclass/:id` 删除某个subclass --- `PUT /api/portal/subclasses/loc` 修改subclass的location,即所属的screen ``` [ { "id": 1, "screen_id": 1 }, { "id": 2, "screen_id": 1 } ] ``` --- `GET /api/portal/subclass/:id/chart` 获取chart列表,根据chart的weight排序,不分页 --- `POST /api/portal/subclass/:id/chart` 创建chart ``` { "configs": "", "weight": 0 } ``` --- `PUT /api/portal/chart/:id` 修改某个chart的信息 ``` { "subclass_id": 1, "configs": "" } ``` --- `DELETE /api/portal/chart/:id` 删除某个chart --- `PUT /api/portal/charts/weights` 修改chart的排序权重 ``` { "id": 1, "weight": 9 } ``` --- `GET /api/portal/tmpchart` 获取临时图,参数是QueryString:ids,逗号分隔的多个id --- `POST /api/portal/tmpchart` 创建一个临时图,返回生成的临时图的id列表 ``` [ { "configs": "" }, { "configs": "" } ] ``` --- `GET /api/portal/event/cur` 获取某个节点下的未恢复报警列表,QueryString: - 节点路径:nodepath - 开始时间:stime - 结束时间:etime - 每页条数:limit - 查询条件:query - 优先级:priorities,逗号分隔的多个 - 发送类型:sendtypes,逗号分隔的多个 --- `GET /api/portal/event/cur/:id` 获取当前某一个未恢复的报警 --- `DELETE /api/portal/event/cur/:id` 删除当前某一个未恢复的报警 --- `POST /api/portal/event/curs/claim` 认领某一些未恢复的告警,避免告警升级到老板那里,id和nodepath只能传入一个,不能同时传入,也不能一个都不传,业务上的语义是:要么认领某一个告警事件,要么认领某个节点下的所有告警事件 ``` { "id": 1, "nodepath": "" } ``` --- `GET /api/portal/event/his` 获取某个节点下的所有报警列表,QueryString: - 节点路径:nodepath - 开始时间:stime - 结束时间:etime - 每页条数:limit - 查询条件:query - 优先级:priorities,逗号分隔的多个 - 发送类型:sendtypes,逗号分隔的多个 - 事件类型:type --- `GET /api/portal/event/his/:id` 获取某个历史告警事件 --- `GET /api/portal/collect/list` 获取某个节点下面配置的采集策略,必传QueryString: nid表示节点id,后端不分页,返回全部 --- `GET /api/portal/collect` 获取单个采集配置的详情,QueryString:type和id,都必传,type是port、proc、log之一。 --- `POST /api/portal/collect` 创建一个采集策略 ``` { "type": "", "data": { # 端口、进程、日志配置不同,参阅model/collect.go } } ``` --- `PUT /api/portal/collect` 修改一个采集策略 ``` { "type": "", "data": { # 端口、进程、日志配置不同,参阅model/collect.go } } ``` --- `DELETE /api/portal/collect` 删除采集策略 ``` { "type": "", "ids": [] } ``` --- `POST /api/portal/collect/check` 校验用户输入的数据是否匹配正则,跟商业版本数据结构一致 --- `POST /api/portal/stra` 新增告警策略,跟商业版本数据结构一致 --- `PUT /api/portal/stra` 修改告警策略,跟商业版本数据结构一致 --- `DELETE /api/portal/stra` 删除告警策略,跟商业版本数据结构一致 --- `GET /api/portal/stra` 获取告警策略列表,跟商业版本数据结构一致 --- `GET /api/portal/stra/:id` 获取单个告警策略,跟商业版本数据结构一致