Utilisation de Logparser pour les logs IIS : Status code, erreurs 404, erreurs 500, fréquentation

Bonjour,

Voici quelques requêtes Logparser utiles pour la surveillance d’un serveur Web.

Bonne utilisation,

Sebastien.

 

Pourcentage des codes de retour

StatusCode.sql

SELECT sc-status as Statut, COUNT(*) as NbRequetes, MUL(PROPCOUNT(*),100) as % FROM ex\*.log GROUP BY sc-status

A partir des données de sortie, vous pouvez facilement créer un graphique (cf. ci-dessous) avec un copier/coller dans Excel par exemple.

SatusCode

 

Erreurs 404 - Fichiers inexistants

Url404.sql

SELECT cs-uri-stem as Url, COUNT(*) as NbRequetes FROM ex\*.log WHERE sc-status = 404 GROUP BY cs-uri-stem

Ce type de requête permet d’identifier les pages/fichiers/images n’existant pas, bien qu’étant toujours référencés par des pages de l’application. Vous pouvez aussi repérer par ce biais, les urls mal orthographiées.

 

Erreurs 500 - Erreurs ASP.NET

Url500.sql

SELECT cs-uri-stem as Url, COUNT(*) as NbRequetes FROM ex\*.log WHERE sc-status = 500 GROUP BY cs-uri-stem

Le but est de pouvoir rapidement vérifier si une url/page est la source d’une grande partie des erreurs du site Web.

Url500Completes.sql

SELECT cs-method as Methode, UrlComplete, sc-substatus as SousStatut, sc-win32-status as Win32Statut USING STRCAT(cs-uri-stem, REPLACE_IF_NOT_NULL(cs-uri-query, STRCAT('?', cs-uri-query))) as UrlComplete FROM ex\*.log WHERE sc-status = 500

En ajoutant, les informations sur le verbe HTTP et la querystring, il est possible de commencer les investigations.

 

Fréquentation - Nombre de requêtes par heure

NbRequetesParHeure.sql

SELECT TO_LOCALTIME(QUANTIZE(time,3600)) AS Heure, COUNT(*) AS NbRequetes FROM ex\*.log GROUP BY Heure ORDER BY Heure ASC

Cette requête est intéressante car elle utilise la fonction "QUANTIZE" qui permet dans ce cas, de regrouper tous les accès par tranches de 3600s (1h). Cela nous permet de visualiser l’évolution de la fréquentation du site Web.

FrenquentationTXT

FrenquentationGraphique

 

Comme décrit dans mon précédent post, pour utiliser ces requêtes, il vous suffit de lancer le fichier "LancerLogParserSurLogsIIS.cmd" avec le nom du fichier .sql en entrée et le nom du fichier .txt en sortie. Par exemple :

LancerLogParserSurLogsIIS.cmd Url404.sql Url404.txt

Pour rappel, le fichier LancerLogParserSurLogsIIS.cmd est :

Logparser.exe file:%1 -i:IISW3C -o:TSV > %2