IIS 記錄檔匯入 SQL Server
欲將 IIS 網站的記錄檔拋轉至 SQL Server,很簡單的做法如下
安裝 Log Parser
Log Parser 是一個讀取各種 Log 檔的工具程式,可以使用類似 T-SQL 的語法來查詢多個文字檔案中的資料,請參閱: 功能強大且威名遠播的記錄分析器。
將 IIS 記錄定時排程轉入 SQL Server 資料庫,可以先將查詢語法寫成批次檔,透過 Windows 工作排程來執行。
首先下載並安裝 Log Parser (採用下一步安裝法)
下載點 http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=24659
新增 Backup 資料匣
建立一個備份資料匣,當拋轉資料後將紀錄檔搬移至這個目錄
執行命令
修改以下命令,如路徑與資料庫參數,開啟命令提示字元執行或將以下複製建立為批次檔,此段指令會自動建立資料表
cd C:\Program Files (x86)\Log Parser 2.2
LogParser "SELECT * INTO iisLogs FROM C:\inetpub\logs\LogFiles\W3SVC4\*.log" -i:iisw3c -o:SQL -server:localhost -database:webLogs -username:sa -password:yourpassword -createTable: ON
move C:\inetpub\logs\LogFiles\W3SVC4\*.log C:\inetpub\logs\LogFiles\W3SVC4\Backup\
完成後可以使用 SSMS 查詢
同場加映
Log Parser 功能不僅於讀取 IIS 的記錄檔,還提供很多種讀取的格式,舉例若有 CSV 檔案想要轉入 SQL Server 也可以適用,以下範例是讀取一個 CSV 檔案且沒有欄位標題的作法
cd C:\Program Files (x86)\Log Parser 2.2
LogParser "SELECT FileName, RowNumber, Field1, Field2, Field3, Field4, Field5, Field6, Field7, Field8, Field9, Field11, Field12, Field13, Field14, Field15, Field16, Field17, Field18 INTO aLog FROM E:\Temp\*.*" -i:CSV -headerRow:OFF -o:SQL -server:localhost -database:webLogs -username:sa -password:YOUR_PASSWORD -createTable: ON
move E:\Temp\*.* C:\Temp\Backup\
以上也可以將 Field1 做別名如 Field1 as TransTime
參考文章
Importing IIS Logs into a SQL Database / Table – Blog
Introduction to Log Parser Week 39 – YouTube