Page 1 sur 1

formater logs

Posté : 22 sept. 2010, 07:24
par Pomdeter
Bonjour à tous,

Je m'occupe d'un site communautaire, fonctionnant avec joomla (mais c'est un détail), et a ce titre je récupère les fichiers de logs produit par un composant de mon site, qui traque les tentatives d'intrusions.

ce fichier de logs génère une quantité de données, mais je souhaiterai en extraire certaines pour en proposer un "résumé" aux autres administrateurs du site.

Concrètement les données se présentes sous cette forme :

date heure navigateur ip utilisateur requette

Je souhaite créer un tableau n'affichant que :
date heure ip et utilisateur

Bien entendu les champs "navigateur" et "requette" n'affichent pas des données de format identique, voici quelques exemples :

Code : Tout sélectionner

2010-04-15 01:35:52 USER_AGENT: Opera/9.80 (Windows NT 6.1; U; fr) Presto/2.5.22 Version/10.51 IP: xx.xxx.xx.xxx USER: xxx REQUEST: exec=install PAR: /web/?exec=install
ou

Code : Tout sélectionner

2010-04-16 13:36:04 USER_AGENT: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.16) Gecko/2009121601 Ubuntu/8.10 (intrepid) Firefox/3.0.16 IP: xx.x.xx.x USER: visitor REQUEST: option=com_s5clanroster PAR: /web/index.php?option=com_s5clanroster&view=s5clanroster&Itemid=142//index.php?option=com_s5clanroster&view=http://www.siliconvalleyforex.com//cmdstate.txt???
Comme mes connaissances en PHP sont plus que limitées (le plus souvent j'adapte des moreceaux de code en fonction de mes connaissances) - et en l'occurence je ne vois pas du tout comment extraire (ou supprimer) certains champs de cette liste...

Merci d'avance si vous pouvez m'aiguiller.

Re: formater logs

Posté : 22 sept. 2010, 16:58
par stealth35
c'est quel module ?

Re: formater logs

Posté : 22 sept. 2010, 19:02
par Pomdeter
Il s'agit de logs générés pas le plugin sentinelle (qui est un plugin de sécurité)

Re: formater logs

Posté : 22 sept. 2010, 19:08
par stealth35
Il s'agit de logs générés pas le plugin sentinelle (qui est un plugin de sécurité)
y'a pas de gestion des log dans un table SQL ?

sinon avec file + preg_match, ca devrait le faire :wink:

Re: formater logs

Posté : 22 sept. 2010, 19:50
par Pomdeter
y'a pas de gestion des log dans un table SQL ?
Non, en l'occurence le plugin erit un fichier texte
sinon avec file + preg_match, ca devrait le faire :wink:
Pour le moment j'affiche les données de cette façon (ça me conviens à peu près pour l'utilisation que je souhaite en faire :

Code : Tout sélectionner

<? $lecture = fopen("logs.txt","r"); $var_fichier = fread($lecture, filesize("logs.txt")); fclose($lecture); // Formatage $var_fichier = str_replace("-",":",$var_fichier); $var_fichier = str_replace("visitor","Anonyme",$var_fichier); echo '<p><i>'.$var_fichier.'</i></p>';
Mon problème réside toujours dans le fait que, dans mes logs, certains champs n'affichent pas les mêmes données, le champ "User Agent" par exemple - que je souhaite supprimer - affiche des données très différentes, comme ceci :

Code : Tout sélectionner

USER_AGENT: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.16) Gecko/2009121601 Ubuntu/8.10 (intrepid) Firefox/3.0.16
ou,

Code : Tout sélectionner

USER_AGENT: libwww-perl/5.834
ou être encore bien différent, voir vide, du coup, je ne peux pas utiliser str_replace, qui me contraindrait a envisager tous les cas de figure (pas possible ^^ )

Et le problème se pose pour le champ "REQUEST:"

Pour mémoire, voici une "ligne" type de mes logs :

Code : Tout sélectionner

2010-04-15 01:35:52 USER_AGENT: Opera/9.80 (Windows NT 6.1; U; fr) Presto/2.5.22 Version/10.51 IP: 88.xx.xx.xx USER: "Nom_utilisateur" REQUEST: exec=install PAR: /web/?exec=install

Re: formater logs

Posté : 23 sept. 2010, 23:40
par LaFabriqueWeb
Peut-être en cherchant du côté de strpos pour identifier le positionnement des éléments fixes qui vont te permettre de calculer les paramètres à passer à substr pour découper la chaîne ?