Alte Artikel

In der Presse



OpenSource im Studium (OSiS), Download bei heise
Download bei Chip Online
Download bei Computer Bild
Download bei Softonic
Download bei Gmx
Download bei Web.de

OpenSource im Büro, Download bei heise
Download bei Chip.de
Download bei Computer Bild
Download bei Softonic
Download bei Web.de
Download bei Gmx.de

Logfile Tools, Download bei heise

HostingUndService.de Fahrtenbuch, Download bei heise


Durchgestrichene Links führen zu einer älteren Version der CD/DVD.

LogTools

Für die Planung und Organisation einer Webseite sind schöne, bunte Auswertungen der Besucheraktivitäten unerläßlich. Insbesondere dann, wenn umfangreiche Arbeiten an einer Webseite zur Verbesserung der Nutzerakzeptanz vorgenommen werden sollen, benötigt man diese kleinen Tabellen, die genau zwischen interessanten und uninteressanten Angeboten unterscheiden können.

Zu diesem Zweck legt ein Webserver die Datei access.log an, in der jeder einzelne Zugriff eines Besuchers protokolliert wird. Bei erfolgreichen Webseiten entstehen monatlich Textdateien von mehreren Gigabyte Länge – deutlich zuviel selbst für einen sehr gut ausgestatteten Homecomputer. Möchte der Anwender nur einen bestimmten Zeitraum auswerten, oder ist es notwendig einen speziellen Zugriff aufzufinden ist dies nur mit komplizierten Spezialprogrammen möglich: sed und grep sind hier des Webmasters beste Freunde. Möchte man den gefundenen Zugriff im Kontext sehen, kommt man aber um einen Texteditor nicht herum.

Kommandozeilen-Lösung

Hier kommen die Logfile-Tools ins Spiel. SplitLog ist in der Lage, eine Textdatei beliebiger Länge in einzelne Dateien zu je 10000 Zeilen aufzuteilen. ConcatLog geht den umgekehrten Weg: Es verbindet eine beliebige Anzahl von Logdateien zu einer einzelnen access.log. Dazu werden alle angegebenen Dateien ermittelt, nach Dateinamen aufsteigend sortiert und zu einer einzigen Datei verbunden. SortLog ist hingegen in der Lage, eine große Zahl von Logdateien einzulesen, Duplikate zu entfernen, die Zeilen nach Zugriffszeit zu sortieren und getrennt nach Monaten abzuspeichern.

Die Software ist kostenlos (Freeware).

Die Benutzung erfolgt auf eigene Gefahr. Insbesondere ist es wichtig, alle ORIGINAL-LOGDATEIEN zu sichern.

ConcatLog

Verwendung: ConcatLog.exe DATEIMASKE ZIELDATEI

Beispiel: concatlog *.log access.combined.log

ConcatLog listet die zur DATEIMASKE passenden Dateien im aktuellen Verzeichnis auf und sortiert sie alphabetisch. Diese Dateien werden geöffnet und ihr Inhalt Zeile für Zeile in die ZIELDATEI geschrieben.

Hinweis: Die Länge der Eingabedateien ist unbegrenzt und wird nur durch die Menge des verfügbaren Festplattenspeichers eingeschränkt. ConcatLog schreibt die Zeilen der Zieldatei mit Windows-Linebreaks (0×10 0×13). Für die Codierung der Dateien wird die aktuelle Codierung des Betriebssystems (Windows-1251) angenommen.

SplitLog

Verwendung: SplitLog.exe QUELLDATEI (ZEILEN)

Beispiel: splitlog access.log 5000

SplitLog öffnet die QUELLDATEI und kopiert ihren Inhalt in die Dateien access.###, wobei die Nummerierung bei 001 beginnt und bis 999 fortgeführt wird. Die Angabe ZEILEN ist optional, es werden 10.000 Zeilen als Standardwert angenommen. Logdateien können somit in kleine “Häppchen” aufgeteilt und mit einem Texteditor bearbeitet werden. Die Originaldatei wird nicht verändert.

Hinweis: Die Länge der Eingabedatei ist unbegrenzt. Auch SplitLog schreibt Windows-Linebreaks und verwendet die aktuelle Zeichencodierung des Betriebssystems.

SortLog

Verwendung: SortLog.exe

