只要是基于Windows Server 的IIS来提供Web服务的应用,其实都可以对IIS的日志W3C进行分析,这样可以快速的了解整个web站点的运行情况,特别是对一些请求页面响应时间有要要求的,都可以从这些日志中分析问题出在哪,下面我就以Exchange服务器的IIS日志来给大家介绍PowerBI是如何分析W3C日志的。
要分析Exchange服务器上的IIS日志,首先需要确保IIS的日志是启用的状态,比如Default Web Site站点和Exchange Back End站点的日志,更多关于IIS站点日志设置的信息可以参考:
https://docs.microsoft.com/zh-cn/iis/configuration/system.applicationHost/sites/site/logFile/
启用状态
那么在C:\inetpub\logs\LogFiles目录下您才会看到如下日志目录及文件,每一个站点会生成一个W3SVC的文件夹存放日志,比如默认站点是W3SVC1,Exchange Back End是W3SVC2
可以先用Notepad++查看下这些日志。可以看出基本是以空格为每一个值的划分的
我多收集了几天的日志,然后把这些log文件拷贝到其他目录
接下来我将这些Log文件全部利用Log Parser软件转成CSV文件(Log Parser下载地址:https://www.microsoft.com/en-my/download/details.aspx?id=24659),为什么要转换成CSV呢?虽然PowerBI可以去读Log的文件并以空格为分隔符划分列,但你会发现后面很多空格是没有划分出来的,或许是我遇到了吧,保险起见,这里我就转成了CSV文件
先安装好Log Parsr程序,接下来在日志所在目录我创建一个bat文件,内容如下:
cd "E:\Logs\W3SVC1"
for /R %%f in (*.log) do (
"C:\Program Files (x86)\Log Parser 2.2\"logparser -i:W3C -o:csv "SELECT * INTO ‘%%f.csv‘ FROM ‘%%f‘"
)
打开PowerShell,执行这个bat脚本会批量的把这些Log文件全部转成csv文件
都转换完毕后,把CSV文件单独放在一个文件夹里,接下来主要对默认站点的W3SVC1的CSV文件进行分析,还是老样子,先用PowerBI获取数据,选择文件夹
浏览到日志所在目录
选择组合——合并和编辑
确定
接下来我删除第一二列
然后关闭并应用
等待加载完成
首先拖一个饼状图看看状态IIS的状态码占比,从占比了解运行情况,这里可以看到饼状图里显示了状态码的分布并显示出了状态码
状态码的含义可以参考:https://support.microsoft.com/en-us/help/943891/the-http-status-code-in-iis-7-0-iis-7-5-and-iis-8-0
但这些状态码是否可以更为直观的显示出含义呢?这里我准备了一个Excel表,整理下状态码和信息的关系
那么右边这些列各代表什么含义呢?可以参考https://msdn.microsoft.com/en-us/library/windows/desktop/aa814385(v=vs.85).aspx
日志文件是一种可定制的ASCII文本格式,文件中的字段前缀定义如下:
s
服务器操作
c
客户操作
sc
服务器到客户端的操作
cs
客户端到服务器操作
下面是我整理的W3C日志的字段和解释
接下来我把上面整理出来的HTTP状态码Excel表也导入进PowerBI
接下来选择关系——管理关系
新建
选择CSV里的sc-status列,然后选择Sheel1里的状态码进行关联,点击确定
点击关闭
关系图里就出现了一条线条关联上了2个表
接下来回到报表里选择刚才的饼状图,我把信息拖到详细信息里,这时你会发现饼状图里原来的状态码全变成了含义的解释,这样更方便直观理解了
调整下值的参数
接下来再创建一个环形图,分析客户端IP源访问请求占比
同理再创建一个服务端IP源访问请求占比
接下来再分析客户端访问请求类型占比
再拖一个时间切片器
接下里再创建一个饼状图分析用户访问请求占比,看看谁访问Exchange请求最多
接下来再分析页面访问次数及平均响应时间
接下来再统计每一个页面状态的发生次数
最后罗列时间,来源IP地址,以及用户采用的什么系统和浏览器或客户端访问的Exchange分析
最后再美化和排版就大功告成了,当然这里介绍的是Exchange的日志分析,其他采用微软IIS作为WEB服务的都可以采用类似的方法来分析哦,毕竟IIS的日志记录都是一样的这些字段
原文地址:http://blog.51cto.com/rdsrv/2126098