gestion du fichier access.log

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

gestion du fichier access.log

Messagepar titus91360 » 24 Oct 2005 17:09

Bonjour à tous,

Si j'écris aujourd'hui, c'est bien évidemment pour demander de l'aide (bah oui pas pour dire qu'il pleut ...).
J'ai besoin assez spécifique qui est le suivant :
Dans ma société, nous avons installé ipcop avec en plug-in advproxy et urlfilter pour permettre à nos utilisateurs de surfer sur Internet tout en évident les débordements de navigation vers des sites pas politiquement correcte :wink: (enfin pour le moment c'est un projet).
La navigation fonctionne du feu de dieu avec interrogation de l'Active Directory pour les accès et (c'est la que je coince) l'exploitation des log de navigation à des fins statistiques.
J'ai installé Sarg qui marche plutot bien mais qui ne réponds malheureusement pas à nos besoins.
Nous voudrions pouvoir intégrer tous les logs de Squid sur un AS/400 mais j'ai du mal à me dépatouiller de la structure du fichier.
Le premier champs (date et heure) est un vrai charabia pour moi et je ne parviens pas à le remettre en forme (du genre aaammjjhhmmss).
Le deuxième champs, ce qui me gène, c'est que le champ possède un nombre aléatoire d'espaces avant d'avoir les données du champs.
Pour les autres champs, ca va je gère (enfin j'espère). Bon ma requète maintenant tout de même.
Pour l'AS400, j'ai besoin d'un fichier structuré en ";" et avec une date au format que j'ai donné ci-dessus.
Malheureusement, ne connaissant que très peu le monde unix, je ne sait pas comment faire un script qui me permettrait de le modifier à ma convenance.
Quelqu'un pourrait me donner un petit coup de pouce ?

Merci d'avance !
Avatar de l’utilisateur
titus91360
Second Maître
Second Maître
 
Messages: 38
Inscrit le: 29 Nov 2003 01:00

Messagepar Gaston » 24 Oct 2005 22:22

Bonsoir,
sur google on trouve facilement ceci(et aussi la suite)
Access Log Fields
==============================================================================
The native access.log has ten (10) fields. There is one entry here for
each HTTP (client) request and each ICP Query. HTTP requests are
logged when the client socket is closed. A single dash ('-') indicates
unavailable data.

1) Timestamp
The time when the client socket is closed. The format is "Unix
time" (seconds since Jan 1, 1970) with millisecond resolution.
2) Elapsed Time
The elapsed time of the request, in milliseconds. This is time
time between the accept() and close() of the client socket.
3) Client Address
The IP address of the connecting client, or the FQDN if the
'log_fqdn' option is enabled in the config file.
4) Log Tag / HTTP Code
The Log Tag describes how the request was treated locally (hit,
miss, etc). All the tags are described below. The HTTP code
is the reply code taken from the first line of the HTTP reply
header. Non-HTTP requests may have zero reply codes.
5) Size
The number of bytes written to the client.
6) Request Method
The HTTP request method, or ICP_QUERY for ICP requests.
7) URL
The requested URL.
8 ) Ident
If 'ident_lookup' is on, this field may contain the username
associated with the client connection as derived from the
ident service.
9) Hierarchy Data / Hostname
A description of how and where the requested object was
fetched.
10) Content Type
The Content-type field from the HTTP reply.

Pour le premier champs, la fonction localtime de PERL, permet la traduction en temps "humain"

soit un script "tsampl.pl"
Code: Tout sélectionner
#! /usr/bin/perl -p
s/^\d+\.\d+/localtime $&/e;

et une commande Unix :
Code: Tout sélectionner
awk '{print $1 " SEPARATOR "$2\
                    " SEPARATOR "$3" SEPARATOR "$4\
                    " SEPARATOR "$5" SEPARATOR "$6\
                    " SEPARATOR "$7" SEPARATOR "$8\
                    " SEPARATOR "$9" SEPARATOR "$10}' /home/squid2/logs/access.log | ./tsampl.pl
reformate le log et la date, tu peux ainsi définir le format qui t'intéresse .

Gaston
PS :Il y a également de nombreux soft d'analyse des logs sur Linux.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

alors là !!!

Messagepar titus91360 » 25 Oct 2005 14:15

Vraiment merci beaucoup.
En postant ici, je pensais trouvé des pistes pour avancer, mais tu m'offres bien plus que des pistes.
Je vais maintenant tenter de mettre ca en oeuvre.


Merci encore :D
Avatar de l’utilisateur
titus91360
Second Maître
Second Maître
 
Messages: 38
Inscrit le: 29 Nov 2003 01:00

Messagepar titus91360 » 26 Oct 2005 17:38

Alors là moi je dis chapeau, c'est exactement ce qu'il me fallait.
J'ai mon fichier avec une date compréhensible, et le tout séparé pour des ";".
Merci 1000 fois.

Maintenant (holala je suis ch...), j'ai un dernier et ultime problème. Il semblerait que le caractère de chaque fin de ligne de soit pas un retour chariot classique. Lorsque je l'importe, j'ai un petit carré à la place du retour chariot.
Du coup, tous mes enregistrements tiennent en une et une seule ligne (les boules :) ).
Quel est exactement ce signe ?
Avatar de l’utilisateur
titus91360
Second Maître
Second Maître
 
Messages: 38
Inscrit le: 29 Nov 2003 01:00

Messagepar Gaston » 26 Oct 2005 21:48

bonsoir,
c'est le caractère standard "\n", la preuve :
Code: Tout sélectionner
[root@srv75 squid]# tail -1 access.log
1130355592.760   2258 10.33.10.3 TCP_MISS/200 5842 GET http://forums.fr.ixus.net/ - DIRECT/195.140.140.28 text/html
[root@srv75 squid]# tail -1 access.log | od -xc
0000000 3131 3033 3533 3535 3239 372e 3036 2020
          1   1   3   0   3   5   5   5   9   2   .   7   6   0
0000020 3220 3532 2038 3031 332e 2e33 3031 332e
              2   2   5   8       1   0   .   3   3   .   1   0   .   3
0000040 5420 5043 4d5f 5349 2f53 3032 2030 3835
              T   C   P   _   M   I   S   S   /   2   0   0       5   8
0000060 3234 4720 5445 6820 7474 3a70 2f2f 6f66
          4   2       G   E   T       h   t   t   p   :   /   /   f   o
0000100 7572 736d 662e 2e72 7869 7375 6e2e 7465
          r   u   m   s   .   f   r   .   i   x   u   s   .   n   e   t
0000120 202f 202d 4944 4552 5443 312f 3539 312e
          /       -       D   I   R   E   C   T   /   1   9   5   .   1
0000140 3034 312e 3034 322e 2038 6574 7478 682f
          4   0   .   1   4   0   .   2   8       t   e   x   t   /   h
0000160 6d74 0a6c
          t   m   l  \n
0000164

Un coup de man "od" si tu ne connais pas ... ensuite chercher "remplacer caractère fichier" sur google

G.
Avatar de l’utilisateur
Gaston
Amiral
Amiral
 
Messages: 1367
Inscrit le: 06 Oct 2003 00:00
Localisation: Saint Maur, 94 FR

Messagepar titus91360 » 27 Oct 2005 13:32

Et bien Gaston je te remercie infiniment pour ton aide.
Le \n est un linefield à priori sur AS400, je peux donc maintenant importer mon fichier sans soucis.
Merci encore
Avatar de l’utilisateur
titus91360
Second Maître
Second Maître
 
Messages: 38
Inscrit le: 29 Nov 2003 01:00


Retour vers IPCop

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité