Comment faire pour utiliser SQL Server pour analyse des journaux Web

Traductions disponibles Traductions disponibles
Numéro d'article: 296085 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Internet Information Server/Services fournit un certain nombre de formats pour rassembler des données sous forme de fichiers journaux web. Pour les sites occupés, ces fichiers plats basé sur du texte comprise deviennent trop de frais généraux pour passer en revue et sont ignorés. Pour vérifier les données, le mieux serait ces journaux une ressource mieux pour les administrateurs et masques web.

Cet article décrit une méthode pour importer des journaux IIS au format World Wide Web Consortium (W3C) total enregistrement dans Microsoft SQL Server pour faciliter la révision des fichiers journaux IIS. Les techniques fournies peuvent être également modifiés d'autres formats de fichier journal.

Plus d'informations

Journaux de Web sont des fichiers texte délimité tel que spécifié par la RFC 2616, « Hypertext Transfer Protocol--HTTP/1.1 » (http://www.rfc-editor.org/rfc/rfc2616.txt).

Au format étendu journal W3C les champs sont un peu auto-évaluation explicatif : données et l'heure sont de simplement qu'elles semblent ; [IP c] est l'adresse IP du client; [cs-méthode] est la méthode HTTP pour la demande a été satisfaite; [cs-uri-stem] est le document qui a été demandé; [cs-uri-requête] est la chaîne de requête qui a été envoyée comme partie de la demande consignée; [sc-état] est le code d'état renvoyé par le serveur; [sc-octets] est le nombre d'octets ayant été retournées à l'utilisateur; [prise heure] est la durée en millisecondes ça pour le serveur terminer le traitement de la requête; [cs(Cookie)] est le cookie ou permanentes des données dans la demande. et [cs(Referer)] l'URL du site précédent visité par l'utilisateur. Pour le format étendu journal W3C, il existe plusieurs des champs supplémentaires qui peut être choisi, qui sont décrites dans l'aide de IIS et sur le site Web Microsoft suivant :
http://msdn.microsoft.com/en-us/library/ms525152.aspx
Les journaux sont mis en forme comme suit :

Réduire ce tableauAgrandir ce tableau
DateHeurec-ipméthode de cscs-uri-stemcs-uri-requêtesc-statutsc-octets-duréecs(User-Agent)cs(Cookie)cs(referrer)


L'en-tête des fichiers du journal correspond aux champs choisis dans les propriétés du site Web, sous l'onglet site Web et dans le cas du W3C étendu journal, l'onglet Propriétés étendue . Si vos journaux web existe déjà dans une table dans Microsoft SQL Server, il est probablement en raison de journalisation ODBC. Toutefois, lorsque vous utilisez ODBC journalisation les champs n'est pas configurable. L'aide de IIS comporte des instructions sur la configuration de journalisation ODBC, qui inclut l'utilisation de Logtemp.sql pour créer la table dans la structure attendue.

Vous pouvez utiliser Enterprise Manager pour créer la table, mais pour le transformer rapidement et pour faciliter l'automatisation du processus, de à la place vous devez utiliser le script suivant dans l'Analyseur de requêtes pour créer la table :
CREATE TABLE [dbo].[tablename] (
	[date] [datetime] NULL,
	[time] [datetime] NULL ,
	[c-ip] [varchar] (50) NULL ,
	[cs-method] [varchar] (50) NULL ,
	[cs-uri-stem] [varchar] (255) NULL ,
	[cs-uri-query] [varchar] (2048) NULL ,
	[sc-status] [int] NULL ,
	[sc-bytes] [int] NULL ,
	[time-taken] [int] NULL ,
	[cs(User-Agent)] [varchar] (255) NULL ,
	[cs(Cookie)] [varchar] (2048) NULL ,
	[cs(Referer)] [varchar] (2048) NULL 
	)
				

Notez que certains de ces champs sont très grandes et peuvent être pas nécessaires pour la révision vos fichiers journal particulier.

Une fois la table créée, vous pouvez importer les données en utiliser l'Assistant Importation, mappage à partir du fichier *.log vers la base de données et la table.

À l'aide de l'Assistant peut être fastidieuse, celui-ci peut servir à accélérer l'importation les journaux web :
BULK INSERT [dbo].[tablename] FROM 'c:\weblog.log'
WITH (
    FIELDTERMINATOR = ' ',
    ROWTERMINATOR = '\n'
)
				

Notez que l'insertion en masse échoue lorsqu'il rencontre des lignes qui commencent par « # ». Pour les journaux web, cela inclut les quatre premières lignes, ainsi que les autres instances lorsque le serveur est arrêté et démarré, car les lignes d'en-tête sont écrites lorsque le service est redémarré. L'article suivant de la base de connaissances Microsoft fournit un utilitaire et un code source pour supprimer ces lignes et de préparer le journal à l'insertion en masse à SQL Server :
296093 FICHIER : utilitaire PrepWebLog prépare journaux IIS pour insertion en masse SQL
Lorsque l'importation est terminée, vous pouvez utiliser l'Analyseur de requêtes pour exécuter des requêtes pour organiser les données. Par exemple :
Select [cs-uri-stem], [time-taken] from tablename where [time-taken] >= 20000 and time between '1899-12-30 16:30:00.000' and '1899-12-30 17:30:00.000' 
				
cette requête affichera les noms de toutes les pages qui a pris plus de 20 secondes pour traiter et qui ont été traitées entre 4:30 et 17 : 30 H, ainsi qu'avec l'heure de processus (en millisecondes) pour chaque.

Notez que par le site web par défaut les journaux sont enregistrés dans temps moyen de Greenwich, donc à moins que les modifications ont été apportées pour enregistrer les fichiers journaux dans heure locale, vous devez ajuste pour l'heure locale lorsque vous examinez les journaux.

Un autre exemple de requête :
Select distinct [cs-uri-stem], [time-taken] from tablename where [time-taken] > (select avg([time-taken]) from tablename)order by [time-taken] desc
				
cette requête recherche la moyenne [heure-prise] pour chaque entrée dans le fichier journal, puis sélectionne le [cs-uri-stem] et la [heure-prise] et organise dans décroissant ordre par [prise heure]. Ajoutant une clause « temps entre » peut isoler davantage les résultats de cette requête.

Références

Remarque : Insertion en masse ne fonctionnera pas avec SQL Server 7.0, mais il fonctionne avec SQL Server 2000. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
272292 BOGUE : erreur 7399 lorsque vous en masse insérer dans la table avec une colonne par défaut sur un NUMERIC ou DECIMAL colonne
Pour plus d'informations sur LocalTimeRollover pour les journaux IIS et le paramètre LogFileLocaltimeRollover :
http://msdn.microsoft.com/en-us/library/microsoft.web.administration.sitelogfile.localtimerollover.aspx

Propriétés

Numéro d'article: 296085 - Dernière mise à jour: mardi 21 novembre 2006 - Version: 3.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
Mots-clés : 
kbmt kbhowto KB296085 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 296085
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com