À medida que o Stack Overflow aumenta, começamos a examinar atentamente os logs do IIS para identificar clientes HTTP com problemas - coisas como spiders maliciosos da web , usuários que têm uma página grande configurada para atualizar a cada segundo, mal redigidos para uma única página, usuários enganadores que tentam incrementar a contagem de páginas um zilhão de vezes adiante.
Desenvolvi alguns LogParser consultas que nos ajudam a identificar a maioria das esquisitices e anormalidades quando apontadas para um arquivo de log do IIS.
Uso da largura de banda superior por 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 hits avgbyte served ------------------------------------------------- ----- ------- ------- /favicon.ico 16774 522 8756028 /content/img/search.png 15342 446 6842532
Principais acessos por 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 hits ------------------------------------------------- ----- /content/img/sf/vote-arrow-down.png 14076 /content/img/sf/vote-arrow-up.png 14018
Maior largura de banda e hits por 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
client user-agent totbytes hits ------------- --------------------------------------------- --------- ----- 66.249.68.47 Mozilla/5.0+(compatible;+Googlebot/2.1; 135131089 16640 194.90.190.41 omgilibot/0.3++omgili.com 133805857 6447
Largura de banda superior por hora por IP / Agente de usuário
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 client user-agent totbytes hits -- ------------- ----------------------------------------- -------- ---- 9 194.90.190.41 omgilibot/0.3++omgili.com 30634860 1549 10 194.90.190.41 omgilibot/0.3++omgili.com 29070370 1503
Principais ocorrências por hora por IP / Agente de usuário
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 client user-agent hits 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
O {nome do arquivo}, claro, seria um caminho para um arquivo de log do IIS, como
c:\working\sologs\u_ex090708.log
Eu fiz muitas pesquisas na Web para obter boas consultas do LogParser do IIS e descobri muito pouco. Estes 5, acima, nos ajudaram tremendamente na identificação de clientes problemáticos graves. Mas eu estou me perguntando - o que estamos perdendo?
Quais outras maneiras existem para cortar e cortar os logs do IIS (de preferência com consultas LogParser ) para minerá-los para anomalias estatísticas? Você tem alguma boa consulta do IIS LogParser executada em seus servidores?