Mailserver Statistik: AwStats für Postfix
Achtung, jetzt wirds mal wieder technisch Es geht um die Auswertung der Protokolldateien eines E-Mail-Servers.
Möchte man im Auge behalten, was der Mailserver den lieben langen Tag so macht, bietet sich der Einsatz eines Statistiktools an. AwStats ist ein solches, das neben Webserver Logs auch eine Reihe von Mailserverlogs auswerten und grafisch ansprechend darstellen kann.
Leider gibt es ein kleines Problem beim Auswerten der Logfiles von Postfix unter Ubuntu beim Einsatz von Amavis (Mail-Virus-Scanner), da das zu AwStats mitgelieferte Perlskript, das die Logdatei aufbereitet, nicht ganz auf dem aktuellen Stand ist. Es werden nur noch die Meldungen der fehlgeschlagenen oder abgelehnten Mails aufgelistet.
Da ich kein Perlfan bin, war ich ganz froh, bei netzpiraten einen Beitrag zum Thema mit einem Ruby-Skript zu finden, dass genau diese Aufgabe, die Logdatei für AwStats aufzubereiten, für mich übernehmen kann.
Ich habe es noch um 2 Dinge erweitert:
- – die size Angabe , also die Größe der Mails, wird nun mit ausgewertet und ausgegeben
- – from/to wird richtig geparsed und mit ausgegeben
Konfiguration
Eingebunden wird das Skript wie auch zuvor das Perlskript, bei mir schauts dann so aus:
LogFile=“/path/to/maillogconvert.rb < /var/log/mail.log.0 |" und der passende Format-Parameter LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd" Wahrscheinlich muss man für jede Postfix-Konfiguration ein wenig am Skript drehen, aber abgesehen von den regulären Ausdrücken ist dies mit Ruby ja kein Hexenwerk
Hier also das Skript zum Download: maillogconvert.rb
Ruby ?!
Uhm, ja, richtig, ich hab mich schon im letzten Semester begeistern lassen, mir die Sprache mal anzusehen, besonders durch die verschiedenen Ruby On Rails Demos.
Die beste Seite zum Einstieg, die mir dabei begegnet ist, ist das interaktive Tutorial Try Ruby – hat einfach Spaß gemacht damit anzufangen, Ruby kennenzulernen Wenn man damit durch ist, kann man sich Why’s (Poignant) Guide to Ruby vornehmen oder einfach in der Doku wühlen.
Klar, prinzipiell nehmen sich die aktuellen Skriptsprachen wie PHP, Python oder eben Ruby nicht viel, aber Ruby ist erfrischend einfach, hat eine Syntax, die Spass macht und man kommt schnell zum Ergebnis. Wahrscheinlich ist Ruby auch für Einsteiger sehr gut geeignet. Ich möchte empfehlen, es einfach mal auszuprobieren
Am 2. November 2007 um 16:51 Uhr
Fehlt bei LogFile nicht die Zeile?
Oder was muss ich da bei mir rein schreiben.
Am 5. November 2007 um 14:30 Uhr
OH – ja, vielen Dank für den Hinweis, habs direkt korrigiert
Ists so klarer / hilfreich?
Am 18. November 2007 um 22:20 Uhr
Jetzt ist es klar, wenn es bei meiner Mandriva installation geklappt hat melde ich mich noch mal.
Am 4. Mai 2009 um 22:43 Uhr
Hallo, ich komm mit den Maillogs nicht so recht klar, da ist ja keine Grösenangabe drinnen und dementsprechend wird in den awstats auch nichts
angezeigt. Kann mir da vielleicht wer helfen?
Am 8. Mai 2009 um 22:22 Uhr
Hallo,
in meinen Maillog ist eine size= angabe vorhanden, die wird im vorletzten Block des Skriptes auch abgefragt. Hilft Dir das weiter?
Grüße
Am 11. Mai 2009 um 07:55 Uhr
Hallo, Ab einer bestimmten Größe des Maillogs gibt es laut Tante Gooogle einen Bug in manchen Versionen des
Qmgr wo dieser nicht mehr loggt. Nach einem logrotate war dann auch die Size-Angabe wieder im Log.
Nur leider steht bei der Ausgabe des Scripts trotzdem nur ein „?“. Mit den ganzen regulären Ausdrücken
ist das Script für mich als nichtprogrammierer kaum lesbar, darum weiss ich jetzt nicht so recht wo
ich anfangen kann zu suchen.
Grüße
Matthias