86 votos

¿Recomienda LogParser consultas para IIS monitoreo?

Como Stack Overflow crece, estamos empezando a mirar de cerca a nuestros registros de IIS para identificar los problemas de los clientes HTTP, cosas como rogue arañas web, los usuarios que tienen un gran conjunto de páginas para que se actualice cada segundo, escrito mal el uno-off de la web raspadores, tricksy usuarios que intentan incremento del número de páginas de un millón de veces, y así sucesivamente.

Yo he venido para arriba con un par de LogParser las consultas que nos ayudan a identificar la mayoría de las rarezas y las anomalías cuando señaló en un archivo de registro de IIS.

Top de uso de ancho 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 hits avgbyte sirve
------------------------------------------------- ----- ------- -------
/favicon.ico 16774 522 8756028
/content/img/búsqueda.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
url éxitos
------------------------------------------------- -----
/content/img/sf/voto-flecha-abajo.png 14076
/content/img/sf/voto-flecha -.png 14018

Mayor ancho de banda y visitas por IP / Usuario-Agente

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 de agente de usuario totbytes éxitos
------------- --------------------------------------------- --------- -----
66.249.68.47 Mozilla/5.0+(compatible;+Googlebot/2.1; 135131089 16640
194.90.190.41 omgilibot/0.3++omgili.com 133805857 6447

Mayor ancho de banda por hora por IP / Usuario-Agente

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 de agente de usuario totbytes éxitos
-- ------------- ----------------------------------------- -------- ----
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 / Usuario-Agente

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 cliente de agente de usuario golpea 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 {nombre de archivo} supuesto sería una ruta de acceso a un IIS logfile, tales como

c:\working\sologs\u_ex090708.log

Hice un montón de búsquedas en la web para la buena IIS LogParser consultas y se encontró muy poco. Estos 5, supra, nos han ayudado enormemente en la identificación de problema grave clientes. Pero me pregunto -- ¿qué nos falta?

¿Qué otras maneras existen para la rebanada y dados los registros de IIS (preferiblemente con LogParser consultas) a las minas de anomalías estadísticas? ¿Tienes alguna buena IIS LogParser consultas que se ejecutan en los servidores?

19voto

Bob Puntos 34449

Un buen indicador para el pirateo de actividades u otro tipo de agresiones es el número de errores por hora. La siguiente secuencia de comandos devuelve las fechas y horas en las que había más de 25 códigos de error devueltos. Ajustar el valor dependiendo de la cantidad de tráfico en el sitio (y la calidad de la aplicación web ;-) ).

SELECT date as Date, QUANTIZE(time, 3600) AS Hour, 
       sc-status as Status, count(*) AS ErrorCount
FROM   {filename} 
WHERE  sc-status >= 400 
GROUP BY date, hour, sc-status 
HAVING ErrorCount > 25
ORDER BY ErrorCount DESC

El resultado podría algo como esto:

Fecha Hora Estado ErrorCount
---------- -------- ------ ------
2009-07-24 18:00:00 404 187
2009-07-17 13:00:00 500 99
2009-07-21 21:00:00 404 80
2009-07-03 04:00:00 404 45
...

La siguiente consulta detecta un número inusualmente alto de visitas en un solo URL en una dirección IP. En este ejemplo he elegido 500, pero puede que tenga que cambiar la consulta para los casos extremos (excluyendo la dirección IP de Google de Londres, por ejemplo ;-) .)

SELECT DISTINCT date AS Date, cs-uri-stem AS URL,
      c-ip AS IPAddress, Count(*) AS Hits
FROM  {filename}
GROUP BY date, c-ip, cs-uri-stem
HAVING Hits > 500
ORDER BY Hits Desc
Fecha URL IPAddress Éxitos
---------- ----------------------------------- --------------- ----
2009-07-24 /inicio de Sesión.aspx 111.222.111.222 1889
2009-07-12 /AccountUpdate.aspx 11.22.33.44 973
2009-07-19 /inicio de Sesión.aspx 123.231.132.123 821
2009-07-21 /Admin.aspx 44.55.66.77 571
...

6voto

Adam Brand Puntos 4827

Una cosa que usted podría considerar la posibilidad de filtrar el tráfico legítimo (y ampliar su ámbito de aplicación) es permitir a cs(Cookie) en sus registros de IIS, añadir un poco de código que establece una galleta pequeña con javascript, y agregar WHERE cs(Cookie)=''.

Debido a su pequeño pedazo de código, cada usuario debe tener una cookie a menos que manualmente deshabilitado las cookies (un pequeño porcentaje de personas puede hacer) o a menos que el usuario es en realidad un robot que no soporta Javascript (por ejemplo, wget, httpclient, etc. no soportan Javascript).

Sospecho que si un usuario tiene un alto volumen de actividad, pero no aceptar cookies y tener activado el javascript, que son más propensos a ser un usuario legítimo, mientras que si usted encuentra un usuario con un alto volumen de actividad, pero ninguna cookie/soporte de javascript, que son más propensos a ser un bot.

6voto

James Skemp Puntos 450

Lo siento, no puedo comentar aún así estoy obligado a contestar.

Hay un error de menor importancia con el 'Top uso de ancho de banda por URL de consulta. Mientras que la mayoría del tiempo que estaría bien tomar sus pedidos de una página y se multiplica por el tamaño del archivo, en este caso, ya que no estás prestando atención a cualquier consulta de parámetros, vamos a correr en algunos leves a muy cifras inexactas.

Para un valor más exacto, basta con hacer una SUMA(sc-bytes) en lugar de la MUL(Golpes, AvgBytes) como ServedBytes.

6voto

JCCyC Puntos 328

5voto

Chris Roberts Puntos 7543

Este tipo tiene sobre una docena de consultas útiles:

http://logparserplus.com/examples/queries.aspx

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: