PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Squid - access.log nicht alles loggen



ctx23
15.06.08, 18:56
Hallo,
ich habe eine Fage zur access.log von Squid.
Die Auswertung mit sarg funktioniert soweit sehr gut. Allerdings tauchen in der access.log nicht nur Informationen zu den aufgerufenen Seiten auf, sondern auch Inhalte die vom Webserver nachgeladen werden.

Auf http://www.squid-handbuch.de/hb/node62_ct.html steht folgendes zur access.log


In der Datei access.log werden alle Anfragen an den Proxyserver geloggt. D.h. nicht nur die aufgerufene Seite selbst, auch alle darin enthaltenen Verknüpfungen, z.B. zu enthaltenen Bildern, Skripten etc., die mit der Seite geladen werden.

Jetzt meine Frage: Gibt es eine Möglichkeit nur die direkt angefragten Seiten anzuzeigen / zu loggen. Inhalte die vom Webserver anderweitig nachgeladen werden sollen nicht angezeigt werden.

Vielen Dank für eure Hilfe

lkwg82
15.06.08, 22:36
Squid leitet doch eh nur weiter, was angefragt wurde.
Was nicht angefragt wurde, wird nicht geliefert.

Insofern verstehe ich nicht deine Frage!

Squid geht ja nicht zu den Nutzer und bietet an, würde deine Frage jetzt implizieren.

UzumakiNaruto
16.06.08, 08:59
er will nur wissen welche webseiten aufgeruden wurden ... egal welche bilder, videos, usw runtergeladen wurden.

lkwg82
16.06.08, 12:58
Du könntest die Logs (außerhalb von sarg) parsen und alles hinter der TLD rauswerfen:

...
www.linuxforen.de
www.linuxforen.de
...


und das könntest du in 'uniq' pipen und mit 'sort' sortieren.

Dann hast du es grob.

ctx23
16.06.08, 14:44
@UzumakiNaruto: Genau :)

Das mit dem parsen ist eine möglichkeit, sollte ich vielleicht mal ausprobieren, allerdings bleibt folgendes Problem:

Wenn ich z.B. die Seite http://tv-movie.de aufrufe, wird das in access.log angezeigt.


1213546726.453 148 192.168.178.24 TCP_MISS/200 566 GET http://tv-movie.de/fileadmin/css/rte.css - DIRECT/195.39.234.104 text/css
1213546726.456 152 192.168.178.24 TCP_MISS/200 2844 GET http://tv-movie.de/fileadmin/js/brcheck.js - DIRECT/195.39.234.104 application/x-javascript
1213546726.488 360 192.168.178.24 TCP_MISS/200 77526 GET http://tv-movie.de/ - DIRECT/195.39.234.104 text/html
1213546726.587 283 192.168.178.24 TCP_MISS/200 33222 GET http://tv-movie.de/fileadmin/css/tvm_default.css - DIRECT/195.39.234.104 text/css
1213546726.666 61 192.168.178.24 TCP_MISS/200 1405 GET http://tv-movie.de/fileadmin/js/common.js - NONE/- application/x-javascript
1213546726.732 61 192.168.178.24 TCP_MISS/200 950 GET http://tv-movie.de/fileadmin/js/noframe.js - NONE/- application/x-javascript


Soweit ok, allerdings blendet http://tv-movie.de noch reihenweise Werbung und Popups ein die von anderen Servern nachgeladen werden. Was dann so aussieht:



1213546726.860 123 192.168.178.24 TCP_MISS/200 817 GET http://esmv.uimserv.net/js/84296.js - DIRECT/217.72.204.23 application/javascript
1213546727.037 175 192.168.178.24 TCP_MISS/200 7871 GET http://esmv.uimserv.net/js/global_84296.js - DIRECT/217.72.204.23 application/javascript
1213546727.162 120 192.168.178.24 TCP_MISS/200 1022 GET http://ad.hbv.de/eola/bauer_eola.js - DIRECT/195.39.234.210 application/x-javascript
1213546727.332 154 192.168.178.24 TCP_MISS/200 10225 GET http://ad.hbv.de/js.ng/tg=&TransactionID=$random$&site=tvmovie&subsite=homepage&subsubsite=&place=superbanner - NONE/- application/x-javascript
1213546727.450 115 192.168.178.24 TCP_MISS/200 435 GET http://ad.hbv.de/ads/1x1.gif - DIRECT/195.39.234.210 image/gif
1213546727.466 129 192.168.178.24 TCP_MISS/200 2715 GET http://ad.hbv.de/ads/O2/2008-06/080527_o2_22_0209_GenionL_2Q_08_Nokia_778x100_RM.g if - DIRECT/195.39.234.210 image/gif


Also steht in der Auswertung, das der Benutzer nicht nur http://tv-movie.de aufgerufen hat sondern auch die Popups, was nichts ganz korrekt ist, da sie ja automatisch nach geladen wurden.

Es geht mir halt darum, zu sehen welche Seiten direkt angefragt wurden, egal wie viel Bilder, Werbung, etc. von anderen Servern nachgeladen wird. Es ist nur wichtig das dort http://tv-movie.de und nicht noch zusätzlich http://ad.hbv.de steht weil irgend ein Popup aufgegangen ist.

Soweit schon mal vielen Dank.

lkwg82
16.06.08, 15:41
ist verständlich dein Anliegen, da aber alles durch den Browser initiert wird, wirst du es nicht trennen können.

Der Browser bekommt den HTML Datenstrom, darin steht, lade dies und das. Bilder und Werbung anderer Seiten meist als JavaScript oder Flash eingebunden, sind somit gleichrangig.

Du kannst höchstens eine semantische Aussortierung machen und eine Liste mit Werbeserver gegen halten und die Treffer aussortieren.

Mir fällt gerade ein man könnte auch folgende Heuristik als Einsprungspunkt nehmen:

1. ist die erste Adresse, die von einem User angefragt worden ist ein Javascript, dann ist es wahrscheinlich Werbung
2. ... (verfeinern)

schaue mal, was sich daraus ergibt, kann es mir erfolgversprechend vorstellen.

marce
17.06.08, 07:21
Evtl. reicht es Dir, wenn Du das Logfile auf Apache-Style umstellst und dann mit einem Tool wie AWStats auswertest? Die sind in der Richtung hin besser optimiert...