Cribl Search - 使用API进行搜索

作者:API传播员 · 2025-10-19 · 阅读时间:4分钟
本文详细介绍了如何通过Cribl Cloud的API进行搜索操作,包括生成客户端ID和密码、登录Cribl Cloud、创建搜索任务、检查任务状态以及获取搜索结果的完整流程。通过具体的curl请求示例,指导用户如何高效利用Cribl的强大搜索功能满足数据分析需求。

创建凭据

在使用 Cribl Cloud 的 API 时,登录过程与自托管环境略有不同。您需要生成客户端 ID 和客户端密码来完成认证。

要生成这些凭据,您可以通过 Cribl Cloud 控制台的“组织”页面完成操作。登录后,进入“组织”选项卡下的“API 凭据”部分,然后点击 添加具有所需权限的凭据 按钮。

有关更多详细信息,请参考 Cribl 官方文档。


登录 Cribl Cloud

Cribl Cloud 的登录 URL 是统一的,格式为:

https://login.cribl.cloud/oauth/token

请求的正文需要采用 URL 格式编码,并包含以下字段和值。

以下是一个示例 [curl](https://www.explinks.com/wiki/what-are-curl-url-uri/) 请求(注意:示例中使用的凭据是虚构的,仅供参考):

curl -X POST https://login.cribl.cloud/oauth/token 
-H "Content-Type: application/x-www-form-urlencoded" 
-d "grant_type=client_credentials&client_id=your_client_id&client_secret=your_client_secret"

成功的响应将类似于以下内容:

{
  "access_token": "your_access_token",
  "token_type": "Bearer",
  "expires_in": 3600
}

在后续的 API 调用中,您需要使用响应中的 access_token 进行身份验证。将其作为请求头中的 Authorization 字段,格式为:

Authorization: Bearer <>

创建搜索任务

在 Cribl Cloud 中,您需要使用两个独立的端点来创建搜索任务并获取结果。第一个端点用于创建搜索任务,其格式如下:

https://main-incredible-swift-abc13ts.cribl.cloud/api/v1/m/default_search/search/jobs

发送到此端点的请求正文需要是一个 JSON 对象。需要注意的是,查询语句必须以 cribl 运算符开头。

以下是一个示例 curl 请求:

curl -X POST https://main-incredible-swift-abc13ts.cribl.cloud/api/v1/m/default_search/search/jobs 
-H "Authorization: Bearer <>" 
-H "Content-Type: application/json" 
-d '{
  "query": "cribl dataset="cribl_search_sample" | limit 1000",
  "start": "-1h",
  "end": "now"
}'

成功的响应将包含有关创建的搜索任务的详细信息,包括获取结果所需的任务 ID。


等待搜索完成

在获取搜索结果之前,您需要确认搜索任务已完成。可以通过向状态端点发送 GET 请求来检查任务状态。

以下是一个示例 curl 请求:

curl -X GET https://main-incredible-swift-abc13ts.cribl.cloud/api/v1/m/default_search/search/jobs/ 
-H "Authorization: Bearer <>"

响应将返回一个包含 items 数组的 JSON 对象,其中包含搜索任务的状态信息。当状态为 completed 时,表示搜索已完成。


获取搜索结果

一旦搜索任务状态为 completed,您可以通过将 offsetlimit 参数作为查询字符串传递,来获取以换行符分隔的 JSON 格式结果。

以下是一个示例 curl 请求:

curl -X GET https://main-incredible-swift-abc13ts.cribl.cloud/api/v1/m/default_search/search/jobs//results 
-H "Authorization: Bearer <>" 
-G --data-urlencode "offset=0" --data-urlencode "limit=100"

示例响应如下:

{
  "isFinished": true,
  "limit": 100,
  "offset": 0,
  "persistedEventCount": 1000,
  "totalEventCount": 1000,
  "job": {
    "id": "1732566655829.Z6s9KD",
    "query": "cribl dataset="cribl_search_sample" | limit 1000",
    "start": "-1h",
    "end": "now",
    "createTime": 17325666551887,
    "startTime": 1732566656017,
    "completeTime": 1732566670600,
    "status": "completed"
  }
}

通过调整 offsetlimit 参数,您可以分批获取整个结果集。请注意,返回的第一个项目通常是状态消息,包含有关搜索的元信息。


总结

本文介绍了如何通过 Cribl Cloud 的 API 创建搜索任务并获取结果的完整流程,包括生成凭据、登录、创建搜索、检查任务状态以及获取结果的步骤。通过这些操作,您可以高效地利用 Cribl 的强大搜索功能来满足数据分析需求。

如需更详细的技术信息,请参考 Cribl 官方文档。

原文链接: https://cribl.io/blog/cribl-search-searching-using-the-api/