| die letzten Änderungen * Seitenstruktur * Stichwortsuche :


logo_puschin.jpg

Startseite

Knowledge base



Kontakt

Impressum

Knowledge base - Apache

Knowledge base

13 Benutzer online Druckversion




zurück



Apache
mod_accounting für Apache 1.3

Möchte ein Webseitenbetreiber wissen, wieviel Traffic die virtuellen Webserver
im einzelnen verbraucht haben, dann kann er das Modul "Accounting" einsetzen,
den Sourcecode gibt es unter http://sourceforge.net/projects/mod-acct/

Einfach herunterladen und kompilieren, das entstehende Apache Modul nach
/usr/lib/apache kopieren (Achtung : Der Pfad kann von System zu System
variieren) und danach erstmal eine kleine Datenbank anlegen (z.B. diverse) und
dann in dieser neuen Datenbank eine Tabelle (z.B. ipacct) :

#
# Tabellenstruktur für Tabelle `ipacct`
#

CREATE TABLE `ipacct` (
  `id` bigint(20) NOT NULL auto_increment,
  `tstamp` datetime NOT NULL default '0000-00-00 00:00:00',
  `vhost` text NOT NULL,
  `user` text NOT NULL,
  `bytesin` bigint(20) NOT NULL default '0',
  `bytesout` bigint(20) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=15 ;

Jetzt können wir die httpd.conf anpassen :

LoadModule accounting_module  lib/apache/mod_accounting.so
AddModule mod_accounting.c

#
# MOD_ACCOUNTING
#
<IfModule mod_accounting.c>
AccountingQueryFmt "UPDATE ipacct set tstamp=NOW(), bytesin = bytesin + %r,
bytesout = bytesout + %s where vhost = '%h';"
# AccountingQueryFmt "INSERT INTO ipacct( tstamp, vhost, user, bytesin,
bytesout ) VALUES( NOW() , '%h', '%u', %r, %s );"
AccountingDatabase diverse
AccountingDatabaseDriver mysql
AccountingDBHost localhost 3306
AccountingLoginInfo [BENUTZER] [PASSWORT]
# AccountingTimedUpdates 1
# AccountingIgnoreHosts a list of hosts to ignore. You can specify a
#                        single IP (e.g. 192.168.1.1), a host/mask pair
#                        (e.g. 192.168.1.1/255.255.255.0) or a range
#                        (e.g. 192.168.1.1-192.168.1.5)
</IfModule>

Bevor wir jetzt einen Neustart des Apache Webservers durchführen, müssen wir,
da es sich um ein MySQL Update Kommando handelt, für jeden virtuellen Host
einen leeren Eintrag in die Datenbank einfügen.

mysql> insert into ipacct ('vhost') VALUES ('www.elveb.de')

Eventuelle Fehler werden im jeweiligen Error Log des virtuellen Servers
ausgegeben.

Man kann sich auch ein PHP Skript zum monatlichen Rotieren bauen, vorher muss
man natürlich analog zur obigen Tabelle eine weitere Tabelle anlegen :


<?php
/*
        IPACCT ROTATE
*/
$link=mysql_connect("localhost","","");
$select=mysql_db_query("diverse","SELECT * from ipacct");
$anzahl=mysql_num_rows($select);

$timestamp=date("U");
$timestamp=$timestamp-600;
$month=date("m",$timestamp);
$year=date("Y",$timestamp);

echo "HTTP Accounting $month/$year :nn";

for ($a=0; $a<$anzahl; $a++) {
        $row=mysql_fetch_array($select);

        // DIE AKTUELLEN DATEN AUSLESEN
        $vhost=$row["vhost"];
        $bytesin=$row["bytesin"];
        $bytesout=$row["bytesout"];

        // AUSGEBEN
        echo "Virtual Host : ".$vhost.",
        bytesin = ".$bytesin.",
        bytesout= ".$bytesout."n";

        // IN HISTORY DATENBANK SCHREIBEN
        $insert=mysql_db_query("diverse","

        INSERT INTO ipacct_history
        (month,year,vhost,bytesin,bytesout)
        VALUES
        ('$month','$year','$vhost','$bytesin','$bytesout');

        ");

        // BYTESIN UND BYTESOUT AUF 0 SETZEN
        $update=mysql_db_query("diverse","
        UPDATE ipacct SET
        bytesin='0',bytesout='0' where vhost='$vhost'");
}

?>


zurück



Knowledge base wurde zuletzt bearbeitet am 12.07.13 durch Frank

www.puschin.de
login

<body bgcolor='#FFFFFF' link='#000000' vlink='#000000' alink='#000000' text='#000000'><font face='Verdana' size='2'><strong>www.puschin.de</strong><br>Die Webseite http://www.puschin.de bietet eine interessante Webseite zu vielen Themen aus dem Bereich Linux und Windows. Man findet hier Tipps und Tricks zu cms php apache postfix openxchange tomcat windows linux firewall <br><br><font face='Verdana' size='2'><li><a href='cms.php?print=&aktion=thema_anzeigen&menue_id=191'>Startseite</a><font face='Verdana' size='2'><li><a href='cms.php?print=&aktion=thema_anzeigen&menue_id=63'>Knowledge base</a><font face='Verdana' size='2'><li><a href='cms.php?print=&aktion=thema_anzeigen&menue_id=57'>Kontakt</a><font face='Verdana' size='2'><li><a href='cms.php?print=&aktion=thema_anzeigen&menue_id=9'>Impressum</a></body>