同步搜索API该API允许您对EventLog Analyzer执行搜索。 使用同步搜索方法执行搜索时,您的查询将被发送到EventLog Analyzer服务器,在返回结果之前,服务器会获取所有结果。该过程所需的时间取决于所获得的搜索结果数量。 以下是执行同步搜索查询所涉及的步骤:
- 使用一组相关的元数据创建搜索请求。
- 服务器在请求线程上执行请求并以结果响应。
- 当存在更多结果时,服务器会使用光标(cursor)响应。
- 您可以继续使用下一个光标请求下一个结果集。这需要一直进行,直到消耗所有搜索命中并且服务器没有返回光标为止。
- EventLog Analyzer的光标在未使用时保持有效状态五分钟。
请求URL请求头
Header名称 |
值 |
必需的 |
描述 |
授权 |
Bearer {{AuthToken}} |
是 |
从API设置页面生成的AuthToken。
例如: Bearer mdrkoda0odmtmznloc00ndziltg0mgutmwzkztljmjvmzwmx
|
请求参数
请求需要使用JSON格式发送到请求体中,应包含以下键/值参数:
参数名 |
默认值 |
必填 |
Type |
描述 |
query |
* |
否 |
String |
要搜索的起始值 |
hosts |
all |
否 |
JSONArray |
要搜索的主机列表 |
groups |
all |
否 |
JSONArray |
要搜索的设备组列表 |
from |
当前时间-24小时 |
否 |
Long |
搜索的开始时间(Unix毫秒) |
to |
当前时间 |
否 |
Long |
搜索的结束时间(Unix毫秒) |
cursor |
- |
否 |
String |
下一个查询的游标 |
注意:
- 传递游标时,其他参数不需要。
- 查询字符串中的引号(" ")需要进行转义。例如,如果在EventLog Analyzer的搜索页面中查询为REMOTE_INTERFACE =“switch 1”,则在Rest Api中查询参数应编写为“REMOTE_INTERFACE = \”switch 1\“”
响应:
响应将是一个JSON对象,其中包含以下键/值对:
参数名 |
描述 |
hits |
包含请求的搜索命中结果的JSON对象
包含以下字段 hits: 搜索命中的列表 hits_count_in_current_page: 当前搜索响应中的命中数
|
cURL示例用法
i) 带查询的搜索请求
示例请求
复制到剪贴板
curl --location --request POST 'http://localhost:8400/RestAPI/v1/search' \
-H "Accept: application/json"
-H "Authorization: Bearer mdrkoda0odmtmznloc00ndziltg0mgutmwzkztljmjvmzwmx "
--data-raw '{
"query": "EVENTID = 16384 AND USERNAME = mhtoc",
"hosts": [1, 2, 601],
"groups": [3],
"from": 1643480792000,
"to": 1643480479500
}'
示例响应:
复制到剪贴板
{
"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,
"IPAddress2": "10.128.156.152"
},
{
"COMMON_SEVERITY": "INFORMATION",
"IS_THROWAWAY": true,
"HOSTNAME": "lix",
"APPID": 2,
"FORMATID": 302,
"RAWLOG": "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"
}],
"hits_count_in_current_page": 3
}
}
ii)带游标的搜索请求
示例请求
复制到剪贴板
curl --location --request POST 'http://localhost:8400/RestAPI/v1/search' \
-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,
"IPAddress2": "10.128.156.152"
},
{
"COMMON_SEVERITY": "INFORMATION",
"IS_THROWAWAY": true,
"HOSTNAME": "lix",
"APPID": 2,
"FORMATID": 302,
"RAWLOG": "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"
}],
"hits_count_in_current_page": 3
}
}
iii) 搜索查询无效
示例请求
复制到剪贴板
curl --location --request POST 'http://localhost:8400/RestAPI/v1/search' \
-H "Accept: application/json"
-H "Authorization: Bearer mdrkoda0odmtmznloc00ndziltg0mgutmwzkztljmjvmzwmx "
--data-raw '{
"query": "EVENTID := 16384 AND USERNAME <> mhtoc",
"hosts": [1, 2, 601],
"groups": [3],
"from": 1643480792000,
"to": 1643480479500
}'
示例响应
复制到剪贴板
{
"ERROR": "SR007",
"ERROR_DESCRIPTION": "查询无效",
"ERRORS" : {
"context": "构建查询失败",
"cause": {
"reason": "在第1行第159列遇到 \" \":\" \": \"\"。\r\n期望之一:\r\n ...\r\n \"+\" ...\r\n \"-\" ...\r\n ...\r\n \"(\" ...\r\n \"*\" ...\r\n ...\r\n ...\r\n ...\r\n ...\r\n ...\r\n \"[\" ...\r\n \"{\" ...\r\n ...\r\n ...\r\n ",
"type": "ParseException"
}
}
}
使用Postman(第三方工具)的示例用法
i)使用查询的搜索请求
ii)使用游标的搜索请求
iii)无效的查询
|