Während der Stapelüberlauf zunimmt, untersuchen wir unsere IIS-Protokolle genau, um problematische HTTP-Clients zu identifizieren - Dinge wie betrügerische Web-Spider , Benutzer, die jede Sekunde eine große Seite aktualisieren müssen, schlecht geschriebene einmalige Web-Scraper, trickreich Benutzer, die versuchen, die Anzahl der Seiten zu erhöhen, zählen zig Mal und so weiter.
Ich habe mir ein paar LogParser- Abfragen ausgedacht , mit denen wir die meisten Unregelmäßigkeiten und Abnormalitäten identifizieren können, wenn wir auf eine IIS-Protokolldatei verweisen.
Höchste Bandbreitennutzung nach 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 geliefert ------------------------------------------------- - ---- ------- ------- /favicon.ico 16774 522 8756028 /content/img/search.png 15342 446 6842532
Top-Treffer nach 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 trifft ------------------------------------------------- - ---- /content/img/sf/vote-arrow-down.png 14076 /content/img/sf/vote-arrow-up.png 14018
Top Bandbreite und Treffer durch 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-Benutzer-Agent-Gesamttreffer ------------- ------------------------------------- -------- --------- ----- 66.249.68.47 Mozilla / 5.0 + (kompatibel; + Googlebot / 2.1; 135131089 16640 194.90.190.41 omgilibot / 0.3 ++ omgili.com 133805857 6447
Spitzenbandbreite pro Stunde nach 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 client user-agent Gesamttreffer - ------------- ----------------------------------- ------ -------- ---- 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 pro Stunde von 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
Der Benutzeragent des hr-Clients schlägt insgesamt Byte zu - ------------- ----------------------------------- ------ ---- -------- 10 194.90.190.41 omgilibot / 0.3 ++ omgili.com 1503 29070370 12 66.249.68.47 Mozilla / 5.0 + (kompatibel; + Googlebot / 2.1 1363 13186302
Der {Dateiname} wäre natürlich ein Pfad zu einer IIS-Protokolldatei, wie z
c:\working\sologs\u_ex090708.log
Ich habe viele Websuchen nach guten IIS-LogParser-Abfragen durchgeführt und dabei wertvolle Kleinigkeiten gefunden. Diese 5 oben haben uns enorm dabei geholfen, Kunden mit schwerwiegenden Problemen zu identifizieren. Aber ich frage mich - was fehlt uns?
Welche anderen Möglichkeiten gibt es, um die IIS-Protokolle (vorzugsweise mit LogParser-Abfragen ) aufzuschlüsseln und auf statistische Anomalien zu untersuchen? Haben Sie gute IIS LogParser-Abfragen, die Sie auf Ihren Servern ausführen?