Au fur et à mesure que le dépassement de capacité augmente, nous commençons à examiner de près nos journaux IIS pour identifier les clients HTTP problématiques - des objets tels que des spiders Web malveillants , des utilisateurs qui ont une grande page à actualiser à la seconde, des scrapers web uniques mal écrits, des astuces les utilisateurs qui essaient d'incrémenter la page comptent un zillion de fois, et ainsi de suite.
J'ai proposé quelques requêtes LogParser qui nous aident à identifier la plupart des bizarreries et des anomalies signalées par un fichier journal IIS.
Utilisation maximale de la bande passante par 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 servi ------------------------------------------------- - ---- ------- ------- /favicon.ico 16774 522 8756028 /content/img/search.png 15342 446 6842532
Top hits par 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
Bande passante maximale et hits par 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
agent utilisateur client totalise les 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
Bande passante maximale par heure par 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 totalise les 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 par heure par 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 client utilisateur-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
Le {nom du fichier} serait bien sûr un chemin d'accès à un fichier journal IIS, tel que
c:\working\sologs\u_ex090708.log
J'ai fait beaucoup de recherches sur le Web pour trouver de bonnes requêtes IIS LogParser et je n'ai trouvé que très peu de ressources. Ces 5, ci-dessus, nous ont énormément aidés à identifier les clients problématiques graves. Mais je me demande - qu'est-ce qui nous manque?
Quels autres moyens existe-t-il pour trancher et dés les journaux IIS (de préférence avec des requêtes LogParser ) pour les extraire à la recherche d'anomalies statistiques? Avez-vous de bonnes requêtes IIS LogParser que vous exécutez sur vos serveurs?