今天给大家介绍如果利用LogParser和LogParser Studio 对常见的日志文件进行统计分析。
LogParser是微软公司提供的一款日志分析工具,可以对基于文本格式的日志文件、XML文件和CSV文件,以及Windows操作系统上的事件日志、注册表、文件系统等等进行处理分析,分析结果可以保存在基于文本的自定义格式中、SQL或者是利用各种图表进行展示,接下来给大家介绍下如何安装使用。
LogParser安装:
大家可以在微软官网下载、安装。安装过程很简单,一步到位。
下载链接:http://www.microsoft.com/en-us/download/details.aspx?id=24659
LogParser使用方法:
LogParser使用过程其实很简单,总结其实就是一个公式:
LogParser –i:输入文件的格式 –o:想要输出的格式 “SQL语句”
针对不同类型的文件,要正确的选择输入文件的格式,接下来我们可以看下,LogParser支持哪些格式的输入?
这边主要给大家介绍的是NCSA文件格式,可能大家对这种格式比较陌生。NCSA(美国国家超级计算技术应用中心)格式是常用的标准日志格式。目前市面上主要有两种常见的WEB日志格式,一种是IIS的W3C日志格式,这类我们比较熟悉,另一类其实就是以Apache为代表的NCSA日志格式,像常见的Nginx、Apache就是NCSA标准的日志格式。
看完常见的输入日志格式,我们来看下常见的输出的格式:
除了常见的CSV、XML、SQL等输出格式外,LogParser还提供DATAGRID(网格)和CHART(图表)这种形式的输出。
LogParser使用展示:
接下来,我们就以IIS日志文件为例,给大家演示LogParser使用的方法和分析效果。
1、IIS日志统计最经常访问的IP
提供N个log文件,需要统计出访问次数最多的IP以及次数
(a)首先我们一般先使用DATAGRID这种格式输出,看看日志中有什么样的字段,处理是否有问题,以上案例我们可以使用以下命令:
LogParser.exe -i:IISW3C -o:DATAGRID “SELECT * FROM D:\log*.log”
(b)明白套路之后,我们就可以使用SQL语句统计实现我们需要的数据。
LogParser.exe -i:IISW3C -o:DATAGRID “SELECT c-ip,COUNT(c-ip) FROM D:\log*.log GROUP BY c-ip ORDER BY COUNT(c-iP) DESC”
©除了用DATAGRID这种格式之外,也可以将结果数据导出到常用的表格中如csv中。
LogParser.exe -i:IISW3C -o:csv "SELECT c-ip,COUNT(c-ip) into 1.csv FROM D:\log*.log GROUP BY c-ip ORDER BY COUNT(c-iP) DESC
这时候在安装目录下就会生成一个1.csv的文件,当然也可以指定生成的文件的路径,只要在文件名前加上路径:LogParser.exe -i:IISW3C -o:csv "SELECT c-ip,COUNT(c-ip) into D:\ 1.csv FROM D:\log*.log GROUP BY c-ip ORDER BY COUNT(c-iP) DESC
(d)除此之外,我们还可以使用CHART来生成不同的图表,比如:
LogParser.exe -i:IISW3C -o:CHART “SELECT TOP5 c-ip,COUNT(c-ip) into 1.jpg FROM D:\log*.log GROUP BY c-ip ORDER BY COUNT(c-iP) DESC” -chartType:PieExploded3D -chartTitle:“IP TIMES”
最后的-chartType:PieExploded3D -chartTitle:"IP TIMES"字段分别告诉软件生成图表的类型是PieExploded3D(饼状图)和图表名字为‘’IP TIMES‘’
也可以生成其他的图形,只要告诉软件指定的图表类型,比如:
LogParser.exe -i:IISW3C -o:CHART “SELECT TOP5 c-ip,COUNT(c-ip) into 1.jpg FROM D:\log*.logGROUP BY c-ip ORDER BY COUNT(c-iP) DESC” -chartType:BAR3D-chartTitle:“IP TIMES”
2、在日志中搜索特殊的访问链接或者特定的请求方式
在入侵事件中,我们经常会需要查找“post”请求,判断是否有上传木马文件等行为,或者访问页面中包含“user”、“manager”、“admin”等类似管理员的字段判断是否访问了后台管理页面。
LogParser.exe -i:IISW3C -o:DATAGRID “SELECT * FROM D:/log/*.log WHERE cs-method=‘POST’”
LogParser.exe -i:IISW3C -o:DATAGRID “SELECT * FROM D:/log/*.log WHERE cs-uri-stem LIKE ‘%admin%’”
通过上面的例子,相信大家对LogParser的用法有了一定的了解,其实就如之前说的只要定义好输入、输出,其他只需要我们写好相应的SQL语句即可。
这时候大家可能会说,这LogParser好用是好用,强大也是真强大,就是这个命令提示符不太友好啊,接下来就给大家介绍一款带GUI的LogParser,也就是LogParser Studio,也是微软提供的日志分析软件,基于LogParser 构建,并具有用户界面,方便用户做查询使用。
LogParser Studio安装:
大家同样可以在微软官网下载、安装LogParser Studio下载之后,解压运行LPS.exe即可。有一点要注意,使用LogParser Studio之前需要先安装LogParser。下载地址:https://gallery.technet.microsoft.com/office/Log-Parser-Studio-cd458765
LogParser Studio使用:
打开LPS.exe之后,看到的软件主界面,如下图所示:
接下来我们来看下如何选择我们需要分析的文件,然后按照实际需要自定义SQL语句进行统计分析。
(a)打开需要分析的日志文件
(b)选中需要分析的日志文件,接着新建一个查询
(c) 我们还是以刚才统计出访问次数最多的IP地址及次数为例子
SELECT top 10 c-ip,count(c-ip) FROM ‘[LOGFILEPATH]’ GROUP BY c-ip ORDER BYCOUNT(c-iP) DESC
(d)然后点击我们的执行按钮,即可输出结果
这里注意LogParser Studio与LogParser有几个区别:
1、输入文件类型:LogParser Studio已经预先选择输入文件类型,查询语句不需要再定义
2、输出文件类型:LogParser Studio默认使用窗口展示数据,如需指定其他输出文件类型或者导出文件,需要在语句中定义
(e)也可将我们自定义的SQL语句,保存加入到库中,方便下次使用
(f)也可点击相应的按钮将查询统计的数据导出。
以上就是LogParser Studio的使用方法,相比于LogParser还是简洁清晰很多,后续如果有遇到日志分析,大家都可以尝试使用一下。