Logging

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen

Allgemeines

Der zur Abrechnung herangezogene Traffic wird pro Tag dem Paketadmin als Logfile zugänglich gemacht. Für jeden Monat wird eine eigene Datei angelegt. Dieses ist unter dem Namen /home/pacs/xyz00/var/traffic-YYYY-MM.log zu finden und enthält mehrere durch ein Semikolon voneinander abgetrennte Felder, zum Beispiel:

# Datum ; Pac ; Trafficlimit Monat ; Trafficlimit Tag ; Trafficsumme ; HTTP ; FTP ; POP3
2004-01-01;xyz00;4096;136.533;26.404;25.467;0.225;0.712
2004-01-02;xyz00;4096;136.533;76.715;61.936;0.055;14.724

Dabei bedeuten die Spalten im Einzelnen:

  1. Datum der Messung im Format YYYY-MM-DD
  2. Name des Paketes
  3. Gebuchter Gesamttraffic pro Monat in Megabytes
  4. Durchschnittlich möglicher Traffic in Megabytes pro Tag bei einer gleichmäßigen Nutzung
  5. Trafficverbrauch am angegebenen Tag in Megabytes
  6. Trafficverbrauch für HTTP in Megabytes
  7. Trafficverbrauch für FTP in Megabytes
  8. Trafficverbrauch für POP3/IMAP in Megabytes 

Auf diesen Zahlen basieren auch die automatisch verschickten Hinweismails zur Trafficnutzung, falls diese an einem Tag einmal über dem rechnerischen Mittelwert liegen sollte.

Traffic bei eigener IP-Adresse

Bei Paketen mit einer eigenen IP-Nummer werden die kumulierten Traffic-Zahlen (inbound und outbound) der IPC-ng Auswertung für die IP-Nummer des Pakets monatlich in einer Datei mit dem Namen

/home/pacs/xyz00/var/trafficlog.YYYY-MM

täglich aktualisiert. Die Zahlen des aktuellen Tages stehen außerdem in der Datei

/home/pacs/xyz00/var/trafficlog.today

zur Verfügung. Diese werden alle zwei Stunden aktualisiert.

Das Beispiel zeigt eine Tagesstatistik vom 14.7.2003 von Mitternacht bis 11:02:54 für eine fiktive IP-Adresse 10.11.12.13. Es wurde in diesem Zeitraum etwa 144 KB eingehender und 246 KB abgehender Traffic für diese IP-Adresse gemessen.

IP accounting summary
Host: pima.hostsharing.net / Time created: 2003/07/14 11:02:54 CES
Data from 2003/07/14 00:00:00 CES to 2003/07/14 11:02:54 CES
  10.11.12.13 in    :   147764
  10.11.12.13 out   :   252910

HTTP-Traffic

Im Moment steht das Access-Log des Webservers im jeweiligen Paket in Echtzeit zur Verfügung und kann unter

/home/pacs/xyz00/var/web.log

eingesehen werden. Kurz nach Mitternacht werden aus dieser Datei einzelne Logfiles entsprechend dem abgerufenen Domainnamen generiert und komprimiert abgespeichert. Der Dateiname lautet

/home/pacs/xyz00/var/web-www.example.org-YYYYMMDD-HHMI.log.gz

enthält neben aufgerufener Domain und Subdomain auch Datum und Uhrzeit der Generierung.

Die Dateien werden normalerweise 48 Tage lang aufgehoben und dann automatisch gelöscht, sofern der Paktet-Admin sie nicht bereits selber gelöscht, umbenannt oder verschoben hat.

Vom Webserver wird lediglich die Größe des zum Client übertragenen Dokumentes im Logfile vermerkt. Der tatsächlich entstehende Traffic liegt jedoch über diesem Wert, da der Request zur Anforderung hinzugezählt werden muss und auch durch das zur Übertragung verwendete TCP/IP-Protokoll zusätzliche 40 Bytes Overhead entstehen. Wir benutzen deshalb die nachfolgende Formel zur Abschätzung des tatsächlich entstandenen Traffics:

Traffic = 1.15 * ( Documentsize + Requestsize + 40 )

FTP-Traffic

Das Logfile des FTP-Servers liegt nur zentral vor. Einmal pro Nacht werden die für das jeweilige Paket relevanten Einträge des vergangenen Tages gefiltert und unter dem Namen

/home/pacs/xyz00/var/ftp-YYYYMMDD-HHMI.log.gz

als komprimierte Datei abgelegt. Auch hier werden vom System die Logfiles nach 48 Tagen automatisch gelöscht, wenn der PaketAdmin oder DomainAdmin nichts anderes eingestellt hat.

Die Berechnung des tatsächlich genutzten Traffics wird ähnlich wie beim HTTP-Traffic vorgenommen. Die Größe des Requests beinhaltet unter anderem den angesprochenen Dateinamen und kompensiert auch einige nicht im Logfile protokollierte Operationen (beispielsweise das Auflisten von Verzeichnisinhalten). Die verwendete Formel lautet:

Traffic = 1.15 * ( Filesize + Requestsize)

Die Felder (Spalten) sind der Reihe nach:

