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:

# yum install -y ssmtp
# cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.initial
# vi /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:

# vi /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. 😉

2 Kommentare Schreibe einen Kommentar

  1. Hello.
    Thanks, great and simple solution.
    Have You noticed that after that change OMD ignores FROM: settings from /omd/sites/SITE/etc/mail-templates?

    Radek

    • Hi!

      Thanks for the feedback and sharing your tip! Never tried to alter the template – by now I always customized the FROM-header by modifying the postfix or /etc/ssmtp/revaliases configuration.

      Will have a look at it when I’m doing the next OMD installation. 🙂

      Best regards,
      Christian.

Schreibe einen Kommentar