同步告警 API
最后更新于:
该API支持通过EventLog Analyzer检索告警数据。
当您使用同步告警方法执行 API 调用时,您的查询将被发送到 EventLog Analyzer 服务器,该服务器将在返回结果前获取所有查询结果。整个过程所需时间取决于获取的搜索结果数量。
执行同步告警查询的步骤如下:
- 创建包含相关元数据的告警请求。
- 服务器在请求线程上执行请求并返回结果。
- 当需显示的记录数超出预设显示量时,服务器将返回游标标识。
- 可通过下一个游标持续请求获取后续结果集。此操作需持续进行直至所有告警命中结果被处理完毕且服务器不再返回游标。
- EventLog Analyzer的游标若未被使用,将保持活动状态五分钟。
请求 URL
请求头
| 标头名称 | 值 | 必填 | 描述 |
|---|---|---|---|
| 授权 | 持有人 {{AuthToken}} | 是 | 从API设置页面生成的AuthToken。
例如: |
请求参数
请求需以 JSON 格式发送在请求主体中,并包含以下键值参数:
| 参数名称 | 默认值 | 必填 | 类型 | 描述 |
|---|---|---|---|---|
| 查询 | * | 否 | 字符串 | 列表起始值 |
| alert_profiles | 全部 | 否 | JSONArray | 告警配置文件列表 |
| 严重性 | 全部 | 否 | JSONArray | 严重性列表 |
| 状态 | 全部 | 否 | JSONArray | 状态列表 |
| 来自 | 当前时间 - 24 小时 | 否 | 长 | Unix 毫秒制搜索起始时间 |
| 至 | 当前时间 | 否 | 长 | 搜索结束时间(Unix毫秒制) |
| 光标 | - | 否 | 字符串 | 来自下一个查询的游标 |
- 当光标通过时,其他参数不再需要。
- 查询字符串中的引号(即 " ")需进行转义。若在EventLog Analyzer搜索页面的查询为REMOTE_INTERFACE = "switch 1",则Rest Api的查询参数应写为"REMOTE_INTERFACE = \"switch 1\""
响应
响应将是一个 JSON 对象,包含以下键值对
| 参数名称 | 描述 |
|---|---|
| hits | 包含请求告警命中结果的JSON对象
包含以下字段 |
使用cURL的示例用法
i) 带查询条件的搜索请求
请求示例
curl --location --request POST 'http://localhost:8095/RestAPI/v1/alerts' \ -H "Accept: application/json" -H "Authorization: Bearer mdrkoda0odmtmznloc00ndziltg0mgutmwzkztljmjvmzwmx " --data-raw '{ "query": "EVENTID = 16384 AND USERNAME = mhtoc", "alert_profiles": [1, 2, 601], "severity": ["CRITICAL"], "status": ["OPEN"], "from": 1643480792000, "to": 1643480479500 }'
示例响应:
{ "cursor": "DnF1ZXJ5VGhlbkZldGNoFwAAAAAAAARoFlloajVvRlN5UlQ2RGVTWlhPS2V1WHcAA", "hits": { "命中记录": [{ "通用严重性": "信息", "是否丢弃": true, "主机名": "lix", "应用ID": 2, "FORMATID": 302, "RAWLOG": "roy.sulivan /event/emberAPI/ELANotificationActions \"https://eventlog.loin64; x64; rv:71.0) Gecko/20100101 Firefox/71.0\"", "TIME": "1643531422443", "IMPORTED_TIME": 1643531420365, "HOSTID": 601, "IP地址2": "10.128.156.152", "告警配置文件": "告警配置文件1" }, { "COMMON_SEVERITY": "INFORMATION", "IS_THROWAWAY": true, "HOSTNAME": "lix", "APPID": 2, "格式ID": 302, "原始日志": "roy.sulivan /event/emberAPI/ELANotificationActions \"https://eventlog.l 15 142 200 \"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0\"", "TIME": "1643531422446", "IPAddress1": "10.128.156.152", "HOSTID": 601, "IPAddress2": "10.128.156.152", "告警配置文件": "告警配置文件 1" }], "当前页面命中数": 3 } }
ii) 带游标的搜索请求
请求示例
curl --location --request POST 'http://localhost:8095/RestAPI/v1/alerts' \ -H "Accept: application/json" -H "Authorization: Bearer mdrkoda0odmtmznloc00ndziltg0mgutmwzkztljmjvmzwmx " --data-raw '{ "cursor": "DnF1ZXJ5VGhlbkZldGNoFwAAAAAAAARoFlloajVvRlN5UlQ2RGVTWlhPS2V1WHcAA" }'
示例响应:
{ "hits": { "hits": [{ "COMMON_SEVERITY": "INFORMATION", "IS_THROWAWAY": true, "HOSTNAME": "lix", "APPID": 2, "FORMATID": 302, "RAWLOG": "roy.sulivan /event/emberAPI/ELANotificationActions \"https://eventlog.loin64; x64; rv:71.0) Gecko/20100101 Firefox/71.0\"", "TIME": "1643531422443", "IMPORTED_TIME": 1643531420365, "HOSTID": 601, "IP地址2": "10.128.156.152", "告警配置文件": "告警配置文件1" }, { "COMMON_SEVERITY": "INFORMATION", "IS_THROWAWAY": true, "HOSTNAME": "lix", "APPID": 2, "格式ID": 302, "原始日志": "roy.sulivan /event/emberAPI/ELANotificationActions \"https://eventlog.l 15 142 200 \"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0\"", "TIME": "1643531422446", "IPAddress1": "10.128.156.152", "HOSTID": 601, "IPAddress2": "10.128.156.152", "告警配置文件": "告警配置文件 1" }], "当前页面命中数": 3 } }
iii) 无效搜索查询
示例请求
curl --location --request POST 'http://localhost:8095/RestAPI/v1/alerts' \ -H "Accept: application/json" -H "Authorization: Bearer mdrkoda0odmtmznloc00ndziltg0mgutmwzkztljmjvmzwmx " --data-raw '{ "query": "EVENTID := 16384 AND USERNAME <> mhtoc", "alert_profiles": [1, 2, 601], "severity": ["CRITICAL"], "status": ["OPEN"], "from": 1643480792000, "to": 1643480479500 }'
示例响应:
{
"ERROR": "SR007",
"ERROR_DESCRIPTION": "查询无效",
"ERRORS" : {
"context": "查询构建失败",
"cause": {
"reason": "在第1行第159列遇到 \" \":\" \": \"\"。r\n预期应为以下之一:\r\n
使用Postman(第三方工具)的示例用法
i) 带查询的搜索请求
ii) 带光标的搜索请求
iii) 无效查询