分析IIS日志
日志服務(wù)支持采集IIS日志,并進(jìn)行多維度分析。本文通過PV、UV、訪問地域分布、錯(cuò)誤請(qǐng)求、請(qǐng)求方法等維度分析IIS日志,以評(píng)估網(wǎng)站訪問情況。
前提條件
已采集IIS日志。具體操作,請(qǐng)參見使用IIS配置模式采集日志。
在采集過程中,日志服務(wù)已根據(jù)日志內(nèi)容自動(dòng)生成索引。如果您要修改索引,請(qǐng)參見創(chuàng)建索引。
背景信息
IIS是一款主流的網(wǎng)站服務(wù)器,具備簡單易用、安全性能高等優(yōu)勢。當(dāng)您選用IIS搭建網(wǎng)站時(shí),IIS日志是運(yùn)維網(wǎng)站的重要信息。
日志服務(wù)推薦選用W3C日志格式,W3C配置格式如下所示:
logExtFileFlags="Date, Time, ClientIP, UserName, SiteName, ComputerName, ServerIP, Method, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent, BytesRecv, TimeTaken, ServerPort, UserAgent, Cookie, Referer, ProtocolVersion, Host, HttpSubStatus"
IIS日志樣例如下所示:
#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2020-09-08 09:30:26
#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 sc-bytes cs-bytes time-taken
2009-11-26 06:14:21 W3SVC692644773 125.67.67.* GET /index.html - 80 - 10.10.10.10 Baiduspider+(+http://www.example.com)200 0 64 185173 296 0
字段前綴說明
前綴
說明
s-
服務(wù)器操作
c-
客戶端操作
cs-
客戶端到服務(wù)器的操作
sc-
服務(wù)器到客戶端的操作
各個(gè)字段說明
字段
說明
date
客戶端發(fā)送請(qǐng)求的日期。
time
客戶端發(fā)送請(qǐng)求的時(shí)間。
s-sitename
客戶端所訪問的站點(diǎn)的Internet服務(wù)和實(shí)例的號(hào)碼。
s-computername
生成日志的服務(wù)器名稱。
s-ip
生成日志的服務(wù)器的IP地址。
cs-method
請(qǐng)求?方法,例如:GET、POST。
cs-uri-stem
?URI資源,表示請(qǐng)求訪問的地址。
cs-uri-query
URI查詢,表示查詢HTTP請(qǐng)求中半角問號(hào)(?)后的信息。
s-port
服務(wù)器端口號(hào)。
cs-username
通過驗(yàn)證的域或用戶名。
如果是通過身份驗(yàn)證的用戶,格式為
域\用戶名
。如果是匿名用戶,顯示短劃線(-)。
c-ip
訪問服務(wù)器的客戶端真實(shí)IP地址。
cs-version
協(xié)議版本,例如:HTTP 1.0、HTTP 1.1。
cs(User-Agent)
客戶端使用的瀏覽器。
Cookie
發(fā)送或接受的Cookie內(nèi)容,如果沒有Cookie,則顯示短劃線(-)。
referer
表示用戶訪問的前一個(gè)站點(diǎn)。
cs-host
主機(jī)信息。
sc-status
?HTTP協(xié)議返回狀態(tài)。
sc-substatus
HTTP子協(xié)議的狀態(tài)。
sc-win32-status
?使用Windows術(shù)語表示的操作狀態(tài)。
sc-bytes
?服務(wù)器發(fā)送的字節(jié)數(shù)。
cs-bytes
?服務(wù)器接收的字節(jié)數(shù)。
time-taken
?請(qǐng)求所花費(fèi)的時(shí)間,單位:毫秒。
操作步驟
在Project列表區(qū)域,單擊目標(biāo)Project。
在控制臺(tái)左側(cè),單擊日志存儲(chǔ),在日志庫列表中單擊目標(biāo)Logstore。
輸入查詢和分析語句,然后單擊最近15分鐘,設(shè)置查詢和分析的時(shí)間范圍。
更多信息,請(qǐng)參見步驟一:輸入查詢和分析語句。
通過IP地址分析訪問地域。
*| select ip_to_geo("c-ip") as country, count(1) as c group by ip_to_geo("c-ip") limit 100
統(tǒng)計(jì)PV和UV。
*| select approx_distinct("c-ip") as uv ,count(1) as pv , date_format(date_trunc('hour', __time__), '%m-%d %H:%i') as time group by date_format(date_trunc('hour', __time__), '%m-%d %H:%i') order by time limit 1000
統(tǒng)計(jì)HTTP請(qǐng)求狀態(tài)碼的占比。
*| select count(1) as pv ,"sc-status" group by "sc-status"
統(tǒng)計(jì)流量的流入和流出情況。
*| select sum("sc-bytes") as net_out, sum("cs-bytes") as net_in ,date_format(date_trunc('hour', time), '%m-%d %H:%i') as time group by date_format(date_trunc('hour', time), '%m-%d %H:%i') order by time limit 10000
統(tǒng)計(jì)各種請(qǐng)求方法的占比。
*| select count(1) as pv ,"cs-method" group by "cs-method"
統(tǒng)計(jì)各種瀏覽器的占比。
*| select count(1) as pv, case when "user-agent" like '%Chrome%' then 'Chrome' when "user-agent" like '%Firefox%' then 'Firefox' when "user-agent" like '%Safari%' then 'Safari' else 'unKnown' end as "user-agent" group by case when "user-agent" like '%Chrome%' then 'Chrome' when "user-agent" like '%Firefox%' then 'Firefox' when "user-agent" like '%Safari%' then 'Safari' else 'unKnown' end order by pv desc limit 10
統(tǒng)計(jì)訪問數(shù)量前十的地址。
*| select count(1) as pv, split_part("cs-uri-stem",'?',1) as path group by split_part("cs-uri-stem",'?',1) order by pv desc limit 10