Archiv für Dezember 2006

31
Dez

Postfix Logdateien mit AWStats auswerten

Um die Logdateien von Postfix auszuwerten und auch noch grafisch schön aufzubereiten eignet sich AWStats hervorragend. AWStats bringt auch mit maillogconvert.pl ein Perlscript für die Konvertierung von Maillogs von diversen Mailserrvern mit um die Mailserver Logfiles auswerten zu können. Unter Ubuntu in Kombination mit Avamis klappt nun nach der Umstellung zur aktuellsten Version Edgy Eft die Auswertung nicht mehr richtig: Das Perlscript findet nur noch alle fehlgeschlagenen Emails, jedoch keine welche erfolgreich versendet wurden (SMTP Status 250). Da das Script durch die Unterstützung diverser Mailserver ziemlich gross ist und ich auch kein Perl-Fan, habe ich mir selber ein kleines Script für die Konvertierung in Ruby geschrieben:

#!/usr/bin/env ruby
# Converts a postfix log file into awstats mailserver log
# Author: Michael Kessler
# No rights reserved
require 'date'
senders = Hash.new
mailservers = Hash.new
year = Time.now.strftime(" %Y")
for line in STDIN.read.split("\n") do
 
  #rejected messages with full qualified hostname of mailserver
  if line =~ /^(\w\w\w [\d\s]\d) (\d\d:\d\d:\d\d).*NOQUEUE.*RCPT from ((?:[-a-z0-9]+\.)+[a-z]{2,})\[.*\]: (\d\d\d).*from=<([^@\s]+@(?:[-a-z0-9]+\.)+[a-z]{2,})> to=<([^@\s]+@(?:[-a-z0-9]+\.)+[a-z]{2,})>/
    puts “#{Date.parse($1 + year).strftime(’%Y-%m-%d’)} #{$2} #{$5} #{$6} #{$3} - SMTP - #{$4} ?”
 
  #rejected messages with only ip address of mailserver
  elsif line =~ /^(\w\w\w [\d\s]\d) (\d\d:\d\d:\d\d).*NOQUEUE.*RCPT from unknown\[(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})?\]: (\d\d\d).*from=<([^@\s]+@(?:[-a-z0-9]+\.)+[a-z]{2,})> to=<([^@\s]+@(?:[-a-z0-9]+\.)+[a-z]{2,})>/
    puts “#{Date.parse($1 + year).strftime(’%Y-%m-%d’)} #{$2} #{$5} #{$6} #{$3} - SMTP - #{$4} ?”
 
  #amavis passed email, get sender for accepted messages
  elsif line =~ /^.*amavis.* Passed.*<([^@\s]+@(?:[-a-z0-9]+\.)+[a-z]{2,})> -> <.* queued_as: (\w+),/
    senders.store($2,$1)
 
  #connected mailserver with full qualified hostname
  elsif line =~ /^.*postfix\/smtpd\[\d+\]: (\w+): client=((?:[-a-z0-9]+\.)+[a-z]{2,})\[.*\]/
    mailservers.store($1,$2)
 
  #connected mailserver with only ip address
  elsif line =~ /^.*postfix\/smtpd\[\d+\]: (\w+): client=unknown\[(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})?\]/
    mailservers.store($1,$2)
 
  #accepted messages
  elsif line =~ /^(\w\w\w [\d\s]\d) (\d\d:\d\d:\d\d).* (\w+): to=<([^@\s]+@(?:[-a-z0-9]+\.)+[a-z]{2,})>.* queued as (\w+)/
    puts “#{Date.parse($1 + year).strftime(’%Y-%m-%d’)} #{$2} #{senders.fetch($5,’unknown’)} #{$4} #{mailservers.fetch($3,’unknown’)} - SMTP - 250 ?”
  end
end

Das Problem mit den gesendeten Emails ist, dass die benötigten Informationen nicht auf einer Logzeile zu finden sind. Desshalb müssen diese Vorgängig geparst werden und anhand der Message-ID beim Senden angereichert werden. Dies kann bei einer täglichen Rotation der Logdateien auch dazu führen, dass nicht alle Informationen in der gleichen Logdatei zu finden ist.

Das Script sieht auf den ersten Blick nicht wirklich lesbarer als ein Perl Script aus, was jedoch an den langen regulären Ausdrücken liegt und nicht an Ruby. Das Script wird übrigens genau gleich wie maillogconvert.pl in die AWStats Konfiguration eingebunden.

14
Dez

Der fast perfekte Hackintosh

In letzter Zeit hat es einiges an Neuerungen für den Hackintosh gegeben: Der neuste Kernel, welcher von Apple als Opensource veröffentlicht wird, wurde von Semthex so erweitert, dass dieser auch auf nicht Apple Hardware bestens läuft (z.B. auch mit AMD Prozessoren). Aktuell wird daran gearbeitet, den Kernel auch auf Prozessoren mit lediglich SSE2 lauffähig zu macht (vorher war SSE3 zwingend), was mit der neusten Beta anscheinend auch gelungen ist. Seit Maxxus den ersten Kernel modifiziert hatte, wurde dieser auch immer bei den neusten Sicherheitsupdates beibehalten, womit sich der Hackintosh immer weiter von einem ‘richtigen’ Mac entfernte, da dort der Kernel ja stetig weiterentwickelt wurde. Dies hat sich durch immer vermehrt auftretende Fehler bemerkbar gemachte, was nun der Vergangenheit angehört.

Die zweite Neuerung betrifft das Problem mit den original Apple Grafiktreibern, welche EFI benötigen um voll lauffähig zu sein. Der findige Programmierer Omni hat mit seiner Titan Kernel Extension eine kleine Revolution ausgelöst: Endlich sind NVidia und auch ATI Grafikkarten z.t voll unterstützt! Mit dem Opensource Klon Natis läuft meine GeForce 6800GT mit Dual Screen mit je 1600×1200 und voller Core Image und Quarz Extreme Unterstützung.

Wer sich sowieso neue Hardware anschaffen will, kann leicht überprüfen ob seine gewünschte Komponente direkt vom Hersteller Treiber für Mac OS X mitbringt. Auf der OSx86 Webseite findet sich ausserdem im Wiki auch eine Seite über zusätzliche Treiber oder auch diverse Listen über die Hardware Kompatibilität von fertigen Desktop Systemen sowie auch einzelnen Komponenten.

Ein solcher iHack kann auf geeigneter Hardware unter Umständen sehr gut laufen. Meistens wird jedoch trotzdem noch einiges an zusätzlichem Aufwand für die Optimierung benötigt. Die Hackintosh Szene ist im Forum sehr hilfsbereit und wer sich nicht scheut ein bisschen Zeit aufzuwenden, wird mit einem sehr leistungsfähigen und gut durchdachten Betriebssystem belohnt.

Natürlich sollte man schon im Besitz einer original Mac OS X Installation-CD sein. Zwar ist auch damit ein Hackintosh nicht legitimiert, das Gewissen ist aber beruhigt und Apple bekommt auch seinen Teil für die wirklich gute Arbeit.




Dezember 2006
M D M D F S S
« Nov   Feb »
 123
45678910
11121314151617
18192021222324
25262728293031

Werbung


Buttonitis