| This content in english |

Debian Squeeze - Icinga und Postfix

Situation

Icinga ist installiert und funktioniert korrekt.

Ziel

Das System soll eine E-Mail verschicken, wenn mit einem der überwachten Geräte oder Dienste etwas nicht stimmen sollte.

Lösung

Eine 'einfache' Lösung ist, 'qpopper' zu installieren, und die E-Mails des lokalen Benutzers selbst abzurufen. Das klappte in einem Test sofort. Der offensichtliche Nachteil ist, dass es vom Abrufen der E-Mails abhängt, ob und wann die Nachricht über ein Problem bekannt wird.

Besser erscheint mir, das System so einzurichten, dass Icinga selbst eine Nachricht an den Mailserver der Domain bzw. Windows-Domäne verschickt. Das habe ich mit Postfix erreicht. Die Konfiguration ist angelehnt an die, welcher unter den Anleitungen zu einem Mailrelay auf dieser Website hier beschrieben ist.

Postfix installieren

Eingabe:

# apt-get install postfix
Bei der Auswahl Internet-Site wählen.

Beispiel: /etc/postfix/main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

# deaktivere myhostname, verwende mydomain, main.cf ist flexibler einsetzbar
# darf auf verschiedene Rechner kopiert werden.
# Postfix holt sich myhostname selbst aus des System.
#myhostname = icinga.domainname.local
mydomain = domainname.local
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#myorigin = /etc/mailname
myorigin = $mydomain
# geaendert wurde mydestination - letzte Bestimmung der E-Mails
# mydestination = mailrelay.domainname.local, localhost.domainname.local, , localhost
mydestination = $mydomain
$myhostname
relayhost = [123.123.123.123]
mynetworks = 123.123.123.123/32,
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
#inet_interfaces = loopback-only
inet_interfaces = all
# Die Transportdatei muss gesondert eingerichtet werden.
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550
relay_domains = domainname.de

Transporteintrag erstellen und einbinden

Postfix soll wissen, an welchen internen Mailserver es die E-Mails weiterleiten soll. Hier wird der Domainname (domainname.de) angegeben, wie er im Internet vorkommt.

Eingabe:

# touch /etc/postfix/transport

Inhalt in der ersten Zeile der Datei:

domainname.de smtp:[ip-adresse]

Die Klammern [ ] müssen mit in der Datei stehen.

Einbinden der Transportdatei; das System erstellt eine transport.db.

Eingabe:

# postmap hash:/etc/postfix/transport

Klar ist auch, dass man 'aufgeschmissen' ist, wenn icinga und/oder der Mailserver ein ernstes Problem haben sollten.

Änderungen wirksam werden lassen

# /etc/init.d/postfix reload