Stack Overflowが拡大するにつれて、IISログを詳しく調べて、問題のあるHTTPクライアント(不正なWebスパイダー、1秒ごとに更新するように設定された大きなページを持つユーザー、不十分な記述の1回限りのWebスクレーパーなど)を特定し始めていますページをインクリメントしようとするユーザーは、何百万回もカウントされます。
IISログファイルをポイントしたときに奇妙な点や異常な点のほとんどを特定するのに役立つLogParserクエリをいくつか作成しました。
URLごとの上位帯域幅使用量
SELECT top 50 DISTINCT
SUBSTR(TO_LOWERCASE(cs-uri-stem), 0, 55) AS Url,
Count(*) AS Hits,
AVG(sc-bytes) AS AvgBytes,
SUM(sc-bytes) as ServedBytes
FROM {filename}
GROUP BY Url
HAVING Hits >= 20
ORDER BY ServedBytes DESC
urlがavgbyteにヒットした -------------------------------------------------- ---- ------- ------- /favicon.ico 16774 522 8756028 /content/img/search.png 15342 446 6842532
URLによる上位ヒット
SELECT TOP 100
cs-uri-stem as Url,
COUNT(cs-uri-stem) AS Hits
FROM {filename}
GROUP BY cs-uri-stem
ORDER BY COUNT(cs-uri-stem) DESC
URLヒット -------------------------------------------------- ---- /content/img/sf/vote-arrow-down.png 14076 /content/img/sf/vote-arrow-up.png 14018
IP / User-Agentによる上位帯域幅とヒット
SELECT TOP 30
c-ip as Client,
SUBSTR(cs(User-Agent), 0, 70) as Agent,
Sum(sc-bytes) AS TotalBytes,
Count(*) as Hits
FROM {filename}
group by c-ip, cs(User-Agent)
ORDER BY TotalBytes desc
クライアントユーザーエージェントtotbytesヒット ------------- ------------------------------------- -------- --------- ----- 66.249.68.47 Mozilla / 5.0 +(compatible; + Googlebot / 2.1; 135131089 16640 194.90.190.41 omgilibot / 0.3 ++ omgili.com 133805857 6447
IP /ユーザーエージェント別の時間別のトップ帯域幅
SELECT TOP 30
TO_STRING(time, 'h') as Hour,
c-ip as Client,
SUBSTR(cs(User-Agent), 0, 70) as Agent,
Sum(sc-bytes) AS TotalBytes,
count(*) as Hits
FROM {filename}
group by c-ip, cs(User-Agent), hour
ORDER BY sum(sc-bytes) desc
hrクライアントユーザーエージェントtotbytesヒット -------------- ----------------------------------- ------ -------- ---- 9 194.90.190.41 omgilibot / 0.3 ++ omgili.com 30634860 1549 10 194.90.190.41 omgilibot / 0.3 ++ omgili.com 29070370 1503
IP /ユーザーエージェント別の時間別上位ヒット
SELECT TOP 30
TO_STRING(time, 'h') as Hour,
c-ip as Client,
SUBSTR(cs(User-Agent), 0, 70) as Agent,
count(*) as Hits,
Sum(sc-bytes) AS TotalBytes
FROM {filename}
group by c-ip, cs(User-Agent), hour
ORDER BY Hits desc
hrクライアントユーザーエージェントがtotbytesをヒット -------------- ----------------------------------- ------ ---- -------- 10 194.90.190.41 omgilibot / 0.3 ++ omgili.com 1503 29070370 12 66.249.68.47 Mozilla / 5.0 +(compatible; + Googlebot / 2.1 1363 13186302
もちろん、{filename}は次のようなIISログファイルへのパスになります。
c:\working\sologs\u_ex090708.log
IISの優れたLogParserクエリのために多くのWeb検索を行いましたが、貴重なものはほとんど見つかりませんでした。上記の5は、深刻な問題のあるクライアントを特定するのに非常に役立ちました。しかし、私は疑問に思っています-私たちは何が欠けていますか?
IISのログを(できればLogParserクエリを使用して)スライスおよびダイス処理して、統計的な異常を調べるために他にどのような方法がありますか?サーバーで実行するIIS LogParserクエリはありますか?