默認位置:%systemroot%\system32\logfiles\ 可自由設定。
默認日志格式:ex+年份的末兩位數字+月份+日期
檔案後綴:.log
如2010年7月30日的日誌生成檔案是ex100730.log
IIS日誌是每個伺服器管理者都必須學會查看的,伺服器的一些狀況和訪問IP的來源都會記錄在IIS日誌中,所以IIS日誌對每個伺服器管理者非常的重要,seoer也不例外,這點同時也可方便網站管理人員查看網站的運營情況。
Internet 信息伺服器 (IIS) 版本 4.0 和 Internet Information Services 版本 5.0 及更高版本的支持以下日誌檔案格式:
Microsoft IIS 日誌格式
國家超級計算應用程式 (NCSA) 的中心通用日誌檔案格式
全球資訊網聯合會 (W3C) 擴展日誌檔案格式
ODBC 日誌記錄
當 Internet Information Services 創建日誌檔案時,使用該命名語法。
下表列出日誌檔案間隔並為每個檔案名稱可用於每個日誌檔案格式,使用以下語法:
nn = 順序的數字yy = 年mm = 每月ww = 周dd = 日hh = 小時 (24 小時格式)
Microsoft IIS 日誌格式
檔案大小 | inetsv nn.log |
每小時執行一次 | 在 yymmddhh.log |
每日 | 在 yymmdd.log |
每周 | 在 yymmww.log |
每月 | 在 yymm.log |
NCSA 公用日誌檔案格式
檔案大小 | ncsa nn.log |
每小時執行一次 | nc yymmddhh.log |
每日 | nc yymmdd.log |
每周 | nc yymmww.log |
每月 | nc yymm.log |
W3C 擴展日誌檔案格式
檔案大小 | 擴展 nn.log |
每小時執行一次 | (例如 yymmddhh.log |
每日 | (例如 yymmdd.log |
每周 | (例如 yymmww.log |
每月 | (例如 yymm.log |
有關格式設定以及所需的步驟,對於 ODBC 日誌記錄的信息,請參閱 IIS 幫助中的"關於記錄活動"主題。
IIS 6.0 還支持集中的二進制日誌記錄。集中的二進制日誌記錄是多個網站向單個日誌檔案寫入不帶格式的二進制日誌數據的過程。當啟用的所有網站在您的 Web 伺服器上運行 IIS 將日誌數據都寫入單個日誌檔案。
下面的檔案格式用於集中的二進制日誌記錄:
每小時執行一次 | 原始 yymmddhh.ibl |
每日 | 原始 yymmdd.ibl |
每周 | 原始 yymmww.ibl |
每月 | 原始 yymm.ibl |
找到日誌打開,發現日誌的前幾行如下
#Software: Microsoft Internet Information Services 5.1 //iis版本
#Version: 1.0 //版本
#Date: 2010-07-30 00:53:58 //創建時間
#Fields: date time c-ip cs-username s-sitename s-computername s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status sc-win32-status sc-bytes cs-bytes time-taken cs-version cs-host cs(User-Agent) cs(Cookie) cs(Referer) //日誌格式
下面的日誌我在本地上測試的,擴展屬性全部選中。
2010-07-30 01:06:43 192.168.0.102 - W3SVC1 MGL 192.168.0.102 80 GET /css/rss.xslt - 304 0 140 358 0 HTTP/1.1 192.168.0.102 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+Trident/4.0;+infopath.2;+360SE) ASPSESSIONIDACRRDABA=IDDHCBBBHBMBODAGCIDKAGLM -
下面對日誌格式進行詳細解答。
Fields: date 2010-07-30 \\爬行日期
time 01:06:43 \\時間
s-sitename W3SVC1 \\伺服器名稱
s-computername MGL \\ 網站名稱
s-ip 192.168.0.102 \\網站IP
cs-method GET \\獲取方法
cs-uri-stem /css/rss.xslt \\檔案的URL
cs-uri-query - \\?後面的參數
s-port 80 \\伺服器連線埠
cs-username - \\用戶名
c-ip 192.168.0.102 \訪問者(蜘蛛)ip
cs-version HTTP/1.1 \\協定版本
cs(User-Agent) Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+Trident/4.0;+InfoPath.2;+360SE)
\\用戶代理,即用戶所用的瀏覽器(這個最重要)
cs(Cookie) ASPSESSIONIDACRRDABA=IDDHCBBBHBMBODAGCIDKAGLM \\傳送或接收的 Cookie 內容(如果有)
cs(Referer) - \\選擇該選項可以記錄用戶訪問的前一個站點。此站點提供與當前站點的連結。
cs-host 192.168.0.102 \\主機頭的內容。我本地訪問的是IP,這個應該是網站域名。
sc-status 304 \\協定狀態(200是正常的 404 是找不到檔案,304未改變。更多請查看IIS返回日誌詳解)
sc-substatus 0 \\協定子狀態
sc-win32-status 0 \\win32狀態
sc-bytes 140 \\傳送的位元組數
cs-bytes 358 \\接受的位元組數
time-taken 0 \\所用時間
200 0 0 4600 316 140返回200正常,4600傳送的位元組數,316接受的位元組數 140所用時間。這個時間應該是毫秒級別的。
1xx(臨時回響)表示臨時回響並需要請求者繼續執行操作的狀態代碼。
代碼 說明
100 (繼續) 請求者應當繼續提出請求。 伺服器返回此代碼表示已收到請求的第一部分,正在等待其餘部分。
101 (切換協定) 請求者已要求伺服器切換協定,伺服器已確認並準備切換。
2xx (成功)表示成功處理了請求的狀態代碼。
代碼 說明
200 (成功) 伺服器已成功處理了請求。 通常,這表示伺服器提供了請求的網頁。
201 (已創建) 請求成功並且伺服器創建了新的資源。
202 (已接受) 伺服器已接受請求,但尚未處理。
203 (非授權信息) 伺服器已成功處理了請求,但返回的信息可能來自另一來源。
204 (無內容) 伺服器成功處理了請求,但沒有返回任何內容。
205 (重置內容) 伺服器成功處理了請求,但沒有返回任何內容。
206 (部分內容) 伺服器成功處理了部分 GET 請求。
3xx (重定向) 表示要完成請求,需要進一步操作。 通常,這些狀態代碼用來重定向。
代碼 說明
300 (多種選擇) 針對請求,伺服器可執行多種操作。 伺服器可根據請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。
301 (永久移動) 請求的網頁已永久移動到新位置。 伺服器返回此回響(對 GET 或 HEAD 請求的回響)時,會自動將請求者轉到新位置。
302 (臨時移動) 伺服器目前從不同位置的網頁回響請求,但請求者應繼續使用原有位置來進行以後的請求。
303 (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索回響時,伺服器返回此代碼。
304 (未修改) 自從上次請求後,請求的網頁未修改過。 伺服器返回此回響時,不會返回網頁內容。
305 (使用代理) 請求者只能使用代理訪問請求的網頁。 如果伺服器返回此回響,還表示請求者應使用代理。
307 (臨時重定向) 伺服器目前從不同位置的網頁回響請求,但請求者應繼續使用原有位置來進行以後的請求。
4xx(請求錯誤) 這些狀態代碼表示請求可能出錯,妨礙了伺服器的處理。
代碼 說明 400 (錯誤請求) 伺服器不理解請求的語法。
401 (未授權) 請求要求身份驗證。 對於需要登錄的網頁,伺服器可能返回此回響。
403 (禁止) 伺服器拒絕請求。404 (未找到) 伺服器找不到請求的網頁。
405 (方法禁用) 禁用請求中指定的方法。
406 (不接受) 無法使用請求的內容特性回響請求的網頁。
407 (需要代理授權) 此狀態代碼與 401(未授權)類似,但指定請求者應當授權使用代理。408 (請求逾時) 伺服器等候請求時發生逾時。
409 (衝突) 伺服器在完成請求時發生衝突。 伺服器必須在回響中包含有關衝突的信息。
410 (已刪除) 如果請求的資源已永久刪除,伺服器就會返回此回響。
411 (需要有效長度) 伺服器不接受不含有效內容長度標頭欄位的請求。
412 (未滿足前提條件) 伺服器未滿足請求者在請求中設定的其中一個前提條件。
413 (請求實體過大) 伺服器無法處理請求,因為請求實體過大,超出伺服器的處理能力。
414 (請求的 URI 過長) 請求的 URI(通常為網址)過長,伺服器無法處理。
415 (不支持的媒體類型) 請求的格式不受請求頁面的支持。
416 (請求範圍不符合要求) 如果頁面無法提供請求的範圍,則伺服器會返回此狀態代碼。
417 (未滿足期望值) 伺服器未滿足"期望"請求標頭欄位的要求。
5xx(伺服器錯誤)這些狀態代碼表示伺服器在嘗試處理請求時發生內部錯誤。 這些錯誤可能是伺服器本身的錯誤,而不是請求出錯。
代碼 說明
500 (伺服器內部錯誤) 伺服器遇到錯誤,無法完成請求。
501 (尚未實施) 伺服器不具備完成請求的功能。 例如,伺服器無法識別請求方法時可能會返回此代碼。
502 (錯誤網關) 伺服器作為網關或代理,從上游伺服器收到無效回響。
503 (服務不可用) 伺服器目前無法使用(由於超載或停機維護)。 通常,這只是暫時狀態。
504 (網關逾時) 伺服器作為網關或代理,但是沒有及時從上游伺服器收到請求。
505 (HTTP 版本不受支持) 伺服器不支持請求中所用的 HTTP 協定版本。
日誌的在IIS中是很重要的,但是很多人卻忽略了,在這裡說說,日誌格式建議使用W3C擴充日誌檔案格式,這也是IIS 5.0默認的格式,可以指定每天記錄客戶IP位址、用戶名、伺服器連線埠、方法、URI資源、URI查詢、協定狀態、用戶代理,每天要審查日誌。如圖1所示。
IIS 5.0的WWW日誌檔案默認位置為%systemroot%\system32\logfiles\w3svc1\,對於絕大多數系統而言(如果安裝系統時定義了系統存放目錄則根據實際情況修改)則是C:\winnt\system32\logfiles\w3svcl\,默認每天一個日誌。建議不要使用默認的目錄,更換一個記錄日誌的路徑,同時設定日誌訪問許可權,只允許管理員和SYSTEM為完全控制的許可權,如圖2所示。日誌檔案的名稱格式是:ex+年份的末兩位數字+月份+日期,如2002年8月10日的WWW日誌檔案是ex020810.log。IIS的日誌檔案都是文本檔案,可以使用任何編輯器打開,例如記事本程式。下面列舉說明日誌檔案的部分內容。每個日誌檔案都有如下的頭4行:
上面各行分別清楚地記下了遠程客戶端的IP位址、連線時間、連線埠、請求動作、返回結果(用數字表示,如頁面不存在則以404返回)、所使用的瀏覽器類型等信息。
IIS的FTP日誌檔案默認位置為%systemroot%\system32\logfiles\MSFTPSVC1\,對於絕大多數系統而言(如果安裝系統時定義了系統存放目錄則根據實際情況修改)則是C:\winnt\system32\logfiles\ MSFTPSVC1\,和IIS的WWW日誌一樣,也是默認每天一個日誌。日誌檔案的名稱格式是:ex+年份的末兩位數字+月份+日期,如2002年8月10日的WWW日誌檔案是ex020810.log。它也是文本檔案,同樣可以使用任何編輯器打開,例如記事本程式。和IIS的WWW日誌相比,IIS的FTP日誌檔案要豐富得多。下面列舉日誌檔案的部分內容。
有經驗的用戶可以通過這段FTP日誌檔案的內容看出,來自IP位址210.12.195.2的遠程客戶從2002年7月24日3:15開始試圖登錄此伺服器,先後換了4次用戶名和口令才成功,最終以administrator的賬戶成功登錄。這時候就應該提高警惕,因為administrator賬戶極有可能泄密了,為了安全考慮,應該給此賬戶更換密碼或者重新命名此賬戶。
如何辨別伺服器是否有人曾經利用過Unicode漏洞入侵過呢?可以在日誌里看到類似如下的記錄:
如果入侵者技術比較高明,會刪除IIS日誌檔案以抹去痕跡,這時可以到事件查看器看來自W3SVC的警告信息,往往能找到一些線索。