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

clip_image001

啟用狀態

clip_image002

那么在C:\inetpub\logs\LogFiles目錄下您才會看到如下日志目錄及文件,每一個站點會生成一個W3SVC的文件夾存放日志,比如默認站點是W3SVC1,Exchange Back End是W3SVC2

clip_image003

可以先用Notepad++查看下這些日志。可以看出基本是以空格為每一個值的劃分的

clip_image004

我多收集了幾天的日志,然后把這些log文件拷貝到其他目錄

clip_image005

接下來我將這些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'"

)

clip_image006

打開PowerShell,執行這個bat腳本會批量的把這些Log文件全部轉成csv文件

clip_image007

都轉換完畢后,把CSV文件單獨放在一個文件夾里,接下來主要對默認站點的W3SVC1的CSV文件進行分析,還是老樣子,先用PowerBI獲取數據,選擇文件夾

clip_image008

瀏覽到日志所在目錄

clip_image009

選擇組合——合并和編輯

clip_image010

確定

1

接下來我刪除第一二列

clip_image012

然后關閉并應用

clip_image013

等待加載完成

clip_image014

首先拖一個餅狀圖看看狀態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表,整理下狀態碼和信息的關系

clip_image015

clip_image016

那么右邊這些列各代表什么含義呢?可以參考https://msdn.microsoft.com/en-us/library/windows/desktop/aa814385(v=vs.85).aspx

日志文件是一種可定制的ASCII文本格式,文件中的字段前綴定義如下:

s

服務器操作

c

客戶操作

sc

服務器到客戶端的操作

cs

客戶端到服務器操作

下面是我整理的W3C日志的字段和解釋

clip_image017

接下來我把上面整理出來的HTTP狀態碼Excel表也導入進PowerBI

clip_image018

接下來選擇關系——管理關系

clip_image019

新建

clip_image020

選擇CSV里的sc-status列,然后選擇Sheel1里的狀態碼進行關聯,點擊確定

clip_image021

點擊關閉

clip_image022

關系圖里就出現了一條線條關聯上了2個表

clip_image023

接下來回到報表里選擇剛才的餅狀圖,我把信息拖到詳細信息里,這時你會發現餅狀圖里原來的狀態碼全變成了含義的解釋,這樣更方便直觀理解了

clip_image024

調整下值的參數

clip_image025

接下來再創建一個環形圖,分析客戶端IP源訪問請求占比

clip_image026

同理再創建一個服務端IP源訪問請求占比

clip_image027

接下來再分析客戶端訪問請求類型占比

clip_image028

再拖一個時間切片器

clip_image029

接下里再創建一個餅狀圖分析用戶訪問請求占比,看看誰訪問Exchange請求最多

clip_image030

接下來再分析頁面訪問次數及平均響應時間

clip_image031

接下來再統計每一個頁面狀態的發生次數

clip_image032

最后羅列時間,來源IP地址,以及用戶采用的什么系統和瀏覽器或客戶端訪問的Exchange分析

clip_image033

最后再美化和排版就大功告成了,當然這里介紹的是Exchange的日志分析,其他采用微軟IIS作為WEB服務的都可以采用類似的方法來分析哦,畢竟IIS的日志記錄都是一樣的這些字段

clip_image034