Graylog将其消息保存在OpenSearch或Elasticsearch中,因此您有两种途径。使用经过访问令牌认证的Graylog REST API,或者直接使用脚本查询后端索引(默认情况下为graylog_*)。无论哪种方式,您都会得到JSON。原始行在message中,对于某些输入则在full_message中。Graylog网页界面导出的格式不是LogTotal今天能读取的格式。
Graylog是一个流行的开放日志管理平台,通常是团队首次设置的中央日志系统。Prime Core为Graylog提供了23,274个检测规则,映射到671个MITRE ATT&CK技术。以下是如何导出消息、清理消息,并在LogTotal中免费调查它们的方法。
在您开始之前
一个访问令牌。 在Graylog中,打开您的用户设置并创建一个令牌。使用API时,您通过<token>:token认证:将令牌用作用户名,单词’token’用作密码。
后端访问权限,如果您直接访问。 Graylog后面的OpenSearch或Elasticsearch集群通常无法从外部访问。请运行它的人为您设置一个只读帐户。
流和索引集。 Graylog将消息路由到流中,并且流映射到具有自己前缀和保留的索引集。了解哪个索引集保存着您的数据。
选项1:Graylog REST API
GL="https://graylog.example.com"
curl -sS -u "$GL_TOKEN:token" -H 'Accept: application/json' -G "$GL/api/search/universal/absolute"
--data-urlencode 'query=source:web-03'
--data-urlencode 'from=2026-10-19T00:00:00.000Z'
--data-urlencode 'to=2026-10-20T00:00:00.000Z'
--data-urlencode 'limit=10000'
| jq -c '.messages[].message' > graylog_web03_1019.jsonl
较新的Graylog版本更偏好使用Views搜索API。对于大规模导出,选项2更为可靠。
选项2:查询后端索引
这与我们指向Graylog索引的方式相同:
import json, os
from opensearchpy import OpenSearch, helpers
client = OpenSearch("https://opensearch.example.com:9200",
http_auth=("reader", os.environ["OS_PASSWORD"]), verify_certs=True)
query = {"query": {"bool": {"filter": [
{"term": {"source": "web-03"}},
{"range": {"timestamp": {"gte": "2026-10-19 00:00:00.000", "lt": "2026-10-20 00:00:00.000"}}},
]}}}
with open("graylog_web03_1019.jsonl", "w") as out:
for hit in helpers.scan(client, index="graylog_*", query=query, size=1000):
out.write(json.dumps(hit["_source"]) + "n")
Graylog将时间戳存储为UTC格式的yyyy-MM-dd HH:mm:ss.SSS,这就是范围使用该格式的原因。对于后端运行Elasticsearch,使用elasticsearch客户端以同样方式。
上传、清理并在LogTotal中审核
- 上传。 打开 logtotal.com 并将文件放入。
- 清理。
- 审核。
当出错时
| 症状 | 可能的原因 | Fix |
|---|---|---|
| 401错误来自API | 令牌认证写错 | 使用<token>:token |
| 搜索端点404错误 | 端点在您的版本中不可用 | 使用选项2或Views API |
| 后端查询没有返回内容 | 索引前缀错误,或时间戳格式错误 | 检查索引集;使用yyyy-MM-dd HH:mm:ss.SSS格式 |
| 后端无法访问 | 集群未暴露 | 请求只读访问或使用API |
FAQ
Message还是full_message?
Message总是存在。full_message在某些输入中如GELF出现,并可以包含更多细节。若两者都有请导出两者。
这适用于Graylog Cloud吗?
API途径适用。托管计划通常无法直接访问后端。