使用 LogPoint 的搜索 API,该 API 对同一端点 /getsearchlogs 进行两次调用。第一次调用发送您的查询、时间范围和存储库,并返回一个 search_id。第二次调用发送该 search_id,并在搜索完成后返回行。两次调用都是使用您的用户名和密钥认证的表单编码 POST。
LogPoint 是欧洲流行的 SIEM,其搜索 API 是获取其数据定义片段的最简便方法。Prime Core 提供了 19,598 个 LogPoint 检测规则,对应 664 种 MITRE ATT&CK 技术。下面是如何免费获取日志、清理并在 LogTotal 中调查它们的方法。
开始之前
您的密钥。 每个 API 调用都包含您的 LogPoint 用户名和密钥。您可以在用户配置文件的访问密钥设置中找到该密钥。对待它如同对待密码。
存储库名称。 搜索是在存储库上运行的,格式为 <ip>:5504/<repo>,例如 127.0.0.1:5504/_logpoint。相同的端点系列会为您列出它们(getalloweddata,类型为 logpoint_repos)。
时间范围。 time_range 可以是“过去 24 小时”的预设值,或一对纪元秒。对于事件工作,使用纪元秒对;date -d ‘2026-10-19T00:00:00Z’ +%s 计算它。
使用搜索 API 导出
LP="https://logpoint.example.com"
# 1. 开始搜索 (2026-10-19 00:00 UTC 到 2026-10-20 00:00 UTC)
SID=$(curl -sS "$LP/getsearchlogs"
--data-urlencode "username=$LP_USER" --data-urlencode "secret_key=$LP_KEY"
--data-urlencode 'requestData={"query": "device_ip=10.0.0.5", "time_range": [1792368000, 1792454400], "limit": 10000, "repos": ["127.0.0.1:5504/_logpoint"]}'
| jq -r '.search_id')
# 2. 获取结果直到搜索完成
while :; do
R=$(curl -sS "$LP/getsearchlogs"
--data-urlencode "username=$LP_USER" --data-urlencode "secret_key=$LP_KEY"
--data-urlencode "requestData={"search_id": "$SID"}")
[ "$(echo "$R" | jq -r '.final')" = "true" ] && break
sleep 3
done
echo "$R" | jq -c '.rows[]' > logpoint_1019.jsonl
echo "$R" | jq -r '.rows[].msg // empty' > logpoint_1019_raw.log
保持查询为过滤器。带有 | chart 或其他聚合的查询返回的是聚合行,而不是日志。原始日志通常位于 msg 字段。
在 LogTotal 中上传、清理和审核
- 上传。 打开 logtotal.com 并拖放文件。
- 清理。
- 审核。
在真实数据上的样子。
出错时情况
| 症状 | 可能原因 | Fix |
|---|---|---|
| 认证错误 | 用户名或密钥错误 | 从您的个人资料中重新复制密钥 |
| 结果为空 | 存储库字符串错误,或时间范围以毫秒为单位 | 通过 getalloweddata 列出存储库;使用纪元秒 |
| 聚合行而不是日志 | 查询包含 chart 或类似内容 | 使用简单过滤器 |
| 结果被截断 | 达到限制 | 提高它,或拆分窗口 |
| 请求被拒绝 | 没有作为表单数据发送 | 以 application/x-www-form-urlencoded 发送 |
FAQ
通过 LogPoint Director 是否可以做到这一点?
可以。Director 的 API 对于托管 LogPoints 有自己的搜索调用。若管理多个实例,请使用它。
UI 导出有效吗?
对于小且快速的导出,是的。对于任何想要重复或保持精确的操作,使用 API 可以提供更多控制。