Felder Beschreibung
Datum/Zeit aktuelles Datum und aktuelle Zeit auf localhost im Format DDD MMM dd hh:mm:ss:YYYY
Dauer Anzahl der angefangenen Sekunden, die die Datei-Übertragung gedauert hat
Remote Domain-Name oder IP-Nummer der Gegenstelle des Transfers (immer localhost bei ssh Tunnel)
Größe Anzahl der Bytes in der übertragenen Datei
Dateiname Name oder vollständiger Pfad der übertragenen Datei
Mode a - ASCII Transfer Type
b - Binäre Dateiübertragung
Format C - Datei wurde komprimiert (compress)
U - Datei wurde entkomprimiert (uncompressed)
T - Datei wurde als tarball versandt (tarred)_ - Datei blieb unverändertRichtung
i - Datei wurde auf localhost hochgeladen (input)
o - Datei wurde von localhost heruntergeladen (output)
d - Datei wurde auf localhost gelöscht (delete)
Zugriff r - Der folgende User-name ist ein regulärer user (real)
g - Der folgende User-name gehört zu einem Gastzugang mit Password (guest)
a - Der folgende User-name ist ein Passwort (anonymous)
User-name Name des users, unter dem der Zugriff bzw. die Übertragung erfolgte, sofern er sich angemeldet hat, oder das Passwort bei anonymen Usern.
Service Name des Service der Übertragung, normalerweise ftp oder fsp.
Authentifizierung 0 - keine / standard
1 - RFC 931 Authentifizierung
Auth-User-Id Wenn ein authentifizierter User vorliegt, dessen Name oder Id, ansonsten wird "*" ausgegeben.
Beendigung c - Transfer beendet (complete)
i - Übertragung unvollständig (incomplete)

Mail-Traffic

Eine Bereitstellung der täglichen Logs über POP3- und IMAP-Zugriffe auf Paketuser ist optional möglich und wird im nächsten Abschnitt beschrieben. Die Logfiles werden dann unter dem Namen /home/pacs/xyz00/var/mail-YYYYMMDD-HHMI.log.gz als komprimierte Datei abgelegt.

Für die Berechnung des Traffics wird die unten angegebene Formel benutzt. Mit den 1500 Bytes pro Verbindung wird das beim Auf- und Abbau der Verbindung ablaufende Protokoll zwischen Mailclient und Server berücksichtigt.

Traffic = 1.15 * ( Mailsize + 1500 )

Logs über den Traffic des SMTP-Servers stehen derzeit nur den Hostmastern zur Verfügung. Eine Verteilung der relevanten Einträge auf die Pakete wird angestrebt, ist jedoch durch die vielfältigen Wege einer Mail durch das System (jeweils mit unterschiedlichen Logeinträgen) ein größeres Problem.

Konfigurationsmöglichkeiten

=== für Paket- und Domainadmins ==?

Die nachfolgende Beschreibung zeigt, wie die automatische Erstellung der Traffic-Logs im Paket beeinflusst werden kann. So lässt sich beispielsweise die Erstellung komplett unterdrücken, wenn man an den Logs nicht interessiert ist oder die Webserverlogs werden alternativ im Verzeichnis der Domain- oder des Domainadmins angelegt.

Die Konfiguration der Features erfolgt zunächst über eine vom Paketadmin anzulegende Steuerdatei. Die Datei muss unter dem Namen /home/pacs/xyz00/etc/config.ini erstellt werden.

Das Format dieser Datei ist das bekannte Inifile-Format, d.h. es gibt sogenannte Sektionen (in eckigen Klammern) und darin Parameter, denen ein Wert zugewiesen wird. Durch die Sektionen wird der Gültigkeitsbereich der darin festgelegten Parameter bestimmt. Derzeit gibt es neben der Sektion [global], die Parameter für das komplette Paket enthält, noch die domainspezifischen Sektionen. Der Name dieser Sektionen setzt sich aus einem Prefix dom: und dem jeweiligen Domainnamen zusammen. Eine Beispielkonfiguration könnte folgendermaßen aussehen:

;
; Config
;
[global]
mail_log_generate       = no
ftp_log_generate        = yes
ftp_log_purge           = yes
http_domaintraffic      = yes
use_domain_config       = http_log_generate, http_log_retention
[dom:example.org]
http_log_generate       = no
[dom:www.example.org]
http_log_generate       = yes
http_log_retention      = 10
[dom:example.com]
http_log_directory      = domain
http_log_generate       = yes
http_log_purge          = no

