Wer die Open Monitoring Distribution (OMD) benutzt und keinen vollwertigen Postfix oder Sendmail konfigurieren möchte (z.B. weil es sich um ein Test-System handelt) hat prinzipiell auch mit ssmtp ein alternatives Tool um Mails an einen externen Mailserver weiterzuleiten. Das Tool empfiehlt sich jedoch nur dann, wenn man keine lokale Mailzustellung benötigt.
Natürlich geht das auch mit Postfix und Sendmail – jedoch ist der Implementationsaufwand je nach Konfiguration des Mailservers deutlich höher (z.B. weil canonical maps, SASL, SSL/TLS konfiguriert werden müssen). Für schnelle Tests greife ich gerne auf ssmtp zurück, weil ich hier die gesamte Konfigurationsarbeit in einer lokalen Datei pflegen kann und in nicht mal 5 Minuten fertig bin.
Damit das funktioniert, muss natürlich zunächst ssmtp installiert und konfiguriert werden:
# yum install -y ssmtp # cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.initial # vim /etc/ssmtp/ssmtp.conf ... root=mymail@myhoster.tld mailhub=smtp.myhoster.tld rewriteDomain=hoster.tld UseTLS=Yes UseSTARTTLS=Yes AuthUser=mymail@myhoster.tld AuthPass=... FromLineOverride=yes ...
Anschließend sollte die Funktionalität von ssmtp getestet werden, hierzu empfiehlt sich auch ein Blick in die Protokolldatei /var/log/maillog:
# uptime|sendmail mail@hoster.tld # tail -f /var/log/maillog
Funktioniert der Mailversand, muss ein Skript innerhalb der zu verwendeten OMD-Site angepasst werden – interessant ist die Wertzuweisung der Variable $mail in Zeile 16:
# vim /opt/omd/sites/SITE/lib/nagios/plugins/notify-by-email.pl 16gg ... my $mail = $ENV{'OMD_ROOT'}.'/bin/mail -t';
Diese Zeile muss wie folgt angepasst werden:
my $mail = $ENV{'OMD_ROOT'}.'/bin/mail';
Ein symbolischer Link muss noch angepasst werden, damit das innerhalb der Site definierte mail-Kommando auf ssmtp zeigt:
# rm /opt/omd/sites/SITE/bin/mail # ln -s $(which ssmtp) /opt/omd/sites/SITE/bin/mail
Es ist möglich, dass der Mail-Provider verlangt, dass als Absenderadresse eine Adresse des eigenen Servers angegeben wird – in diesem Fall muss die Datei/etc/ssmtp/revaliases editiert werden:
SITE:sender@hoster.tld
Ein Test innerhalb des Site sollte nun funktionieren:
# su - SITE $ uptime|sendmail mail@hoster.tld
Sämtliche Benachrichtigungen werden nun über ssmtp versendet, es empfiehlt sich noch den vor verwendeten Mail-Dienst zu deaktivieren und einen symbolischen Link zu setzen, wenn man auch außerhalb der OMD-Site Mails versenden möchte:
# chkconfig postfix off # service postfix stop # rm /etc/alternatives/mta # ln -s $(which ssmtp) /etc/alternatives/mta
Das funktioniert natürlich nur, wenn man keine lokale Mailzustellung benötigt.