IIS日志和網絡狀態


IIS日志和網絡狀態

CLOSE_WAIT

http://blog.sina.com.cn/s/blog_408c00570100eek0.html

NETSTAT狀態之一CLOSE_WAIT學習 (2009-08-14 08:51:33)


首先我們知道,如果我們的Client程序處於CLOSE_WAIT狀態的話,說明套接字是被動關閉的!
因為如果是Server端主動斷掉當前連接的話,那么雙方關閉這個TCP連接共需要四個packet:
Server ---> FIN ---> Client
Server <--- ACK <--- Client
這時候Server端處於FIN_WAIT_2狀態;而我們的程序處於CLOSE_WAIT狀態。
Server <--- FIN <--- Client
這時Client發送FIN給Server,Client就置為LAST_ACK狀態。
Server ---> ACK ---> Client
Server回應了ACK,那么Client的套接字才會真正置為CLOSED狀態。

我們的程序處於CLOSE_WAIT狀態,而不是LAST_ACK狀態,

說明還沒有發FIN給Server,那么可能是在關閉連接之前還有許多數據要發送或者其他事要做,導致沒有發這個FIN packet。

 


 IIS日志

http://wenwen.soso.com/z/q339984695.htm

Windows2003環境中,IIS日志默認存儲路徑:C:\WINDOWS\system32\LogFiles\ ,在LogFiles文件夾下,存在多個IIS日志文件夾,

