預設 IIS 以 W3C 文字格式寫入本機日誌,若需跨伺服器集中收集、SQL 查詢分析、自動化報表,可將 IIS 設定為 ODBC 寫入 SQL Server。
CREATE DATABASE IISLogsC:\Windows\system32\inetsrv\logtemp.sql,執行後產生 inetlog 資料表。IISLogsIISLogsIISLogs,資料表 inetlog,輸入 SQL 帳密,確定兩次。-- 即時查看最近 100 筆存取
SELECT TOP 100 ClientHost, UserName, LogTime, UriStem, HttpStatus, BytesSent
FROM inetlog ORDER BY LogTime DESC;
-- 依小時統計流量
SELECT DATEADD(HOUR, DATEDIFF(HOUR, 0, LogTime), 0) AS HourBucket,
COUNT(*) AS Hits, SUM(BytesSent) AS TotalBytes
FROM inetlog GROUP BY DATEADD(HOUR, DATEDIFF(HOUR, 0, LogTime), 0)
ORDER BY HourBucket DESC;
「使用 ODBC 記錄會停用核心快取,效能將受影響。」—— IIS 說明文件
INSERT 權限於 inetlog。善用 SQL 記錄 IIS 日誌,讓營運分析、安全稽核、異常偵測從「費時解析文字檔」轉型為「秒級 SQL 查詢」。