apache-log, Differenzen zwischen webalizer, awstats und awk-skript
Hallo, ich habe folgendes Problem: Da webalizer mit logfiles > 2GB nicht läuft habe ich awstats installiert. awstats parsed nun auch logfiles > 2 GB. Um die Ergebnisse zu kontrollieren habe ich mir ein kleines awk-Skript geschrieben, welches mir die Summe des http-Traffic im Monat ausgibt, jedoch habe ich eine Differenz von fast Faktor 2 (awstats: 35GB, awk: 70GB) höher als mir awstats anzeigt, wie kann das ? Bei anderen Domains mit wesentlich niedrigerem Traffic stimmt awstats und awk überein ! Bei anderen Domains mit logfiles < 2GB stimmen webalizer und awstats überein, jedoch hat awk wieder eine Differenz. Hier das awk-Skript: cat /var/log/httpd/httpd.access_log | grep "\/Sep\/" | awk '{if ($9==200){ sum+=$10; }}END{print sum}' $9 ist der http-Status (200=OK) und $10 ist der Traffic Wer weiss Rat ? Hubert -- NEU FÜR ALLE - GMX MediaCenter - für Fotos, Musik, Dateien... Fotoalbum, File Sharing, MMS, Multimedia-Gruß, GMX FotoService Jetzt kostenlos anmelden unter http://www.gmx.net +++ GMX - die erste Adresse für Mail, Message, More! +++
Am Sonntag, 12. Oktober 2003 10:47 schrieb Hubert Thyen:
ich habe folgendes Problem: Da webalizer mit logfiles > 2GB nicht läuft habe ich awstats installiert. awstats parsed nun auch logfiles > 2 GB. Um die Ergebnisse zu kontrollieren habe ich mir ein kleines awk-Skript geschrieben, welches mir die Summe des http-Traffic im Monat ausgibt, jedoch habe ich eine Differenz von fast Faktor 2 (awstats: 35GB, awk: 70GB)
höher als mir awstats anzeigt, wie kann das ? Bei anderen Domains mit wesentlich niedrigerem Traffic stimmt awstats und awk überein ! Bei anderen Domains mit logfiles < 2GB stimmen webalizer und awstats überein, jedoch hat awk wieder eine Differenz.
Hier das awk-Skript: cat /var/log/httpd/httpd.access_log | grep "\/Sep\/" | awk '{if ($9==200){ sum+=$10; }}END{print sum}'
$9 ist der http-Status (200=OK) und $10 ist der Traffic
Hast Du Dir mal die apache-Logzeilen angeschaut, ob da evtl. doppelte Einträge vorkommen oder ob Dein grep evtl. auch andere als die September-Einträge findet? BTW: Du kannst Dir 2 Pipes sparen (wir sind mal wieder beim *useless use of cat award* ;) und sogar die Selektion der Einträge schärfer gestalten: awk ' $4 ~ /\/Sep\// && $9 == 200 { sum += $10 } END { print sum } ' /var/log/httpd/httpd.access_log Jan
Hallo, ich habe noch einmal nachgeschaut: - Sept: awk: 65GB, awstats: 35GB, Oct: awk: 28GB, awstats: 13GB - keine doppelten Einträge gefunden/vorhanden - Es werden auch nur Einträge für den entsprechende Monat durchgegreppt. Wie kann die Differenz zustande kommen ? Hubert Am Sonntag, 12. Oktober 2003 16:51 schrieb Jan Trippler:
Am Sonntag, 12. Oktober 2003 10:47 schrieb Hubert Thyen:
ich habe folgendes Problem: Da webalizer mit logfiles > 2GB nicht läuft habe ich awstats installiert. awstats parsed nun auch logfiles > 2 GB. Um die Ergebnisse zu kontrollieren habe ich mir ein kleines awk-Skript geschrieben, welches mir die Summe des http-Traffic im Monat ausgibt, jedoch habe ich eine Differenz von fast Faktor 2 (awstats: 35GB, awk: 70GB)
höher als mir awstats anzeigt, wie kann das ? Bei anderen Domains mit wesentlich niedrigerem Traffic stimmt awstats und awk überein ! Bei anderen Domains mit logfiles < 2GB stimmen webalizer und awstats überein, jedoch hat awk wieder eine Differenz.
Hier das awk-Skript: cat /var/log/httpd/httpd.access_log | grep "\/Sep\/" | awk '{if ($9==200){ sum+=$10; }}END{print sum}'
$9 ist der http-Status (200=OK) und $10 ist der Traffic
Hast Du Dir mal die apache-Logzeilen angeschaut, ob da evtl. doppelte Einträge vorkommen oder ob Dein grep evtl. auch andere als die September-Einträge findet?
BTW: Du kannst Dir 2 Pipes sparen (wir sind mal wieder beim *useless use of cat award* ;) und sogar die Selektion der Einträge schärfer gestalten: awk ' $4 ~ /\/Sep\// && $9 == 200 { sum += $10 } END { print sum } ' /var/log/httpd/httpd.access_log
Jan
Hallo, Erstmal: http://learn.to/quote! Lesen, verstehen, umsetzen! Am Sun, 12 Oct 2003, Hubert Thyen schrieb:
ich habe noch einmal nachgeschaut: - Sept: awk: 65GB, awstats: 35GB, Oct: awk: 28GB, awstats: 13GB - keine doppelten Einträge gefunden/vorhanden - Es werden auch nur Einträge für den entsprechende Monat durchgegreppt.
Wie kann die Differenz zustande kommen ?
Nimm einen Refererrer etc. mit Leerzeichen. awk interessieren die mit "" gequoteten Eintraege nicht, und schwupps sind deine $9 $10 falsch. -dnh -- There are two product lines in which customers are called "users". The other one is illegal drugs. -- MWMeyer, viva voce personal communication
Hallo Hubert, hallo Leute, Am Sonntag, 12. Oktober 2003 19:33 schrieb Hubert Thyen:
ich habe noch einmal nachgeschaut: - Sept: awk: 65GB, awstats: 35GB, Oct: awk: 28GB, awstats: 13GB - keine doppelten Einträge gefunden/vorhanden - Es werden auch nur Einträge für den entsprechende Monat durchgegreppt.
Wie kann die Differenz zustande kommen ?
Du suchst nur nach HTTP-Code 200, aber Fehlerseiten verursachen auch Traffic ;-) Würde mich zwar wundern, wenn es so viel wäre, aber man weiß ja nie. Außerdem gibt es beispielsweise noch "Partial content" (206). Lass mal Dein Script spasseshalber über alle Statuscodes laufen - passt dann das Ergebnis besser? Wenn ja, würde mich mal die Verteilung Deiner Statuscodes interessieren ;-) Und, BTW, wo hast Du Deine Zahlen bezüglich der Datenmenge her? Von der Angabe "Bandwidth" ziemlich oben bei awstats? [TOFU gelöscht] bitte http://learn.to/quote Gruß Christian Boltz -- Bei Emacs ist wie bei jedem anderen OS ein Editor dabei. [Juergen P. Meier in dasr]
Hi, das Problem ist, das awk mir viel mehr anzeigt, ich habe daher die Suche auf Status-Code 200 eingegrenzt, wenn ich den Status-Code weglassen bekommen ich nur gering mehr. Die Menge von awstats habe ich aus der Spalte Bytes, komisch ist auch das die Seiten-Anzahl mit awk und awstats übereinstimmen ! Hubert Am Dienstag, 14. Oktober 2003 01:36 schrieb Christian Boltz:
Hallo Hubert, hallo Leute,
Am Sonntag, 12. Oktober 2003 19:33 schrieb Hubert Thyen:
ich habe noch einmal nachgeschaut: - Sept: awk: 65GB, awstats: 35GB, Oct: awk: 28GB, awstats: 13GB - keine doppelten Einträge gefunden/vorhanden - Es werden auch nur Einträge für den entsprechende Monat durchgegreppt.
Wie kann die Differenz zustande kommen ?
Du suchst nur nach HTTP-Code 200, aber Fehlerseiten verursachen auch Traffic ;-) Würde mich zwar wundern, wenn es so viel wäre, aber man weiß ja nie.
Außerdem gibt es beispielsweise noch "Partial content" (206).
Lass mal Dein Script spasseshalber über alle Statuscodes laufen - passt dann das Ergebnis besser? Wenn ja, würde mich mal die Verteilung Deiner Statuscodes interessieren ;-) Und, BTW, wo hast Du Deine Zahlen bezüglich der Datenmenge her? Von der Angabe "Bandwidth" ziemlich oben bei awstats?
[TOFU gelöscht] bitte http://learn.to/quote
Gruß
Christian Boltz -- Bei Emacs ist wie bei jedem anderen OS ein Editor dabei. [Juergen P. Meier in dasr]
participants (4)
-
Christian Boltz
-
David Haller
-
Hubert Thyen
-
Jan.Trippler@t-online.de