每個IIS日志文件夾對應一個站點日志。當然IIS日志文件存儲位置也可以根據自己的實際情況,在IIS管理器中重新設定。
要查看對應站點的IIS日志,只需要打開對應IIS日志文件夾找到相對應日志文件即可。也可借助IIS日志分析工具提供查看IIS日志的效率!
IIS日志文件存儲格式:IIS日志是后綴名為log的文本文件。
IIS日志文件代碼格式:
#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2009-11-26 06:14:21
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status
2009-11-26 06:14:21 W3SVC692644773 125.67.67.* GET /index.html - 80 - 123.125.66.130 Baiduspider+(+ http://www.baidu.com/search/spider.htm) 200 0 64
2009-11-26 06:14:21 W3SVC692644773 125.67.67.* GET /index.html - 80 - 220.181.7.116 Baiduspider+(+ http://www.baidu.com/search/spider.htm) 200 0 64
IIS日志參數詳解:
date:發出請求時候的日期。
time:發出請求時候的時間。注意:默認情況下這個時間是格林威治時間,比我們的北京時間晚8個小時,下面有說明。
c-ip:客戶端IP地址。
cs-username:用戶名,訪問服務器的已經過驗證用戶的名稱,匿名用戶用連接符-表示。
s-sitename:服務名,記錄當記錄事件運行於客戶端上的Internet服務的名稱和實例的編號。
s-computername:服務器的名稱。
s-ip:服務器的IP地址。
s-port:為服務配置的服務器端口號。
cs-method:請求中使用的HTTP方法,GET/POST。
cs-uri-stem:URI資源,記錄做為操作目標的統一資源標識符(URI),即訪問的頁面文件。
cs-uri-query:URI查詢,記錄客戶嘗試執行的查詢,只有動態頁面需要URI查詢,如果有則記錄,沒有則以連接符-表示。即訪問網址的附帶參數。
sc-status:協議狀態,記錄HTTP狀態代碼,200表示成功,403表示沒有權限,404表示找不到該頁面,具體說明在下面。
sc-substatus:協議子狀態,記錄HTTP子狀態代碼。
sc-win32-status:Win32狀態,記錄Windows狀態代碼。
sc-bytes:服務器發送的字節數。
cs-bytes:服務器接受的字節數。
time-taken:記錄操作所花費的時間,單位是毫秒。
cs-version:記錄客戶端使用的協議版本,HTTP或者FTP。
cs-host:記錄主機頭名稱,沒有的話以連接符-表示。注意:為網站配置的主機名可能會以不同的方式出現在日志文件中,原因是HTTP.sys使用Punycode編碼格式來記錄主機名。
cs(User-Agent):用戶代理,客戶端瀏覽器、操作系統等情況。
cs(Cookie):記錄發送或者接受的Cookies內容,沒有的話則以連接符-表示。
cs(Referer):引用站點,即訪問來源。
HTTP協議狀態碼的含義,協議狀態sc-status,是服務器日記擴展屬性的一項。下面是各狀態碼含義列表:
"100" : Continue 客戶必須繼續發出請求
"101" : witching Protocols 客戶要求服務器根據請求轉換HTTP協議版本  200交易成功
"200" : OK 交易成功
"201" : Created 提示知道新文件的URL
"202" : Accepted 接受和處理、但處理未完成
"203" : Non-Authoritative Information 返回信息不確定或不完整
"204" : No Content 請求收到,但返回信息為空
"205" : Reset Content 服務器完成了請求,用戶代理必須復位當前已經瀏覽過的文件
"206" : Partial Content 服務器已經完成了部分用戶的GET請求
"300" : Multiple Choices 請求的資源可在多處得到
"301" : Moved Permanently 刪除請求數據
"302" : Found 在其他地址發現了請求數據
"303" : See Other 建議客戶訪問其他URL或訪問方式
"304" : Not Modified 客戶端已經執行了GET,但文件未變化
"305" : Use Proxy 請求的資源必須從服務器指定的地址得到
"306" 前一版本HTTP中使用的代碼,現行版本中不再使用
"307" : Temporary Redirect 申明請求的資源臨時性刪除
"400" : Bad Request 錯誤請求,如語法錯誤
"401" : Unauthorized 請求授權失敗
"402" : Payment Required 保留有效ChargeTo頭響應
"403" : Forbidden 請求不答應
"404" : Not Found 沒有發現文件、查詢或URl
"405" : Method Not Allowed 用戶在Request-Line字段定義的方法不答應
"406" : Not Acceptable 根據用戶發送的Accept拖,請求資源不可訪問
"407" : Proxy Authentication Required 類似401,用戶必須首先在代理服務器上得到授權
"408" : Request Time-out 客戶端沒有在用戶指定的餓時間內完成請求
"409" : Conflict 對當前資源狀態,請求不能完成
"410" : Gone 服務器上不再有此資源且無進一步的參考地址
"411" : Length Required 服務器拒絕用戶定義的Content-Length屬性請求
"412" : Precondition Failed 一個或多個請求頭字段在當前請求中錯誤
"413" : Request Entity Too Large 請求的資源大於服務器答應的大小
"414" : Request-URI Too Large 請求的資源URL長於服務器答應的長度
"415" : Unsupported Media Type 請求資源不支持請求項目格式 
"416" : Requested range not satisfiable 請求中包含Range請求頭字段,在當前請求資源范圍內沒有range指示值,請求也不包含If-Range請求頭字段
"417" : Expectation Failed 服務器不滿足請求Expect頭字段指定的期望值,假如是代理服務器,
"500" : Internal Server Error 服務器產生內部錯誤
"501" : Not Implemented 服務器不支持請求的函數
"502" : Bad Gateway 服務器暫時不可用,有時是為了防止發生系統過載
"503" : Service Unavailable 服務器過載或暫停維修
"504" : Gateway Time-out 關口過載,服務器使用另一個關口或服務來響應用戶,等待時間設定值較長
"505" : HTTP Version not supported 服務器不支持或拒絕支請求頭中指定的HTTP版本


 IIS日志

http://www.cnblogs.com/xugang/archive/2007/09/21/901143.html

日志的重要性已經越來越受到程序員的重視,IIS的日志更是不言而喻。

        IIS日志建議使用W3C擴充日志文件格式,這也是IIS 5.0已上默認的格式,可以指定每天記錄客戶IP地址、用戶名、服務器端口、方法、URI資源、URI查詢、協議狀態、用戶代理,每天要審查日志。如圖1所示。  
 


IIS 的WWW日志文件默認位置為 %systemroot%\system32\logfiles\w3svc1\,(例如:我的則是在 C:\WINDOWS\system32\LogFiles\W3SVC1\),默認每天一個日志。

建議不要使用默認的目錄,更換一個記錄日志的路徑,同時設置日志訪問權限,只允許管理員和SYSTEM為完全控制的權限。 

  如圖2所示。




如果發現IIS日志再也不記錄了,解決辦法:
看看你有沒有啟用日志記錄:你的網站--> 屬性 -->“網站”-->“啟用日志”是否勾選。



日志文件的名稱格式是:ex+年份的末兩位數字+月份+日期。
( 如2002年8月10日的WWW日志文件是ex020810.log )

IIS的日志文件都是文本文件,可以使用任何編輯器或相關軟件打開,例如記事本程序,AWStats工具。

開頭四行都是日志的說明信息

#Software        生成軟件
#Version         版本
#Date            日志發生日期
#Fields          字段,顯示記錄信息的格式,可由IIS自定義。

日志的主體是一條一條的請求信息,請求信息的格式是由#Fields定義的,每個字段都有空格隔開。

字段解釋

data                   日期
time                    時間
cs-method          請求方法
cs-uri-stem         請求文件
cs-uri-query       請求參數
cs-username       客戶端用戶名
c-ip                    客戶端IP
cs-version          客戶端協議版本
cs(User-Agent)  客戶端瀏覽器
cs(Referer)         引用頁

下面列舉說明日志文件的部分內容(每個日志文件都有如下的頭4行): 
#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2007-09-21 02:38:17
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status

2007-09-21 01:10:51 10.152.8.17 - 10.152.8.2 80  
GET /seek/images/ip.gif - 200 Mozilla/5.0+(X11;+U;+Linux+2.4.2-2+i686;+en-US;+0.7) 

  上面各行分別清楚地記下了遠程客戶端的:

            連接時間               2007-09-21 01:10:51
                 IP地址              10.152.8.17 - 10.152.8.2   
                端    口               80
            請求動作               GET /seek/images/ip.gif - 200
            返回結果               - 200 (用數字表示,如頁面不存在則以404返回)
        瀏覽器類型              Mozilla/5.0+
系統等相關信息              X11;+U;+Linux+2.4.2-2+i686;+en-US;+0.7


附:IIS的FTP日志

IIS的FTP日志文件默認位置為%systemroot%\system32\logfiles\MSFTPSVC1\,對於絕大多數系統而言(如果安裝系統時定義了系統存放目錄則根據實際情況修改)則是C:\winnt\system32\logfiles\ MSFTPSVC1\,和IIS的WWW日志一樣,也是默認每天一個日志。日志文件的名稱格式是:ex+年份的末兩位數字+月份+日期,如2002年8月10日的WWW日志文件是ex020810.log。它也是文本文件,同樣可以使用任何編輯器打開,例如記事本程序。和IIS的WWW日志相比,IIS的FTP日志文件要豐富得多。下面列舉日志文件的部分內容。 

#Software: Microsoft Internet Information Services 6.0
#Version: 1.0 
#Date: 2002-07-24 01:32:07 
#Fields: time cip csmethod csuristem scstatus 
03:15:20 210.12.195.3 [1]USER administator 331  
(IP地址為210.12.195.2用戶名為administator的用戶試圖登錄) 

03:16:12 210.12.195.2 [1]PASS - 530 (登錄失敗)

03:19:16 210.12.195.2 [1]USER administrator 331  
(IP地址為210.12.195.2用戶名為administrator的用戶試圖登錄) 

03:19:24 210.12.195.2 [1]PASS - 230 (登錄成功) 
03:19:49 210.12.195.2 [1]MKD brght 550 (新建目錄失敗) 
03:25:26 210.12.195.2 [1]QUIT - 550 (退出FTP程序) 

有經驗的用戶可以通過這段FTP日志文件的內容看出,來自IP地址210.12.195.2的遠程客戶從2002年7月24日3:15開始試圖登錄此服務器,先后換了2次用戶名和口令才成功,最終以administrator的賬戶成功登錄。這時候就應該提高警惕,因為administrator賬戶極有可能泄密了,為了安全考慮,應該給此賬戶更換密碼或者重新命名此賬戶。

如何辨別服務器是否有人曾經利用過UNICODE漏洞入侵過呢?可以在日志里看到類似如下的記錄:  
如果有人曾經執行過copy、del、echo、.bat等具有入侵行為的命令時,會有以下類似的記錄: 
13:46:07 127.0.0.1 GET /scripts/..\../winnt/system32/cmd".exe 401 
13:46:07 127.0.0.1 GET /scripts/..\../winnt/system32/cmd".exe 200  
13:47:37 127.0.0.1 GET /scripts/..\../winnt/system32/cmd".exe 401 


相關軟件介紹:

        如果入侵者技術比較高明,會刪除IIS日志文件以抹去痕跡,這時可以到事件查看器看來自W3SVC的警告信息,往往能找到一些線索。當然,對於訪問量特別大的Web服務器,僅靠人工分析幾乎是不可能的--數據太多了!可以借助第三方日志分析工具,如Faststs Analyzer、Logs2Intrusions v.1.0等。此處僅僅介紹一下Logs2Intrusions日志分析工具。它是一個由Turkish Security Network公司開發的自由軟件,是免費的日志分析工具,可以分析IIS 4/5、Apache和其他日志文件。可以到http://www.trsecurity.net/logs2intrusions下載最新的版本。該軟件簡單易用,下面是它的主界面,如圖3所示。 




單擊【Select】按鈕后選擇要分析的日志文件,然后單擊【Next】按鈕,在出現的窗口中單擊【Begin Work】按鈕即可開始分析,如圖4所示。  




如圖4所示,它表明已經發覺入侵的痕跡。如果沒有發現痕跡則彈出如圖5所示的對話框。  




在發現痕跡后單擊【Next】按鈕繼續,如圖6所示。 




【View Report】按鈕是查看報告,【Save Report】按鈕是保存報告,【New Report】按鈕是生成新報告。下面是報告的例子,如圖7所示。 




在"Intrusion Attempt"列中列出了超鏈接,選擇它可以得到Trsecurity公司的專家的建議。和該軟件同一目錄中的sign.txt是入侵行為特征的關鍵字,用戶可以根據新的漏洞的發現而隨時補充。


AWStats簡介:Apache/IIS的日志分析工具
http://www.chedong.com/tech/awstats.html


不同的日志類型,其存儲的位置也不同:
     應用程序日志、安全日志、系統日志、DNS日志默認位置:%systemroot%\system32\config
      Web,Ftp的日志的默認位置在:%systemroot%\system32\logfiles
  具體參看這篇文章: Win2k日志詳細

IIS日志的啟用和設置
  如何在 Windows 2000 中啟用 IIS 日志記錄站點活動

日志分析工具
日志的分析工具很多,AWStats是一個優秀的跨平台的開源日志分析工具
  
Awstats 安裝使用說明 

IIS日志的內容其實是一些記錄的文本
IIS日志分析 

如何在 Windows 2000 中啟用 IIS 日志記錄站點活動 ( MSDN )
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;300390

 


 

IIS連接數

http://baike.baidu.com/link?url=d-ewV1DdfU5PRHjF78_aFVxXKh9DBXD360MQMCt-KJP7Xi7nMB0ZN3i6Oubb4SHf

a 用戶單點下載你的文件,這些連接是按照瞬間計算的。b 用戶打開你的頁面,就算停留在頁面沒有對服務器發出任何請求。c 上面b的情況用戶繼續打開同一個網站的其他頁面,那么在線人數按照用戶最后一次點擊(發出請求)以后的20分鍾計算。d 當你的頁面內存在框架(iframe),那么每多一個框架就要多一倍的在線!e 當用戶打開頁面然后正常關閉瀏覽器,用戶的在線人數也會馬上清除。

 

基本簡介編輯

IIS或 WEB連接數,iis連接數指並發連接數,什么意思呢?
關於IIS連接數,也叫IIS 並發數,是指同一時間內,有多少個對 服務器的請求。只有windows 主機上才會有, 微軟操作系統為了系統安全,規定了系統的用戶連接數,也就包括其中的IIS連接,而在常用 服務器系統windows server2003,可以不限制連接數,但不限制IIS連接數帶來的后果可能就是整台服務器不穩定,即出現宕機的現象,而導致你的網站無法訪問!如果你的網站超過了系統所規定的IIS連接數,就會出現Service Unavailable提示,也會無法訪問了,而當用戶退出訪問以后,IIS會自動釋放資源以便於其他用戶正常訪問。

2分類編輯

要分幾種情況:(以100m空間50人在線為例)
a 用戶單點下載你的文件,結束后正常斷開,這些連接是按照瞬間計算的,就是說你50人的網站瞬間可以接受同時50個點下載
b 用戶打開你的頁面,就算停留在頁面沒有對服務器發出任何請求,那么在用戶打開頁面以后的20分鍾內也都要算一個在線,就是說你50人的網站20分鍾內可以接受不同用戶打開50個頁面
c 上面b的情況用戶繼續打開同一個網站的其他頁面,那么在線人數按照用戶最后一次點擊(發出請求)以后的20分鍾計算,在這個20分鍾內不管用戶怎么點擊(包括新窗口打開)都還是一人在線。
d 當你的頁面內存在 框架(iframe),那么每多一個 框架就要多一倍的在線!因為這相當於用戶同一時間向服務器請求了多個頁面。
e 當用戶打開頁面然后正常關閉 瀏覽器,用戶的在線人數也會馬上清除。
然后了解什么是論壇在線人數。
論壇在線只是計算一定時間內的活動用戶數。
這里的時間用戶可以自己設定,動網論壇默認為40分鍾的相對准確值。
根據上面的說明,顯然論壇在線和iis連接數的概念不同

3解決辦法編輯

1:去掉垃圾的插件版,用標准版!
2:盡量不要采用框架的形式制作頁面!
3:不要放任何的音樂、電影、下載!
4:防止盜連情況的發生!
5:升級購買支持更多在線人數的空間!

4常見答疑編輯

一,關於網站在線人數的問題,例如一個IIS連接數是1000的主機,最多同時允許多少人訪問呢?
IIS連接數是1000的,理論上來說可以達到同時在線一千人,但很難達到同時一千人在線,如上所說IIS連接數是指同一時間內,對服務器發出請求的個數,這樣就會出現如下情況,如在訪問頁面的同時在下載,這至少算是兩個線程了,如果你的網站頁面內存在框架(iframe),那么用戶每訪問的一個頁面,同時又調用其他頁面(框架(iframe))這也就不算一個線程了!綜上,一個IIS連接數是1000的 主機很難達到同時一千人在線的!
二:IIS連接數不限制有好處嗎?
不限制IIS,你的網站就可以同時像服務器發出無限個請求,似乎是一件很好的事情,但任何服務器都是有其承受能力的,這與 主機的硬件設施有關!就算一個網站用一台服務器都會有着IIS連接超過服務器上限的可能,更何況是有着上百個網站在一台服務器下面的 虛擬主機了呢?如果不限制IIS,主機商就需要相應的限制流量,或者 CPU占用率,否則這樣的虛擬主機是一定不能租用的,因為你的網站很可能會在一台穩定性很差的虛擬主機上!
三:如何減少一個用戶平均占用的IIS連接數呢?
減少一個用戶平均占用的IIS連接數也會很好的提高網站同時的在線人數,名典給出的建議就是,盡量讓用戶在同一 瀏覽器窗口進行網站的訪問,即減少使用“在新窗口中打開頁面(_blank)”!這也是減少IIS連接數占用,提高在線人數的一個最為有效的方法!在和其他網站做友情鏈接時盡量不要調用本站的代碼或圖片(可以將圖片上傳至其他服務器存儲),同時減少圖片 盜鏈也是一個值得注意的問題。

5連接數不符合編輯

為什么會出現iis連接數和論壇在線不符合的情況?
現具體分析如下:

論壇

很多 插件不但占服務器資源,而且會使論壇運行變慢(沒有插件可以快一倍以上),同時很占在線人數,有的插件調用很多 框架,少則2、3個,多則4、5個! 甚至有在線播放音樂,這樣一個人在線就相當與很多人在線!而美化版論壇因為使用大量的圖片,也同樣比標准版論壇占用iis數量大。

形式

這樣主頁和論壇要爭奪你的在線人數!

有播放器

一個人在線,然后他在線播放音樂,就占二個人在線!

框架

每一個框架,就多一倍的在線!

在線時間

動網默認為40分鍾,因為論壇在線只是計算一定時間內的活動用戶數,當您設定的時間較小的時候,看起來論壇在線的人數就自然少了!

多個論壇

有的客戶在一個空間里上傳多個論壇,如 bbsbbs1 bbs2 等等 等等
毫無疑問,這幾個論壇也是要爭奪再線人數的!

被人盜鏈

比如:你的論壇有張圖片文件,被粘貼(注意是粘貼不是上傳)到別的論壇!
別的論壇的用戶在瀏覽該文件的時候也算一個在線人數!
尤其是logo連接的時候注意,一定要對方把您的logo上傳到他的空間!

文件

如果用戶用 網絡螞蟻類的 軟件,每一個線程就表示一個在線,非常厲害!
 
 
一個強大的LogParser的UI工具--logparserlizard簡介

Log Parser 2.2

最重要的是,它是完全免費的。
下載地址為:
http://www.brothersoft.com/log-parser-lizard-download-238815.html


需要先安裝LogParser 2.2,下載地址:
http://www.microsoft.com/DownLoads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en

下載后4.9M的一個MSI文件,直接安裝即可。注意安裝位置盡量不要帶空格。

注意:如果LogParser沒有安裝,會運行出錯!



初始界面如圖:





下面以一個檢查IISLog的例子來比較LogParser與LogParserLizard的區別。
某日早上,發現網站阻塞,

第一種速查方案:
迅速啟動LogParser:
進入命令行模式:
輸入:

LOGPARSER -i:IISW3C file:D:\Log\log_SQL\Slowest20FilesInIIS_MySite.sql -o:DataGrid -q:off

其中,Slowest20FilesInIIS_MySite.sql的內容如下:

Code


執行結果如圖:


從圖中可以看出,訪問最慢而且最頻繁的頁面是/Company/List.aspx, 而且集中在一個IP: 116.7.16.249  ,基本可以肯定主·這是有人惡意爬數據
,再輸入:

LOGPARSER -i:IISW3C file:D:\Log\log_SQL\Slowest10IPInIIS_MySite.sql -o:DataGrid -q:off

 其中,Slowest10IPInIIS_MySite.sql的內容如下:

Code




啟動管理工具,禁IP!!!

第二種速查方案:
啟動logParserLizard,在界面中選擇IIS Log--"New Query"--格式選"IIS W3C Logs"
在查詢窗口輸入同樣的SQL,點擊"Generate"

Code

,得到如下結果:

再在查詢窗口輸入

Code

得到下圖:



且慢,右上角,Chart,打開一看,好多的餅圖喲,



處理方法同上
為了下次方便使用,將該query保存即可。
此外 用戶除了前面的六大類型查詢外,還可以自增加新的Group,把自己常用的查詢整理一下。

本文至此結束。有任何問題請聯系邀月3w@live.cn。

 
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM