Analyse des fichiers de logs avec LogParser


Bonjour à tous,

Savez-vous que Microsoft fournit un outil très puissant pour traiter tous les fichiers logs, même les siens 🙂 ?

Cette outil s’appelle "LogParser" et se présente sous deux formes :

  • Un exécutable (x1) utilisable (x2) et automatisable (x3) en ligne de commandes
  • Une dll COM que l’on peut référencer dans nos projets pour développer une solution profitant des fonctionnalités de l’outil

Les possibilités et les scénarios d’utilisation sont vraiment nombreux. En plus, l’outil est impressionnant de rapidité !

 

En deux mots, le moteur de LogParser prend en entrée plusieurs formats comme les fichiers texte, les journaux d’évènements, ou bien directement le système de fichiers ou encore l’active Directory. Concernant les fichiers plats, il n'y a pas de restriction : les fichiers de logs avec les séparateurs habituels (point virgule, virgule, tabulation, etc...) sont pris en charge.

Nous manipulons dans la requête directement le nom des champs (par exemple : "sc-status", "time-taken", etc...).

Le moteur de LogParser permet d’éxécuter une requête de type SQL pour filtrer, ordonner, consolider les données et en sortir les résultats sous différentes formes. Il est même possible de faire directement l'insertion des données dans une base SQL Server ou de générer des graphiques. 

MoteurLogParser

 

Pour simplifier l'utilisation de l'outil en ligne de commande, vous pouvez créer un fichier cmd prenant en entrée le fichier contenant le requête SQL et le nom du fichier de sortie :

LancerLogParserSurLogsIIS.cmd

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

 

En exemple, voici une requête donnant les moyennes du temps total d'exécution des requêtes faites sur un site Web :

TempsExecutionMoyen.sql

SELECT AVG(time-taken) as TempsExecutionMoyen, COUNT(*) as PourNbRequetes, cs-uri-stem as Url
FROM ex\*.log
WHERE
    (cs-uri-stem not like '%.gif')
    and (cs-uri-stem not like '%.css')
    and (cs-uri-stem not like '%.js')
    and (cs-uri-stem not like '%.jpg')
GROUP BY
    Url
ORDER BY
    TempsExecutionMoyen DESC

 

Il suffit ensuite de lancer le fichier cmd :

LancerLogParserSurLogsIIS.cmd TempsExecutionMoyen.sql TempsExecutionMoyen.txt

 

Le résultat est sous la forme suivante (fichier avec séparation par tabulation) :

TempsExecutionMoyen    PourNbRequetes    Url
67843    8    /monapp/AllProducts.aspx
5532    9    /monapp/CreateAccount.aspx
5525    3    /monapp/FeaturedProducts.aspx
5062    8    /monapp/CompanyInformation.aspx
2261    4    /monapp/Links.aspx
305    28    /monapp/ProductInfo.aspx
156    1    /monapp/
61    9    /monapp/Reviews.aspx
56    5    /monapp/News.aspx
0    4    /monapp/Default.htm

Statistics:
-----------
Elements processed: 203
Elements output:    10
Execution time:     0.01 seconds

Le plus intéressant est que ce fichier peut être directement ouvert dans Excel afin de pouvoir profiter du filtre automatique, de la création de graphiques : L'analyse en devient presque facile !

 LogParserDansExcel

 

L'outil est disponible à l'adresse suivante - http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en

A utiliser sans modération 🙂

Sebastien.

Comments (2)

  1. Bonjour, Voici quelques requêtes Logparser utiles pour la surveillance d’un serveur Web. Bonne utilisation,

  2. Bonjour, Voici quelques requêtes Logparser utiles pour la surveillance d’un serveur Web. Bonne utilisation,

Skip to main content