À medida que o estouro de pilha cresce, começamos a examinar atentamente nossos logs do IIS para identificar clientes HTTP problemáticos - coisas como web spiders desonestos , usuários que possuem uma página grande configurada para atualizar a cada segundo, scrapers únicos e mal escritos, complicados os usuários que tentam aumentar a página contam um zilhão de vezes e assim por diante.
Fiz algumas consultas ao LogParser que nos ajudam a identificar a maioria das esquisitices e anormalidades quando apontadas para um arquivo de log do IIS.
Principal uso de largura de banda 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 atinge avgbyte exibido ------------------------------------------------- - ---- ------- ------- /favicon.ico 16774 522 8756028 /content/img/search.png 15342 446 6842532
Principais hits 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
hits de URL ------------------------------------------------- - ---- /content/img/sf/vote-arrow-down.png 14076 /content/img/sf/vote-arrow-up.png 14018
Largura de banda e hits principais 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
hits de totbytes do agente usuário do cliente ------------- ------------------------------------- -------- --------- ----- 66.249.68.47 Mozilla / 5.0 + (compatível; + Googlebot / 2.1; 135131089 16640 194.90.190.41 omgilibot / 0.3 ++ omgili.com 133805857 6447
Largura de banda superior por hora por IP / User-Agent
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 cliente-agente 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 hits por hora por IP / User-Agent
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 user user agent atinge totbytes - ------------- ----------------------------------- ------ ---- -------- 10 194.90.190.41 omgilibot / 0.3 ++ omgili.com 1503 29070370 12 66.249.68.47 Mozilla / 5.0 + (compatível; + Googlebot / 2.1 1363 13186302
O {filename}, é 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 IIS LogParser e achei muito pouco. Esses 5, acima, nos ajudaram tremendamente a identificar clientes com problemas sérios. Mas eu estou pensando - o que estamos perdendo?
Que outras maneiras existem para dividir e cortar os logs do IIS (de preferência com consultas do LogParser ) para explorá-los em busca de anomalias estatísticas? Você tem alguma consulta boa do IIS LogParser executada em seus servidores?