A medida que crece el desbordamiento de pila, comenzamos a mirar de cerca nuestros registros de IIS para identificar clientes HTTP problemáticos, como arañas web no autorizadas , usuarios que tienen una página grande configurada para actualizar cada segundo, raspadores web mal escritos, trucos Los usuarios que intentan incrementar la página cuentan un billón de veces, y así sucesivamente.
Se me ocurrieron algunas consultas de LogParser que nos ayudan a identificar la mayoría de las rarezas y anomalías cuando se apunta a un archivo de registro de IIS.
Uso de ancho 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 servido ------------------------------------------------- - ---- ------- ------- /favicon.ico 16774 522 8756028 /content/img/search.png 15342 446 6842532
Top 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 url ------------------------------------------------- - ---- /content/img/sf/vote-arrow-down.png 14076 /content/img/sf/vote-arrow-up.png 14018
Ancho de banda superior y 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
cliente usuario-agente 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
Ancho 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 usuario-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
Top 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
El agente de usuario del cliente hr alcanza 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
El {filename}, por supuesto, sería una ruta a un archivo de registro IIS, como
c:\working\sologs\u_ex090708.log
Hice muchas búsquedas web para buenas consultas de IIS LogParser y encontré muy poco. Estos 5, arriba, nos han ayudado enormemente a identificar clientes con problemas serios. Pero me pregunto: ¿qué nos estamos perdiendo?
¿Qué otras formas hay de cortar y cortar los registros de IIS (preferiblemente con consultas de LogParser ) para extraerlos en busca de anomalías estadísticas? ¿Tiene alguna buena consulta de IIS LogParser que ejecute en sus servidores?