Patrick Andrieu: Die erfolgreichen Statmaker- und -fälscher-Skripts für 1&1-User!

Beitrag lesen

Na dann, wolle mer ma...

Das hier (zum Zerreißen) vorgestellte Skript »statfaker.pl« setzt voraus, dass die Logfiles nach dem selben Muster aufgebaut sind, wie hier beschrieben - das heißt, diese bestehen aus elf (11) Einträgen. Wie mir scheint, den Berichten anderer 1&1-User zu urteilen, sind die Logs bei allen Paketen nach diesem Muster aufgebaut.

Wie mehrfach berichtet, erstellt 1&1 jeden Tag tägliche Logs (access.log.current), die am nächsten Tag gezippt werden (access.log.50.6.gz ist beispielsweise die Logdatei von gestern, Samstag, 6. Tag der Kalenderwoche 50). Zu Beginn einer neuen Woche, werden diese 7 Taglogs zu einer einzigen Wochenlog (z.B. access.log.50.gz) zusammengefügt. Insgesamt sind die jeweiligen Wochenlogs neun Wochen lang verfügbar bevor die jeweils älteste gelöscht wird.

Mit dem bereits hier vorgestellten Skript kann man in der Woche, die der des letzen Tags des Vormonats folgt, eine Monatslog erstellen: Das Skript fügt die gezippten Wochenlogs des Vormonats zu einer einzigen Textdatei zusammen, die im Browser angezeigt wird und lokal abgespeichert werden muss. Hierfür muss das Skript auf dem Server hochgeladen werden und natürlich über den Browser aufgerufen werden. Und im Skript muss der jeweilige Monatskürzel angegeben werden (in der while-Schleife, im if-Statement bei print).

Siechfred hat mich aber, für alle die bei 1&1 (angeblich... *g* - EngInsider wissen, was ich meine *FG*) keine eigenen CGI-Skripten laufen lassen dürfen, dank seines vorgestellten LogAnalyse.pm-Modul auf eine Idee gebracht. Das Monatslog-Erstell-Skript könnte man genausogut von der Konsole aus »bequem daheim« laufen lassen, die Monatslogs dann auf dem heimischen Rechner direkt auswerten. Denn das ist ohnehin Muss: Bei großen Dateien wird das Zusammenfüge-Skript beim Versuch, die Datei auf dem Server zu speichern, den Dienst verweigern. Die so erstellten Logs erreichen bei mir zum Teil weit über 70 MB - der zugewiesene Speicher für CGI-»Arbeiten« beträgt laut 1&1 aber nur 32 MB. Und in der Tat scheiterte mein Versuch, über CGI die Logs zu erstellen und auf dem Server zu speichern.

Wenn man also seine Monatslogs erstellt und auf dem heimischen Rechner gespeichert hat (Monat_Jahr.txt), kann man sie mit »statfaker.pl« lokal auswerten (lokale Perl-Installation vorausgesetzt).

Einfach über die Konsole aufrufen (Windows: cmd oder Eingabeaufforderung), Drag&Dropen ins Konsolenfenster finde ich dabei noch am Einfachsten, und schon kommt die Anforderung, Verzeichnis, Monatsnamen der entspr. Datei und Jahr einzugeben (das nur, falls man über mehrere Jahre gesammelt hat).

Dann kommt ein Menü mit verschiedenen Optionen[1]. Einfach auswählen...

Warum ist so ein Skript notwendig, obwohl 1&1 ab bestimmte Paketvolumen eine eigene Statistik anbietet, die auch relativ bequem über das Login erreichbar ist? Nun, mir hat ein Blick darin gereicht, um zu sehen, dass ich nur die Stats glaube, die ich selber fälsche ;)

Wer testen will bekommt hier eine gezippte Logdatei mit 100000 Zeilen (und gefakten IPs - 1,7MB) - oder eine ungezippte, noch kürzere (3000 Zeilen, ebenfalls gefakte IPs - 700KB, muss als monat_jahr.txt gespeichert werden) und das Skript zum Abspeichern (und vorschlagen, was man beser kann - und das ist sicher viel, das weiß ich *g*).

Ach ja, die meiste Zeit (2 Tage) ging drauf, die User-Agents auseinander zu nehmen... Was man da alles sieht, von lauter Nullen bis zu willkürlichen Buchstabenfolgen über "Geht Dich nicht an" bis zu "Husseldiguggel" (*G*, den kenne ich aber), ist kaum zu glauben. Ich bin nach dem Aussortier-Verfahren vorgegangen, erstmal die bekannten löschen, gucken was bleibt, dann weiter mit denen, die man dabei kennen gelernt hat, usw. usw. Natürlich per Skript und nur selten »de visu«, aber dennoch... Warum gibt es diesbezüglich keine Norm, in einer ansonsten bis auf jedem Zoll normierten Welt?... Jedenfalls erfordert es eine Menge RegExp, die das ganze zum Teil langsam machen...

