iis日志分析是對(duì)網(wǎng)站檢測(cè)的一個(gè)很重要的方法,從而可以得到很多對(duì)站長有用的幫助信息,從而有針對(duì)性的對(duì)網(wǎng)站進(jìn)行優(yōu)化,從而提高網(wǎng)站的流量。
怎么樣刪除IIS的日志文件
首先到iis管理里找到這個(gè)網(wǎng)站log日志的目錄具體位置,然后停止iis服務(wù),到那個(gè)目錄下把所有文件刪除就可以了。
iis日志如何解讀
如:
2010-06-22 12:38:52 W3SVC1 III-3465764CAS8 219.129.216.49 GET /k1719231/ - 80 - 61.135.168.13 HTTP/1.1 Baiduspider-cpro - - www.XXX.net 200 0 0 26059 142 531 200 0 0 26059 142 531 這六個(gè)參數(shù)是什么意思?
首先是時(shí)間:2010-06-22 12:38:52 機(jī)器編號(hào)為W3SVC1 III-3465764CAS8 219.129.216.49 是網(wǎng)站的IP GET是觸發(fā)事件,80是端口號(hào),61.135.168.13 是蜘蛛的IP,Baiduspider是百度的蜘蛛,200 0 0訪問成功, 26059 142 531 是蜘蛛與網(wǎng)站對(duì)話的時(shí)間與下載的數(shù)據(jù)以及花了多少時(shí)間。連在一起就是2010-06-22 的中午12點(diǎn)38分52秒的時(shí)候一個(gè)編號(hào)為W3SVC1 III-3465764CAS8 的蜘蛛通過80端口進(jìn)入網(wǎng)站成功訪問并下載了26059B的數(shù)據(jù),花費(fèi)了142MS。。
解析IIS日志教程:
比如我可以運(yùn)行下面的命令行(說明:為了不影響頁面寬度我將命令文本換行了):
"C:\Program Files\Log Parser 2.2\LogParser.exe" -i:IISW3C -o:DATAGRID
"SELECT c-ip,cs-method,s-port,cs-uri-stem,sc-status,sc-win32-status,
sc-bytes,cs-bytes,time-taken FROM u_ex130615.log"
現(xiàn)在就可以以表格形式來閱讀IIS日志了:
說明:我不推薦用這種方法來分析IIS日志,原因有二點(diǎn):
1. 慢:當(dāng)日志文件稍大一點(diǎn)的時(shí)候,用它來分析就比較浪費(fèi)時(shí)間了(尤其是需要多次統(tǒng)計(jì)時(shí))。
2. 不方便:它支持的查詢語法不夠豐富,沒有像SQL Server針對(duì)數(shù)據(jù)表查詢那樣全面。
推薦的IIS日志分析方法:
雖然Log Parser支持將解析的IIS日志以表格形式供人閱讀,但是有時(shí)候我們需要再做一些細(xì)致分析時(shí),可能會(huì)按不同的方式進(jìn)行【多次】查詢, 對(duì)于這種需求,如果每次查詢都直接運(yùn)行Log Parser,你會(huì)浪費(fèi)很多時(shí)間。 幸運(yùn)的是,Log Parser支持將解析結(jié)果以多種格式導(dǎo)出(以下為幫助文檔截圖):
在此,我建議選擇輸出格式為 SQL 。
注意:這里的SQL并不是指SQLSERVER,而是指所有提供ODBC訪問接口的數(shù)據(jù)庫。
我可以使用下面的命令將IIS日志導(dǎo)入到SQLSERVER中(說明:為了不影響頁面寬度我將命令文本換行了):
"C:\Program Files\Log Parser 2.2\logparser.exe"
"SELECT * FROM 'D:\Temp\u_ex130615.log' to MyMVC_WebLog" -i:IISW3C -o:SQL
-oConnString:"Driver={SQL Server};server=localhost\sqlexpress;database=MyTestDb;Integrated Security=SSPI"
-createtable:ON
導(dǎo)入完成后,我們就可以用熟悉的SQLSERVER來做各種查詢和統(tǒng)計(jì)分析了,例如下面的查詢:
SELECT cip,csmethod,sport,csuristem,scstatus,scwin32status,scbytes,csbytes,timetaken
FROM dbo.MyMVC_WebLog
如果如下:
注意:
1. IIS日志在將結(jié)果導(dǎo)出到SQLSERVER時(shí),字段名中不符合標(biāo)識(shí)符規(guī)范的字符將會(huì)刪除。
例如:c-ip 會(huì)變成 cip, s-port 會(huì)變成 sport 。
2. IIS日志中記錄的時(shí)間是UTC時(shí)間,而且把日期和時(shí)間分開了,導(dǎo)出到SQLSERVER時(shí),會(huì)生成二個(gè)字段:
date, time這二個(gè)字段看起來很不舒服,對(duì)吧?
我也很反感這個(gè)結(jié)果,下面來說說的二種解決方法:
1. 在SQLSERVER中增加一列,然后把UTC時(shí)間換成本地時(shí)區(qū)的時(shí)間,T-SQL腳本如下:
alter table MyMVC_WebLog add RequestTime datetime
go
update MyMVC_WebLog set RequestTime=dateadd(hh,8,convert(varchar(10),date,120)
+ ' ' + convert(varchar(13),time,114))
2. 直接在導(dǎo)出IIS日志時(shí),把時(shí)間轉(zhuǎn)換過來,此時(shí)要修改命令:
"C:\Program Files\Log Parser 2.2\logparser.exe"
"SELECT TO_LOCALTIME(TO_TIMESTAMP(ADD(TO_STRING(date, 'yyyy-MM-dd '), TO_STRING(time, 'hh:mm:ss')),
'yyyy-MM-dd hh:mm:ss')) AS RequestTime, * FROM 'D:\Temp\u_ex130615.log' to MyMVC_WebLog2"
-i:IISW3C -o:SQL
-oConnString:"Driver={SQL Server};server=localhost\sqlexpress;database=MyTestDb;Integrated Security=SSPI"
-createtable:ON
再看這三列:
select RequestTime, date, time from MyMVC_WebLog2
這樣處理后,你就可以直接把date, time這二列刪除了(你也可以在導(dǎo)出IIS日志時(shí)忽略它們,但要明確指出每個(gè)字段名)。
命令行模式速查方案:
迅速啟動(dòng)LogParser:
進(jìn)入命令行模式:
輸入: LOGPARSER -i:IISW3C file:D:/Log/log_SQL/Slowest10IPInIIS_MySite.sql -o:DataGrid -q:off
其中,Slowest20FilesInIIS_MySite.sql的內(nèi)容如下:
[ruby] view plaincopyprint?
--rem 運(yùn)行最慢的20個(gè)頁面
--Finding the 20 slowest pages in your Web site
Select Top 20
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
D:/Log/log_SQL/LogFiles/ex*.log
Order by time-taken desc
執(zhí)行結(jié)果如圖:
從圖中可以看出,訪問最慢而且最頻繁的頁面是/Company/List.aspx, 而且集中在一個(gè)IP: 116.7.16.249 ,基本可以肯定主·這是有人惡意爬數(shù)據(jù) ,再輸入:
LOGPARSER -i:IISW3C file:D:/Log/log_SQL/Slowest10IPInIIS_MySite.sql -o:DataGrid -q:off
其中,Slowest10IPInIIS_MySite.sql的內(nèi)容如下:
[ruby] view plaincopyprint?
--rem 訪問量最大的IP的訪問明細(xì)
Select cs-uri-stem as [RequestURI],count(cs-uri-stem) as VisitCounts,c-ip as [ClientIP]
FROM
D:Log/log_SQL/LogFiles/ex090829.log
group by cs-uri-stem,c-ip
ORDER BY VisitCounts DESC
啟動(dòng)管理工具,禁IP。!
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版