2018年12月7日 星期五

使用T-SQL分析IIS Log

相信有不少攻城獅都有管理IIS站台的經驗,有時會遇到IIS突然無法連線等狀況發生,
大概大部份的人會在Command視窗下iisreset /restart指令,讓IIS重啓看看,真的再不行就重開機,
也有人會針對消耗資源多的應用程式集區,在User的離峰時間去設定自動回收重啓
以上都是治標不治本的方法...
因為系統有了問題要去釐清可能的問題點,而不是妄加猜測是資料庫、應用程式、網路所導致的,
小弟建議可先從IIS本身提供的Log來進行分析,
開啟"Internet Information Services(IIS)管理員"->"記錄",查看記錄檔所存放的目錄。
https://ithelp.ithome.com.tw/upload/images/20181023/20107408qfUCsKo9PE.jpg
點"選取欄位",可勾選要紀錄的資料欄位
https://ithelp.ithome.com.tw/upload/images/20181023/20107408vfTubEwniI.jpg
由於IIS Log檔中的資料是很繁雜的,僅用記事本來查看要分析出有用的資訊是有難度的,
因此小弟介紹使用BULK INSERT的功能將IIS Log大量匯入至表格中再來找尋有用的資料,
這樣子會便捷許多。
IIS Log檔的內容如下
https://ithelp.ithome.com.tw/upload/images/20181023/20107408fHIvutpEkh.jpg
首先,先依據Log檔裡資料的標頭來建立張資料表供匯入資料使用
CREATE TABLE IIS_Log(
[date] date null,
....
....
)
接著使用以下script將IIS Log檔匯入剛建的表格裡
BULK INSERT IIS_Log FROM 'C:\inetpub\logs\Logfiles\W3SVC1\u_ex18023.log'
WITH (
        FIELDTERMINATOR = ' ',
        ROWTERMINATOR = '\n'
     }
順利匯入後,即可使用SQL來分析各網頁的歷程紀錄。
通常在網站開發時測不出來的問題,可能在網站上線後一段時間後爆發出來,
此時善用Log檔可以有助於了解整個網站的運作情況以及問題點的釐清。

沒有留言:

張貼留言

[SQL Server]主動通知SQL Server發生錯誤的機制

當SQL Server有特定錯誤發生時,管理人員也沒有時間經常去查看SQL Server錯誤檔, 於是有時特定錯誤可能很重要時,但卻沒有人被通知到,現在小弟實作一個主動通知的機制。 首先先新增警示,在這裡選擇想要被通知的錯誤訊息的等級或其它設定 接著在回應頁籤中,勾選執...