商業日志分析工具昂貴且學習曲線陡峭。Excel 內建的「分列」+「數據透視表」能在 10 分鐘內把原始 IIS 日志變成可互動的分析報表,覆蓋蜘蛛爬取、狀態碼分布、熱門 URL、響應時間、頻率限制等核心場景。
前置準備
- 獲取 IIS 日志文件 (
*.log):IIS 管理器 → 網站屬性 → 啟用日志 → 確認路徑 (預設 %SystemDrive%\inetpub\logs\LogFiles\W3SVC1\),FTP 下載至本地。
- 日志格式確認:標準 W3C 擴展日志格式 (預設),首行 `#Software: Microsoft Internet Information Services 6.0`,第 5 行起為數據行。
導入與清洗 (關鍵步驟)
- 用記事本/Notepad++ 打開日志,**刪除前 4 行註釋行** (以 `#` 開頭)。
- 全選複製 → Excel 新工作表 **A1 儲存格貼上**。
- 選中 A 列 → 「數據」選項卡 → 「分列」 → 「分隔符號」 → 勾選 **空格** (預設即為空格分隔) → 完成。日志自動展開為多欄。
- 根據標準 W3C 字段命名欄標題:
| 欄位 | 標準字段名 | 說明 |
| A | date | 日期 (YYYY-MM-DD) |
| B | time | 時間 (HH:MM:SS) |
| C | s-ip | 服務器 IP |
| D | cs-method | HTTP 方法 (GET/POST...) |
| E | cs-uri-stem | 請求 URL 路徑 |
| F | cs-uri-query | 查詢字符串 |
| G | s-port | 服務器端口 |
| H | cs-username | 認證用戶名 (匿名為 -) |
| I | c-ip | 客戶端 IP |
| J | cs(User-Agent) | User-Agent 字符串 |
| K | sc-status | HTTP 狀態碼 (200/301/404/500...) |
| L | sc-substatus | 子狀態碼 |
| M | sc-win32-status | Win32 錯誤碼 |
| N | time-taken | 耗時 (毫秒) |
構建透視表分析模型
- 選中整個數據區 → 「插入」→「數據透視表」→ 新工作表。
- 拖拽字段構建視圖:
視圖 1:蜘蛛爬取頻次與狀態碼分布
- 行:`cs(User-Agent)` (篩選含 bot/spider/crawler)
- 列:`sc-status`
- 值:`c-ip` (計數)
視圖 2:Top 20 耗時 URL (性能瓶頸定位)
- 行:`cs-uri-stem`
- 值:`time-taken` (平均/最大/計數) → 按平均耗時降序 → 前 20
視圖 3:時間維度流量趨勢 (識別 CC 攻擊/爬蟲高峰)
- 行:`date` + `time` (按小時分組)
- 值:`c-ip` (不重複計數 = UV)、`time-taken` (計數 = PV)
視圖 4:404 鏈接排查 (修復斷鏈/更新 Sitemap)
- 篩選:`sc-status = 404`
- 行:`cs-uri-stem` + `cs-uri-query`
- 值:`c-ip` (計數) → 降序
進階技巧
- 切片器 (Excel 2010+):添加 `sc-status`、`cs-method` 切片器,一鍵篩選。
- 條件格式:為 `time-taken` 設置色階,高耗時行自動紅色高亮。
- Power Query (Excel 2016+):自動化「刪除註釋→分列→類型轉換」全流程,下次只需「刷新」即可分析新日志。
- 大文件處理:單日志 > 100MB 建議用
Log Parser 或 Python/PowerShell 預聚合後再導入 Excel。