OMD mit ssmtp verwenden
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:
1# yum install -y ssmtp
2# cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.initial
3# vi /etc/ssmtp/ssmtp.conf
4...
5root=mymail@myhoster.tld
6mailhub=smtp.myhoster.tld
7rewriteDomain=hoster.tld
8UseTLS=Yes
9UseSTARTTLS=Yes
10AuthUser=mymail@myhoster.tld
11AuthPass=...
12FromLineOverride=yes
13...
Anschließend sollte die Funktionalität von ssmtp
getestet werden, hierzu empfiehlt sich auch ein Blick in die Protokolldatei /var/log/maillog
:
1# uptime|sendmail mail@hoster.tld
2# 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:
1# vi /opt/omd/sites/SITE/lib/nagios/plugins/notify-by-email.pl
216gg
3...
4my $mail = $ENV{'OMD_ROOT'}.'/bin/mail -t';
Diese Zeile muss wie folgt angepasst werden:
1my $mail = $ENV{'OMD_ROOT'}.'/bin/mail';
Ein symbolischer Link muss noch angepasst werden, damit das innerhalb der Site definierte mail
-Kommando auf ssmtp
zeigt:
1# rm /opt/omd/sites/SITE/bin/mail
2# 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:
1SITE:sender@hoster.tld
Ein Test innerhalb des Site sollte nun funktionieren:
1# su - SITE
2$ 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:
1# chkconfig postfix off
2# service postfix stop
3# rm /etc/alternatives/mta
4# ln -s $(which ssmtp) /etc/alternatives/mta
Das funktioniert natürlich nur, wenn man keine lokale Mailzustellung benötigt. 😉