SortLog liest eine beliebige Anzahl von Logdateien aus dem aktuellen Verzeichnis, die mit access*.* beginnen müssen. Im ersten Durchgang ermittelt SortLog aus allen Dateien das kleinste und größte Datum. Im zweiten Schritt iteriert es für jeden Monat durch alle betroffenen Dateien und erstellt partielle Logdateien. Dabei werden Zeilen ohne gültiges Datum, die z.B. durch Hackversuche entstehen können, ebenso wie doppelte Zugriffe entfernt. Das Resultat wird nach Zugriffszeit sortiert in Zieldateien der Form access.JJMM.log geschrieben.

Hinweis: Um die Sortierung und die Entfernung von Duplikaten zu ermöglichen, müssen die Zeilen für jeweils einen kompletten Monat im Arbeitsspeicher gehalten werden. Möglicherweise gibt es bei sehr erfolgreichen Seiten eine Längenbegrenzung; dies könnte nur durch eine Programmoptimierung geändert, bzw. durch Verwendung einer Datenbank aufgehoben werden. Die Zieldateien werden wiederum mit Windows-Linebreaks geschrieben.

ReverseRename

Verwendung: ReverseRename.exe <dateimaske>

Die Unix Logfile-Rotation-Automatik hat einen kleinen Nachteil: Sie archiviert Logdateien in umgekehrter chronologischer Reihenfolge. Das bedeutet, daß die Datei “access.log.15″ jüngere Daten enthält, als alle Dateien mit einem kleineren Dateinamen. Dennoch sind die Daten innerhalb der einzelnen Dateien chronologisch angeordnet. Möchte man nun mehrere dieser Logdateien zusammenfassen, ergibt sich (sinnbildlich) folgende Reihenfolge:

8,9,10 – 5,6,7 – 2,3,4 – 0,1

anstatt der gewünschten 0,1,2,3,4,5,6,7,8,9,10.

ReverseRename behebt das Problem, indem alle Dateien mit einer Zahl im Namen in umgekehrter numerischer Reihenfolge gespeichert werden. Haben Sie zum Beispiel die folgenden Dateien in Ihrem Logverzeichnis:

access.1, access.2, …, access.20, access.21

benennt ReverseRename diese Dateien um. access.21 wird also zur Nummer 1 und access.1 zur Nummer 21. Ein nachfolgender Aufruf von ConcatLog schreibt dann die Logdateien in richtiger, chronologischer Reihenfolge.

  • Die Dateien werden umbenannt, nicht kopiert. Machen Sie vorher eine Sicherungskopie der Originale!
  • Die “Nummer” der Datei wird durch Elimination aller nicht-numerischer Zeichen erreicht. Dateien der Form “blabla-1.2.15-2010″ ergäbe also die Zahl “12152010″. Daher ist ReverseRename nur für einen speziellen Fall (Unix-Logdateiarchive) geeignet.
  • Die original in den Dateinamen enthaltenen Zahlen werden nicht erhalten, da ReverseRename nur ein Zwischenschritt sein soll und diese Informationen – bis auf die Reihenfolge – ohnehin verlorengehen soll.
  • Die neuen Dateinamen lauten “file.001″, “file.002″, etc.

ExtractLog – neu 22.10.2010

Verwendung: ExtractLog.exe <logdatei> --h="hostname"
Oder: ExtractLog.exe <logdatei> --h="hostname" --from="date/time" --to="date/time"
Oder: ExtractLog.exe <logdatei> --h="hostname" --around="date/time" --ts=<minutes>

Extrahiert alle Zeilen aus der Datei <logdatei>, deren Hostname mit dem angegebenen Namen übereinstimmt. Ist ein Datumsbereich angegeben, werden nur diejenigen Zeilen ausgegeben, die in diesen Datumsbereich fallen.

Der Datumsbereich kann auf zweierlei Art angegeben werden: Als von/bis-Angabe mit den Parametern –from und –to, oder als Angabe eines Zeitpunkts mit –around und einem Parameter –ts, der die Minuten vor und nach diesem Zeitpunkt angibt. Lautet die Uhrzeit von Around also 10:15 Uhr und ist –ts gleich 5, wird als Zeitbereich 10:10 und 10:20 Uhr angenommen (5 Minuten vorher bis 5 Minuten nachher).

Datum und Uhrzeit muß zwingend wie folgt (inklusive der Anführungszeichen!) angegeben werden: “2010-10-22 11:48″ (Beispiel).

Download

Logfile Tools v3~ (737KB)

1 comment to LogTools

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>