[1]
Was möchten Sie ausgeben? (Verlassen mit 'Q'):
1. Browserauswertung (alle Hits) - (bei etwas über 300000 Zeilen: 10 Sek.)
2. Browserauswertung (besuchte Seiten) ("" "" "" "" "": 25 Sek.)
3. Betriebssysteme ("" "" "" "" "": 10 Sek.)
4. Meistbesuchte Seiten ("" "" "" "" "": 25 Sek.)
5. Top 50 Referrer ("" "" "" "" "": 25 Sek.)
6. Top 50 Suchbegriffe ("" "" "" "" "": 23 Sek.)
7. Andere Statistikdatei auswerten

@Siechfred: das Modul habe ich ausprobiert, funktioniert hervorragend. Ich verstehe allerdings einige Teile davon nicht, werde aber später fragen - muss erstmal, nach 2 Tagen Logs durchstudieren, etwas verschnaufen ;)

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?
0 79

Bekloppte User Agents zuordnen (RegExp)

Patrick Andrieu
  • programmiertechnik
  1. 0
    Cheatah
    1. 2

      UA-Statistiken fälschen

      Siechfred
      • perl
      1. 0
        Patrick Andrieu
        1. 1
          Siechfred
          1. 0

            Die erfolgreiche Fälschung

            Patrick Andrieu
            1. 1

              Das Modul zur erfolgreichen Fälschung?

              Siechfred
              1. 0
                Patrick Andrieu
                1. 0
                  Siechfred
              2. 0
                Siechfred
              3. 0
                Patrick Andrieu
                1. 0
                  Siechfred
                  1. 0
                    Patrick Andrieu
                    1. 0
                      Siechfred
                      1. 0
                        Patrick Andrieu
                        1. 0
                          Siechfred
                          1. 0
                            Patrick Andrieu
                            1. 0
                              Siechfred
                              1. 0
                                Patrick Andrieu
                                1. 0
                                  Patrick Andrieu
                                  1. 0
                                    Siechfred
                                    1. 0
                                      Patrick Andrieu
                                      1. 0
                                        Siechfred
                                        1. 0
                                          Patrick Andrieu
                                          1. 0
                                            Patrick Andrieu
                                          2. 0
                                            Siechfred
                                2. 0
                                  Siechfred
            2. 0

              Die erfolgreichen Statmaker- und -fälscher-Skripts für 1&1-User!

              Patrick Andrieu
              1. 0
                Patrick Andrieu
                1. 0
                  Struppi
                  1. 0
                    Patrick Andrieu
    2. 0
      Patrick Andrieu
      1. 0
        Cheatah
        1. 0
          Patrick Andrieu
  2. 0
    Don P
    1. 0
      Don P
    2. 0
      Patrick Andrieu
      1. 0
        Don P
        1. 0
          Patrick Andrieu
          1. 0
            Don P
            1. 0
              Patrick Andrieu
      2. 0

        Logline splitter (RegExp)

        Patrick Andrieu
  3. 2
    Struppi
    1. 0
      Patrick Andrieu
      1. 0
        Patrick Andrieu
  4. 0
    Der Martin
    1. 0
      Alexander (HH)
    2. 0
      Patrick Andrieu
      1. 0
        Der Martin
        1. 0
          Cheatah
          1. 0
            Patrick Andrieu
            1. 0
              Cheatah
        2. 0
          Patrick Andrieu
          1. 0
            Der Martin
            1. 0

              RegExp'sch ist gar nicht so schwer :)

              Siechfred
              • menschelei
    3. 0
      Patrick Andrieu
      1. 0
        Der Martin
        1. 0
          Patrick Andrieu
          1. 0
            Patrick Andrieu
            1. 0
              Struppi
      2. 0
        Ingo Turski
        1. 0
          Patrick Andrieu
          1. 0
            Ingo Turski
            1. 0
              Patrick Andrieu
              1. 0
                Ingo Turski
                1. 0
                  Patrick Andrieu
                  1. 0
                    Engin
                  2. 0
                    Engin
                    1. 0
                      Patrick Andrieu
                      1. 0
                        Engin
                        1. 0
                          Patrick Andrieu
                          1. 0
                            Engin
                            1. 0
                              Patrick Andrieu
                              1. 0
                                Engin
                                1. 0
                                  Patrick Andrieu
                                  1. 0
                                    Engin
                  3. 0
                    Ingo Turski
                    1. 0
                      Patrick Andrieu
        2. 0
          Patrick Andrieu