access.log
Matthias
- php
Hallo, ich möchte die access.log mit einem PHP-Skript auswerten,
allerdings habe ich mit meinem eigenen Skript keinen großen Erfolg, so daß ich auf der Suche nach einer Möglichkeit bin, die mir aus einem access.log einen Array generieren kann ala $dat[1][ip] = 121.2.111.222 oder $daz[1][referrer] = "http://...."
Wie gesagt habe ich schon selbst ein Skript geschrieben, aber es funktioniert nur für rund 90% aller Einträge aus meinem access.log. Die anderen 10% fallen durch mein Raster, bzw. verursachen fehlerhafte Datensätze und ich weiss nicht, warum dies so ist. Das Problem ist halt, das ich in den 30MB Rohdaten diese zerstörenden Einträge nicht finden kann, so daß ich nicht weiß, nach welchem Strickmuster sie zusammengesetzt sind.
Also, gibt es irgendwo eine Möglichkéit dieses Array zu bekommen ?
Grüße, Matthias
hi,
Wie gesagt habe ich schon selbst ein Skript geschrieben, aber es funktioniert nur für rund 90% aller Einträge aus meinem access.log. Die anderen 10% fallen durch mein Raster, bzw. verursachen fehlerhafte Datensätze und ich weiss nicht, warum dies so ist.
dann vergleiche diese datensätze mit deinem "raster".
Das Problem ist halt, das ich in den 30MB Rohdaten diese zerstörenden Einträge nicht finden kann, so daß ich nicht weiß, nach welchem Strickmuster sie zusammengesetzt sind.
wieso kannst du sie nicht finden?
woher _weisst_ du dann, dass es sie gibt? (irgendwie müssen sie sich ja bemerkbar machen)
gruß,
wahsaga
Hallo,
natürlich habe ich mir die Aufzeichnungsmethode des Apaches angesehen und in welcher Weise er die Einträge macht:
IP - - [Zeit] ServerCode Übertr.Bytes Domain Referrer
Nach diesem Muster bin ich auch vorgegangen, indem ich via regexp die einzelnen Teile versucht habe auszulesen und überflüssiges auszusortieren. Das klappt auch, nur wie gesagt, bei rund 10% aller Einträge fehlt z.B. die Domain, bei nem anderen Eintrag ist noch der Servercode drin, usw. Ich bin mir ziemlich sicher, das der(die) Fehler in meinen Regexp-Ausdrücken liegt. Mit diesen Bereich habe ich mich erst letzte Woche begonnen zu beschäftigen, ergo ...
Und wenn es halt ein fertiges Skript, bzw. einen fertigen Skriptteil gäbe, dass eben diesen Fehler nicht hat, dann wäre ich ein glücklicherer Mensch :-)
Ansonsten geht wohl kein Weg daran vorbei, dass ich mich mehr mit Regexp beschäftigen muss, um mit dieser Sache fertig zu werden, es kann ja nicht sein, dass so wie jetzt mit 20 Ausdrücken nacheinander die einzelnen Bereiche meines Strings geändert werden, dass dort einzelne Datensätze vor die Hunde gehen ist ja irgendwie klar.
Grüße, Matthias
Hi,
Ansonsten geht wohl kein Weg daran vorbei, dass ich mich mehr mit Regexp beschäftigen muss, um mit dieser Sache fertig zu werden,
Also ich analysiere meine Logs ohne RegExp.
Gruß, Cybaer