事件日志体系

Windows 事件日志是系统行为的黑匣子:登录、关机、服务异常、补丁安装都有记录。按来源分为应用、安全、系统、转发四大日志,各自有固定的事件 ID 与级别。

安全日志尤其重要,记录了登录成功与失败、账户操作、策略变更。配合审计策略,它能把「发生了什么」精确到「谁在什么时间做了什么」。

没有事件日志的系统,出事就是黑盒;有日志不会读,等于白装。
四大日志
  • 应用程序运行异常。。
  • 安全登录与授权。。
  • 系统驱动与服务。。
  • 转发集中收集中转。。
Windows 事件日志配图:发光记录簿轮廓与监控摄像头、时钟,节点连线相连
日志留痕,审计有据。

读取与分析事件

PowerShell 的 Get-WinEvent 是读日志最顺手的工具,比图形界面更适合批量筛选与脚本化。按时间、级别、事件 ID、关键词过滤,几秒钟扫完全量日志。

# 近 24 小时登录失败事件
Get-WinEvent -FilterHashtable @{
  LogName='Security';
  Id=4625;
  StartTime=(Get-Date).AddDays(-1)
} | Select-Object TimeCreated, Id, Message

常见事件 ID:4624 登录成功、4625 登录失败、4720 创建用户、4740 账户被锁定。把这些 ID 背下来,应急时直接过滤定位。

自定义事件源

自己的应用程序可以往事件日志里写业务事件,用 EventLog 或 wevtutil 注册事件源。相比文件日志,事件日志有统一格式、可被监控平台直接消费。

// C# 写入自定义事件
using (var log = new EventLog("Application"))
{
    log.Source = "MyApp";
    log.WriteEntry("订单处理失败,订单号 10086",
        EventLogEntryType.Warning, 1001);
}

写日志要克制:高频循环里不写事件日志,避免日志暴涨拖垮系统。事件源命名带应用前缀,监控平台才能按来源归类。

审计策略配置

审计策略决定哪些操作被记进安全日志。默认只记失败,建议对关键对象同时记成功:账户创建、策略变更、登录行为。

# 启用关键审计策略
auditpol /set /subcategory:"登录" /success:enable /failure:enable
auditpol /set /subcategory:"用户账户管理" /success:enable /failure:enable

审计不是越多越好:策略过宽日志量失控,过窄查不到人。按风险排序,先覆盖登录、账户、策略三类,再按需扩展。

集中收集与告警

单机日志价值有限,集中收集才有全局视野。Windows 转发服务把各机器事件汇聚到收集器,或由 Agent 推送到日志平台,配合检索与告警。

典型告警:同一账户一分钟内多次 4625、新增本地管理员、审计策略被关闭。告警规则落在收集端,命中立即通知安全负责人。