TheAngel: traffic überwachen per PHP

moin,

also ich habe einen webaccount auf dem ich 2 voneinander unabhängige webseiten hosten möchte, wobei die seiten in 2 ordnern liegen, und die domains jeweils auf die ordner verlinkt sind.

ich würde nun gerne messen können, welche seite wie viel traffic verbraucht, gibt es da irgendeine möglichkeit das mit php zu verwirklichen?

wenn nicht: geht das mit Perl/CGI/PHYTON und weiss jemand ein script das das macht, ich kann nämlich nur php...

  1. Die einfachste möglichkeit ist oder wäre das log file auszuwerten.

    1. Hello,

      Die einfachste möglichkeit ist oder wäre das log file auszuwerten.

      Wenn Du uns nun auch noch verrätst, wie man die Request-Bytes nebst Uploads da auch reinbekommt, dann habe ich auch wieder was gelernt. In meinen momentanen Apache-Logs stehen immer nur die Response-Bytes.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hello,

        Wenn Du uns nun auch noch verrätst, wie man die Request-Bytes nebst Uploads da auch reinbekommt, dann habe ich auch wieder was gelernt. In meinen momentanen Apache-Logs stehen immer nur die Response-Bytes.

        Na gut. Ich ahbe es gefunden. http://httpd.apache.org/docs-2.0/mod/mod_log_config.html#formats
        Aber leider ist mod_logio nicht aktiv. Das muss ich noch ändern
        Und außerdem muss ich noch feststellen, ob ich das LogFormat für jeden VirtHost oder sogar das  Directory einzeln einstellen kann. Und die Leute beim Provider sind da wahrscheinlich gekniffen.

        Wenn man es mit PHP auswerten will, sollte man das Format sowieso auf CSV mit Stringbegrenzer umstellen, dann lassen sich die Spalten leichter voneinander trennen.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. genau das gleiche wollte ich natürlich auch sagen nee.. *fg* ;)

          1. Hello,

            genau das gleiche wollte ich natürlich auch sagen nee.. *fg* ;)

            Macht nix, hast noch einen Versuch frei: Sag mir mal, woher ich mod_logio für den 1.3.27 herbekomme. Und für die neueren Apachen benötige ich das dann auch noch.

            Es ist nämlich leider nicht dabei.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. hmm..
              ich habe mod_logio selbst nur für den "Apache 2.0.43 Released" gefunden.

              1. Hello,

                hmm..
                ich habe mod_logio selbst nur für den "Apache 2.0.43 Released" gefunden.

                Ich habe vorhin auch spontan alle möglichen Quellen durchsucht. Das war nämlich eigentlich schon lange auf meinem Aufgabenzettel, auch den Upload zu registrieren und die Header mitzuzählen. Es scheint das Modul aber scheinbar nur für Apache >= 2.x zu geben.

                Schade eigentlich.

                Harzliche Grüße aus http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
  2. Hello,

    wenn man Zugriff zur VHosts-Definition des Servers hat (inclusive Restart-Option), dann kann man sich ein Kog für jedes Verzeichnis einrichten, wenn es denn sein soll. Üblich sind aber nur Logs pro Host/Virtual Host. Ohne Zugriff auf die Serverkonfigurtation kannst Du nur Deinen Provider bitten, diese Modifikation für Dich vorzunehmen.

    Wie asd uns ich ja nun herausgefunden haben, kann der Apache bis < 2.0 nur die gesendeten Bytes ohne Header loggen. Erst für den Apachen >= 2.x gibt es das Modul mod_logio (solltest Du etwas anderes herausfinden bitte eMail an mich), dass dann auch Request-Logging und Response-Logging, beide inclusive Headern, ermöglicht.

    Das Logformat stellt man sich mit "LogFormat" ein. Wenn man das Format universell auswertbar haben möchte, würde ich von der klassischen Darstellung abstand nehmen und einen CSV-String mit Stringbegrenzern (") aufbauen. Da in den vorkommenden Daten keine (") drin sein können, muss dort auch nichts maskiert werden.

    Mehr Info unter http://httpd.apache.org/docs-2.0/mod/mod_log_config.html#formats

    Der String ist dann mittels $_zeile = fgetcsv($fh,4096,',','"')
    http://de2.php.net/manual/en/function.fgetcsv.php auslesbar und kann sofort weiterverarbeitet werden. Das geht wesentlich schneller, als wenn man sich eine Parsefunktion für das übliche Format schreibt (was ich mal gemacht habe), um die Daten in HTML auszugeben und/oder zu addieren.

    Viel Erfolg

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau