no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | adminstoriesmitapacheinmysqlloggen [20120903 05:58] (aktuell) – angelegt Dirk Deimeke | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Mit Apache in MySQL loggen ====== | ||
+ | * Urspruenglicher Autor: Dirk Deimeke | ||
+ | * Urspruengliches Datum: 23.09.2011 | ||
+ | |||
+ | Der Apache-Webserver erzeugt im Standard Logdateien, was auch gut ist. Manchmal braucht man für Auswertungen die Daten allerdings in einer Datenbank. Wie beispielsweise bei der Analyse der Downloadzahlen eines Podcasts. Genau fuer diesen Zweck wurde das Modul [[http:// | ||
+ | |||
+ | Auf Debian basierten Systemen wird '' | ||
+ | |||
+ | <code sql> | ||
+ | GRANT USAGE ON * . * TO ' | ||
+ | CREATE DATABASE IF NOT EXISTS `apache` ; | ||
+ | GRANT ALL PRIVILEGES ON `apache` . * TO ' | ||
+ | In ''/ | ||
+ | |||
+ | <code apache> | ||
+ | LogSQLCreateTables on | ||
+ | LogSQLDBParam socketfile / | ||
+ | LogSQLTransferLogFormat IAbPcMfRhluTrmHtUapzqQsSV</ | ||
+ | |||
+ | Wichtig, diese Konfiguration muss ausserhalb einer VirtualHost-Directive liegen. | ||
+ | |||
+ | Fuer den VirtualHost richten wir jetzt innerhalb der vHost-Konfiguration den Namen der Tabelle mit '' | ||
+ | |||
+ | Jetzt aktivieren wir alles noch mit folgenden Befehlen auf der Kommandozeile: | ||
+ | |||
+ | <code bash> | ||
+ | apache2ctl graceful # Pruefen der Konfiguration und Neustart des Apache</ | ||
+ | |||
+ | Damit ist das Logging in die Datenbank abgeschlossen, | ||
+ | |||
+ | <code sql> | ||
+ | kurzname char(30) NOT NULL, | ||
+ | langname char(90) NOT NULL, | ||
+ | laenge bigint(20) unsigned NOT NULL, | ||
+ | PRIMARY KEY (`kurzname`) | ||
+ | ) ENGINE=MyISAM DEFAULT CHARSET=utf8;</ | ||
+ | |||
+ | Erzeugt eine Tabelle, in die wir alle Dateien, die uns interessieren eintragen. | ||
+ | |||
+ | <code bash> | ||
+ | ls -l / | ||
+ | while read laenge langname | ||
+ | do | ||
+ | echo " | ||
+ | done >> deimhart_episoden.sql | ||
+ | mysql apache < deimhart_episoden.sql</ | ||
+ | |||
+ | Liest alle Dateien und deren Laengen aus dem Filesystem und schreibt das in die Datenbank. | ||
+ | |||
+ | <code sql> | ||
+ | FROM deimhart_episoden e, deimhart_net n | ||
+ | WHERE e.langname=n.request_file</ | ||
+ | |||
+ | Obige Abfrage gibt abschliessend die Anzahl der Downloads aus. Berechnet wird sie durch die Summe der übertragenen Bytes pro Episode geteilt durch die Laenge der entsprechenden Episode. | ||
+ | |||
+ | [[adminstoriesartikel|Zurück zur Uebersicht]] |