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