採訪/編輯:
棒!城市編輯部
更新時間:
2018-10-23 11:22
發佈時間:
2017-11-06 08:33
分享:
累積人次:
265

三個步驟取得IIS網站流量與活動資訊:包含IIS LOG檔、Log Parser 分析工具

掌握網站流量或網站活動相關資料是網管人員非常重要的工作,這篇將介紹在 Windows server 如何取得 IIS 上每個網站流量與活動的方法。

第一步:取得IIS Log檔。

  IIS Log檔案預設的檔案位置:

  IIS 6 Log 預設位置:%windir%\System32\LogFiles

  IIS 7或IIS 7.5 Log 預設位置:%SystemDrive%\inetpub\logs\LogFiles

如果想要更改若要更改,可到IIS管理員,點選右邊電腦,在IIS區域選 紀錄,按右鍵

開啟功能,在目錄列輸入或點選瀏覽選擇想要自訂的LOG檔路徑就可以完成修改新的Log路徑

 

 

 

 

 

第二步:並使用微軟官方免費的Log Parser工具打造 IIS 網站日誌分析系統

以Log Parser解析IIS紀錄檔 再由ODBC存入MySQL稽核

免費用微軟官方工具打造 IIS網站日誌分析系統

 

這裡將使用微軟官方提供的Log Parser免費工具程式解析IIS網站伺服器所產生的網站紀錄,然後透過ODBC連線方式將解析資訊儲存至遠端的MySQL資料庫主機,以便於分析及稽核。

表3 輸出格式說明 



Log Parser在解析完相關的紀錄後,也提供多種類型的輸出格式,相關輸出格式如表3所述。 

在說明過Log Parser軟體的用法之後,接下來,將利用此工具來解析IIS網站伺服器所產生的W3C紀錄。首先,說明W3C紀錄的格式,其欄位格式如下所示: 

 



在說明格式各欄位相關意義之前,先說明此種紀錄格式的命名規則,在上述格式中,有些字元代表特殊的意義,說明如下: 

s:代表網站伺服器的意思,即表示Server。
c:代表使用者端的意思,即表示Client。
sc:代表從網站伺服器至使用者端的意思,亦即Server to Client。
cs:代表從網站伺服器至使用者端的意思,亦即Client to Server 。


接下來,繼續說明各欄位的意義,如表4所示。 

表4 各欄位的代表意義 



講解過欄位相關的意義後,在此特別補充cs-method說明,在HTTP通訊協定中定義了下列幾種常見的HTTP方法(Method): 

·OPTIONS:如果網站伺服器提供此HTTP方法,使用者就可利用此方法(Method)來取得更多關於網站伺服器的資訊,如圖3所示,即以Telnet方式來連接網站伺服器,並以Options方法來取得更多的資訊。 

 

▲圖3 以Telnet方式來連接網站伺服器,並以Options方式取得更多的資訊。



·GET:使用者將要傳遞網站伺服器的資訊以query字串的方式傳給網站伺服器。

·POST:使用者將要傳遞網站伺服器的資訊,以表單(Form)的方式傳給網站伺服器。

·HEAD:使用者要求網站伺服器僅回覆的網頁標頭(Header)資訊,而不需要回覆網頁內容(Body)。

·PUT:網站伺服器提供上傳(Upload)檔案的功能,如果網站伺服器有開啟此功能,即允許使用者端(Client)以PUT方法將檔案上傳到網站伺 服器。

·DELETE:網站伺服器提供刪除(Delete)檔案的功能,如果網站伺服器有開啟此功能,即允許使用者端以刪除的方法從網站伺服器上刪除檔案。 

一般來說,一個實際上線服務的網站伺服器,除非有特殊的原因,不然不應該支援PUT、DELTET等較為危險的HTTP方法,所以一旦發現網站紀錄中有出現此類HTTP方法(如PUT、DELTET),就需要特別留意該來源IP是否別有居心。最後,如圖4所示為IIS實際儲存在文字檔案中的紀錄內容。 

 

▲圖4 IIS實際儲存在文字檔案中的紀錄內容。



Log Parser解析網站紀錄 

Log Parser最大的優點是可以使用SQL語法去解析那些儲存在文字檔案中的紀錄資訊。在解析之前,必須先知道這個要分析的文字檔案提供了那些欄位,本文僅以解析W3C格式為例,並假設儲存網站紀錄的檔案已被放置在「D:\iislog」目錄內。 

執行如圖5所示的指令,其中-i:W3C表示輸入來源為W3C格式,並輸出成容易閱讀的-o:NAT格式,且僅需列出符合條件的第一筆紀錄,這樣就可以從輸出中取得欄位名稱(圖5中框選的部分)。 

 



 

▲圖5 執行指令從輸出中取得欄位名稱。



在知道資料庫的欄位名稱之後,接下來就可以按照使用者的需要,運用相關的SQL指令來取得符合所需的資料。 

以下為幾個常見的SQL指令運用: 

1. 取得個別來源IP對網站伺服器的存取次數(由高至 低排列),如圖6所示。 

 

▲圖6 取得個別來源IP對網站伺服器存取的次數。



2. 單獨的來源IP每小時對網站伺服器存取次數統計, 如圖7所示。 

 

▲圖7 單獨的來源IP每小時對網站伺服器存取的次數統計。

雖然Log Parser軟體可以讓使用者便利地利用SQL指令從文字檔案中取得相關資訊,但有時候還是希望能將相關的網站紀錄資訊導入遠端的資料庫軟體以便於保存及應用。 
 

第三步,利用ODBC機制搭配Log Parser軟體,將IIS網站伺服器所產生的網站紀錄儲存到遠端的MySQL資料庫主機上。

首先,必須先在IIS網站伺服器的所在主機上安裝可以連接MySQL資料庫的ODBC軟體,請連結至網頁「https://dev.mysql.com/downloads/connector/odbc/」以取得MySQL ODBC程式。 

 

最後,除了上面三個步驟外,分析 IIS Log 還要特別注意時間點

每日何時會產生新一天的 IIS Log 紀錄檔呢?

IIS 的 Log 紀錄檔預設會在每天的 GMT 00:00 (格林威治時區)產生新一天的紀錄檔案,而一般我們在台灣地區 Windows Server 2008 R2 主機預設的時區通常是台北時區,也就是 GMT +0800,所以正確的分段點是在台灣時間的早上 8:00 整會產生新一天的 Log 檔!

所以我們在排定抓取紀錄檔的時間點,應該要設定在台北時間早上八點後,這樣才可以抓到前一天完整的 IIS Log 網站紀錄檔,才不會感覺好像 IIS Log 檔會漏失一些紀錄喔。

 

問題找到之後,我就將執行流量分析的排程時間改成早上 8:30 進行前一天的 Log 分析,分析的結果就很正確了。