1. LogParser工具基础解析
LogParser是微软开发的一款强大的日志分析工具,它能够像SQL查询数据库一样查询各种类型的日志文件。这个命令行工具最令人称道的地方在于它支持多种输入格式(如EVT事件日志、IIS日志、CSV文件等)和多种输出格式(如DATAGRID表格、CSV、XML等)。
我第一次接触LogParser是在处理Windows服务器安全日志时,当时需要快速分析大量登录失败事件。传统方法需要导出日志后用Excel处理,效率极低。而LogParser只需要一行命令就能完成复杂查询,效率提升至少10倍。
1.1 基本命令结构
LogParser的基本命令格式如下:
bash复制LogParser.exe -i:<输入类型> -o:<输出类型> "SQL查询语句"
其中:
-i:EVT表示输入是Windows事件日志-o:DATAGRID表示结果以表格形式显示- 双引号内是标准的SQL查询语句
注意:路径和SQL语句中的空格需要用引号包裹,否则会导致解析错误。这是我踩过的第一个坑 - 当路径包含空格时忘记加引号,结果查询完全失败。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安全日志分析实战
Windows安全日志中的几个关键事件ID:
- 4625:登录失败
- 4624:登录成功
- 4634:注销事件
- 7045:服务安装
2.1 登录失败分析(事件ID 4625)
基础查询:
sql复制SELECT * FROM c:\Security.evtx
WHERE EventID=4625
AND TimeGenerated>'2022-12-01 22:30:00'
这个查询会返回所有在指定时间后的登录失败记录。但实际分析时我们更关心:
- 哪些账号被频繁尝试
- 攻击来源IP
- 尝试的时间分布
优化后的聚合查询:
sql复制SELECT
EXTRACT_TOKEN(Message,13,' ') as EventType,
EXTRACT_TOKEN(Message,19,' ') as user,
count(EXTRACT_TOKEN(Message,19,' ')) as Times,
EXTRACT_TOKEN(Messa
