如何从Microsoft Sentinel导出日志

如何从Microsoft Sentinel导出日志

SOC Prime Team
SOC Prime Team linkedin icon 关注

Sentinel 数据位于日志分析工作区中,因此导出是一个 KQL 查询,并附带一种将结果保存为 JSON 的方法。最简单的方法是使用 Azure CLI:az monitor log-analytics query 每行返回一个 JSON 对象。门户的导出按钮生成一个电子表格样式的文件,LogTotal 今天还不能读取,所以请使用 CLI 或 PowerShell 进行上传。

Sentinel 从各处收集数据:Windows、Linux、Entra ID、Microsoft 365、防火墙、云。这使得它成为提取调查片段的自然场所。Prime Core 拥有 23,700 条 Microsoft Sentinel 检测规则,与 674 个 MITRE ATT&CK 技术相映射。下面是如何获取数据、清理数据并在 LogTotal 中免费调查数据的方法。

免费开始

开始之前

权限。 工作区上的日志分析读者或 Microsoft Sentinel 读者就足够了。

工作区 ID。 CLI 需要的是工作区的 GUID,而不是其名称,该 GUID 可从工作区的概述页面获得。

了解你的表。 最重要的表:SecurityEvent(Windows)、Syslog(Linux)、SigninLogs 和 AuditLogs(Entra ID)、OfficeActivity(Microsoft 365)、CommonSecurityLog(来自防火墙和其他设备的 CEF)、AzureActivity 以及任何自定义的 _CL 表。

保留层。 可以直接查询交互保留中的数据。而已进入长期保留的数据不能:你需要先进行搜索作业或恢复。一些表计划(基础计划、辅助计划)也限制 KQL 的功能。

写 KQL 的位置。 取决于你的租户的设置,可能是 Microsoft Defender 门户中的高级搜捕 或 Azure 门户中的日志。 查询是相同的。

命令遵循 Microsoft 的文档,检查于 2026 年 10 月。

步骤 1:编写查询

保持事件记录。如果你想返回日志,请不要汇总。对于 Linux SSH 活动:

Syslog
| where TimeGenerated between (datetime(2026-10-19) .. datetime(2026-10-20))
| where Computer == "web-03"
| where ProcessName in ("sshd", "sshd-session")

对于 Windows 登陆和域控制器上的账户更改:

SecurityEvent
| where TimeGenerated between (datetime(2026-10-19) .. datetime(2026-10-20))
| where Computer startswith "DC-01"

首先在门户中运行并检查行数。

步骤 2:导出为 JSON

Azure CLI:

az login
az monitor log-analytics query
  --workspace <workspace-guid>
  --analytics-query "Syslog | where TimeGenerated between (datetime(2026-10-19) .. datetime(2026-10-20)) | where Computer == 'web-03'"
  --output json > sentinel_web03_1019.json

jq -c '.[]' sentinel_web03_1019.json > sentinel_web03_1019.jsonl

第一次运行可能会提示安装 log-analytics 扩展。选择“是”。

PowerShell (Az 模块):

Connect-AzAccount
$kql = "SecurityEvent | where TimeGenerated between (datetime(2026-10-19) .. datetime(2026-10-20)) | where Computer startswith 'DC-01'"
(Invoke-AzOperationalInsightsQuery -WorkspaceId '<workspace-guid>' -Query $kql).Results |
  ForEach-Object { $_ | ConvertTo-Json -Compress } | Out-File sentinel_dc01_1019.jsonl -Encoding utf8

查询结果在行数和大小上是有限制的。对于繁忙的表,将时间窗口拆分成小时,并对每个片段运行一次导出。

步骤 3:在 LogTotal 中上传、清理和检查

  1. 上传。 打开 logtotal.com 并放入 .jsonl 文件。
  2. 清理。 
  3. 检查。 

当出现问题时

症状可能的原因Fix
CLI 询问关于扩展的问题未安装 log-analytics接受,或使用 az extension add –name log-analytics
未找到工作区使用了名称而不是 GUID使用其概述页面中的工作区 ID
行数少于预期结果限制拆分时间窗口
旧数据没有返回任何内容它处于长期保留中先运行一个搜索作业或恢复
禁止缺少工作区上的阅读者角色请求日志分析阅读者角色

FAQ

我能获得原始的 Windows 事件吗?

您将获得解析后的 SecurityEvent 行,其中原始事件数据在 EventData 列中。不是 EVTX 文件。对于 EVTX,从主机导出。

Sentinel 中的 Defender XDR 数据呢?

如果您使用统一的 Defender 门户,先进的搜捕可以同时查询 Defender 和 Sentinel 表。

加入 SOC Prime 的 Detection as Code 平台 以提高对与您的业务最相关的威胁的可见性。为了帮助您开始并带来即时价值,现在与 SOC Prime 专家预约会议。