西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

IIS日志分析工具(Log Parser)

2.2 安裝版
  • IIS日志分析工具(Log Parser)2.2 安裝版
  • 軟件大小:1.1M
  • 更新時間:2013-06-16 23:25
  • 軟件語言:英文
  • 軟件廠商:
  • 軟件類別:國外軟件 / 免費軟件 / 站長工具
  • 軟件等級:4級
  • 應(yīng)用平臺:WinAll, WinXP
  • 官方網(wǎng)站:暫無
  • 應(yīng)用備案:
好評:50%
壞評:50%

軟件介紹

日志分析,特別是IIS日志,一般人都會想到LogParser工具,的確很強。Log Parser 是一個專門解析IIS日志的工具,我們可以用它來查看日志中的信息。

解析IIS日志教程:

比如我可以運行下面的命令行(說明:為了不影響頁面寬度我將命令文本換行了):

"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日志,原因有二點:

1. 慢:當(dāng)日志文件稍大一點的時候,用它來分析就比較浪費時間了(尤其是需要多次統(tǒng)計時)。
2. 不方便:它支持的查詢語法不夠豐富,沒有像SQL Server針對數(shù)據(jù)表查詢那樣全面。

推薦的IIS日志分析方法:

雖然Log Parser支持將解析的IIS日志以表格形式供人閱讀,但是有時候我們需要再做一些細(xì)致分析時,可能會按不同的方式進(jìn)行【多次】查詢, 對于這種需求,如果每次查詢都直接運行Log Parser,你會浪費很多時間。 幸運的是,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)計分析了,例如下面的查詢:

SELECT cip,csmethod,sport,csuristem,scstatus,scwin32status,scbytes,csbytes,timetaken
FROM dbo.MyMVC_WebLog 如果如下:

注意:
1. IIS日志在將結(jié)果導(dǎo)出到SQLSERVER時,字段名中不符合標(biāo)識符規(guī)范的字符將會刪除。
   例如:c-ip 會變成 cip, s-port 會變成 sport 。
2. IIS日志中記錄的時間是UTC時間,而且把日期和時間分開了,導(dǎo)出到SQLSERVER時,會生成二個字段:
   

date, time這二個字段看起來很不舒服,對吧?
我也很反感這個結(jié)果,下面來說說的二種解決方法:

1. 在SQLSERVER中增加一列,然后把UTC時間換成本地時區(qū)的時間,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日志時,把時間轉(zhuǎn)換過來,此時要修改命令:

"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日志時忽略它們,但要明確指出每個字段名)。

命令行模式速查方案:

迅速啟動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 運行最慢的20個頁面  

--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, 而且集中在一個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  


啟動管理工具,禁IP。!

軟件標(biāo)簽: IIS日志分析 日志分析

其他版本下載

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評論 > 字?jǐn)?shù): 0/500

TOP
軟件下載