先装得下再谈留存
Windows 事件日志默认容量偏小,安全日志滚动很快,一旦覆盖就无法还原。留存要求的第一步不是采集,而是把日志本身装得下:按日均事件量估算需要多少天,再倒推每个日志的上限。高价值环境还应配合事件转发,在日志被覆盖前就送到集中平台。
基本信息
| 适用平台 | Windows Server / Windows 10、11 |
|---|---|
| 工具 | wevtutil、Get-WinEvent、事件查看器 |
| 配置入口 | 事件查看器 → 日志属性,或 GPO 下发 |
| 关键字段 | MaximumSizeInBytes、FileSize、Retention |
| 加固项 | 日志容量与保留策略 |
典型使用场景
- 容量核查:安全日志按当前增速能保留多少天
- 域控加固:认证与账号事件量大,容量要求更高
- 合规整改:日志留存期与容量必须匹配
- 覆盖模式选择:按需覆盖还是先覆盖最旧事件
- 排查源头:某个日志异常增长时定位刷日志的组件
查看与设置
查看与设置
wevtutil gl Security # 查看安全日志配置与容量
wevtutil sl Security /ms:1073741824 # 设上限为 1GB(单位是字节)
Get-WinEvent -ListLog Security | Select-Object LogName, MaximumSizeInBytes, FileSize, LogMode
Get-WinEvent -ListLog * | Sort-Object FileSize -Descending | Select-Object -First 5 LogName, FileSize, MaximumSizeInBytes
Get-WinEvent -LogName Security -MaxEvents 1 # 确认日志仍可正常读取字段逐项读法
| 字段 | 含义 | 正常与异常 |
|---|---|---|
| MaximumSizeInBytes | 日志容量上限(字节) | 默认值往往只有 20MB 左右,偏小 |
| FileSize | 当前占用 | 接近上限说明很快开始覆盖 |
| LogMode | 覆盖模式 | Circular 覆盖最旧;Retention 为手工清理 |
| LogName | 日志类别 | Security 与 PowerShell 等运营日志重点看 |
| LastWriteTime | 最近写入时间 | 长时间无写入说明审计可能被关停 |
日志满后默认覆盖最旧事件,容量不足等于证据链断裂:高价值主机必须配事件转发做第二份副本。
wevtutil 的 /ms 参数单位是字节,换算错误会得到一个几 MB 的上限,设置完回读一次确认。
容量规划要点
- 先统计日均事件量,再乘以留存天数,得到容量下限
- 安全日志容量单独评估:域控与普通服务器的量级差别很大
- Application 与 System 日志同样要定容量,不能只盯 Security
- 用 GPO 下发容量与保留策略,新装机器自动继承
- 配置事件转发后本地容量可适度收紧,但仍要满足本地排障需要
事件转发与本地容量是两件事:转发解决集中留存,本地容量解决单机排障与取证,两者都要有。