导出日志以进行集中分析模拟
在实际场景中,你通常会将来自各个机器的日志导出到集中的日志服务器(如 SIEM)进行长期存储和关联分析。在本步骤中,我们将通过将最近的 SSH 日志导出到文件来模拟此过程。
journalctl 可以以多种格式输出日志。json-pretty 格式特别有用,因为它既易于人类阅读,也易于其他工具解析。
让我们将过去 10 分钟的所有 SSH 日志导出到当前目录 (~/project) 下一个名为 ssh_logs.json 的文件中。
sudo journalctl -u ssh --since "10 minutes ago" -o json-pretty > ~/project/ssh_logs.json
现在,验证文件是否已创建:
ls -l ~/project
你应该会在文件列表中看到 ssh_logs.json。
total 4
-rw-r--r-- 1 labex labex 1234 Oct 31 09:20 ssh_logs.json
最后,让我们查看导出的日志文件的内容。
cat ~/project/ssh_logs.json
输出将是一个结构化的 JSON 数组,其中每个日志条目都是一个对象。这种格式非常适合导入到其他分析平台。
[
{
"__CURSOR" : "s=...",
"__REALTIME_TIMESTAMP" : "...",
"__MONOTONIC_TIMESTAMP" : "...",
"_BOOT_ID" : "...",
"_TRANSPORT" : "syslog",
"PRIORITY" : "6",
"SYSLOG_FACILITY" : "4",
"SYSLOG_IDENTIFIER" : "sshd",
"MESSAGE" : "Failed password for invalid user non_existent_user from 127.0.0.1 port 48492 ssh2",
"_PID" : "1234",
...
}
]
你已成功模拟了为集中分析准备日志的过程。