只要是基于 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