Website-Icon .: blog cscholz.io :.

Debian: Lastsimulation für eMail Server (postfix/Exchange)

Für Exchange gibt es von Microsoft den LoadGenerator.

Auf Linux Basis gibt es dafür smtp-source. Dieses Tool ermöglich es eine bliebige Anzahl von eMail unter der Angabe von Sender, Empfänger, Body/Header etc. eMails an einen eMail Server zu senden. Das Tool kann auch auf Rückgabemeldungen des eMail Servers reagieren und so vor dem Zusammenbruch des Systems aufhören.

Der Befehl für für die generierung von 1000 eMails ohne Body sondern nur mit Betreff würde dann so aussehen:

smtp-source -c -f admin@domain.tld -M mail.domain.tld -m 1000 -S Last-Test -t admin@domain.tld mail.domain.tld:25

Bei diesem Befehl wird für jede eMail eine neue Verbindung aufgemacht. Dies lässt sich aber mit dem Parameter -d unterbinden.

Es gibt nun zwei Möglichkeiten wie die eMails am Zielsystem verarbeitet werden.

1. eMails verwerfen

Um nur die Übertragungsgeschwindigkeit zu testen, können die eMails bei der Ankunft am Zielsystem verworfen werden. Dazu wird smtp-sink für die eMail Annahme auf Port 26 gestartet. Bei dem Versand der eMail muss dann natürlich der Port entsprechende geändert werden:

smtp-sink -c -4 :26 100

2. eMails durch das ganze System leiten

Um aber die Verarbeitungsgeschwindigkeit des Gesamtsystems zu testen kann man die eMails auch noch durch die verwendeten Filter laufen lassen. Es ist evtl. notwendig die Konfiguration des eMail Servers vor dem Test zu modifizieren. Folgende Optionen würden den Massenversand stoppen:

Es macht unter umständen auch Sinn, Auswertungstools wie mailgraph vorher zu stoppen um die Statistik nicht zu verfälschen. Die Logeinträge kann man nach dem Test ja wieder heraus filtern:

cat /var/log/mail | grep -v domain.tld > /var/log/mail.log && cat /var/log/mail.log > /var/log/mail && rm /var/log/mail.log

Links:
http://www.postfix.org/smtp-source.1.html
http://www.postfix.org/smtp-sink.1.html

Die mobile Version verlassen