Derzeit lassen sich in der Konfigurationsdatei die nachfolgenden Parameter definieren:

  • http_log_generate legt fest, ob für das Paket oder die Domain überhaupt Logfiles generiert werden sollen. Die möglichen Werte für diesen Parameter sind YES oder NO. Unabhängig davon fließt der produzierte Traffic natürlich in die Abrechnung mit ein. Defaultwert: YES.
  • http_log_directory gibt an, wo die Logfiles gesichert werden sollen. Die erlaubten Werte sind PAC (Logfiles im var-Verzeichnis des Paketes), DOMADMIN(Logfiles im var-Verzeichnis des Domainadmins) oder DOMAIN (Logfiles im var-Verzeichnis der Domain). Defaultwert: PAC.
  • http_log_purge ermöglicht eine Kontrolle über das automatische Löschen der Logfiles. Bei der Einstellung YES werden die Logfiles wie bisher regelmäßig vom System gelöscht. Die Einstellung NO verhindert ein automatisches Löschen. Defaultwert: YES.
  • http_log_retention kontrolliert den Zeitraum, nach dem die vorhandenen Logs automatisch gelöscht werden, falls dies durch den vorangegangenen Parameter nicht unterbunden wird. Als Werte sind Ganzzahlen von 1 bis 10000 möglich, die dann die Aufbewahrungszeit in Tagen angeben. Defaultwert: 48.
  • http_domaintraffic ermöglicht die zusätzliche Erzeugung eines Logs mit den Trafficdaten der einzelnen Hosts im Paket. Dies kann mit YES ein- und mit NO ausgeschaltet werden. Defaultwert: NO.
  • ftp_log_generate steuert analog zu http_log_generate die Generierung der FTP-Logs. Defaultwert: YES.
  • ftp_log_purge erlaubt die Kontrolle über das Löschen der FTP-Logs. Defaultwert: YES.
  • ftp_log_retention ist für die Festlegung der Aufbewahrungsdauer der FTP-Logs zuständig. Defaultwert: 48.
  • mail_log_generate legt fest, ob Logfiles über den Mailverkehr des Paketes (derzeit nur POP3 und IMAP) angelegt werden sollen. Defaultwert: NO.
  • mail_log_purge ermöglicht auch hier die Kontrolle über das Löschen der Maillogs. Defaultwert: NO.
  • mail_log_retention Kontrolliert analog zu den anderen Parametern die Aufbewahrungsdauer der Maillogs. Defaultwert: 48.
  • use_domain_config ermöglicht dem Paketadmin, die gezielte Weitergabe der Konfigurationsmöglichkeit an den jeweiligen Domainadmin. Die gültigen Werte sind YES oder ALL für die Weitergabe aller Konfigurationsmöglichkeiten oder eine durch Kommata unterteilte Liste der gewünschten Parameternamen. Dies ist per Default nicht aktiviert.

Bei der Ermittlung eines Parameters gilt der Grundsatz, dass eine allgemeine Sektion von einer spezielleren Sektion überschrieben wird. Der in [dom:www.example.org] gesetzte Parameter gilt also vor dem in [dom:example.org] hinterlegten Wert und dieser wird wiederum vor dem in [global] eingetragenen Wert verwendet.

In der angegebenen Beispielkonfiguration wird also keine Generierung der Maillogs gewünscht. Dagegen werden die FTP-Logs im Paket generiert und auch wieder automatisch gelöscht. Da die Logfiles für Mail- und FTP-Traffic nur Paketweise generiert werden, sind diese Parameter auch nur in der Sektion [global] erlaubt. Für die Aufbewahrungsdauer der FTP-Logs ist hier kein Wert festgelegt worden und damit wird der systemweite Default genommen. Die Defaultwerte sind in der Sektion [pacs] der Datei /usr/local/etc/config.ini hinterlegt.

Durch den Parameter http_domaintraffic wurde die Erzeugung eines zusätzlichen Logfiles mit den Trafficwerten der Einzeldomains aktiviert. Auch dieser Parameter ist nur in der Sektion [global] erlaubt, da er paketweit gilt. Die so erzeugte Datei wird unter dem Namen /home/pacs/xyz00/var/domaintraffic-http-YYYY-MM.log angelegt und hat nachfolgendes Format:

# Datum ; Domain ; Requests ; MB
2003-08-20;xyz00.hostsharing.net;28;0.213
2003-08-20;www.example.net;2;0.001
2003-08-20;www.example.org;147;0.642
2003-08-21;www.example.org;168;0.450
2003-08-22;xyz00.hostsharing.net;75;0.354
2003-08-22;example.net;2;0.001
2003-08-22;www.example.org;64;0.181

Über den Parameter use_domain_config erlaubt der Domainadmin, dass die im Paket eingerichteten Domainadmins jeweils auch eine Datei ~/etc/config.ini anlegen können, wo sie die Parameter für die Erzeugung und Aufbewahrungsfristen der Logs selber steuern können. Der Parameter kann auch innerhalb einer Sektion für eine Domain gesetzt werden und erlaubt dies dann nur für die jeweilige Domain.

Für Zugriffe auf die Domain example.org werden laut Konfiguration keine Logfiles erzeugt, während dies für die Subdomain www.example.org durchaus gemacht wird. Diese Logfiles werden vom System auch nach 10 Tagen wieder gelöscht, wenn nichts andere eingestellt .

Für die Domain example.com werden alle Logfiles im var-Verzeichnis der Domain (also /home/doms/example.com/var) erzeugt. Da keine Sektionen für irgendwelche Subdomains angelegt sind, gilt dies auch für alle Subdomains. Ein automatisches Löschen dieser Logs wird vom System nicht mehr vorgenommen.