Amazon.de Widgets
Skip to content
5.Januar 2009 / Patrick

eigenens Monitoring mit Postfix und Cron-Job

closeDieser Beitrag wurde vor über 3 Monaten veröffentlicht. Die darin beschriebenen Informationen sind mit Vorsicht zu geniessen, da sie bereits veraltet oder nicht mehr gültig sein könnten. Solltest du von Neuerungen oder Verbesserungen wissen, so freue ich mich über einen klärenden Kommentar.

Im Internet findet man viele verschiedene Programme und Tools für Monitoring von Servern und Clients. Jedoch sind diese immer sehr umfangreich und komplex und bringen in meinen Augen zuviel mit, was man / ich nicht brauche.

Alles was ich möchte, ist eine Software oder ein Dienst für einen Linux (Ubuntu)-Server, der mir, im Falle eines Ausfalls, eine eMail schickt. Und für das eine komplexe Software wie Nagios zu installieren, finde ich sinnlos.

Also habe ich mir selbst überlegt, wie ich das lösen könnte. Ich habe mir dazu die Software postfix und mailx geladen und installiert.

Postfix ist eine Mail-Software für Linux und mailx brauche ich, um über die Konsole eMails mittels Postfix zu versenden.

Installation

Die Installation ist schnell gemacht, jedoch ist es von Vorteil, wenn man sich ein bisschen auskennt, da die Konfiguration viele Möglichkeiten offen lässt.

Notification – der Mailaccount

Befor man mit der Konfiguration beginnt, muss man im Besitz eines geeigneten Mail-Accounts sein. Geeignet darum, da es Mail-Anbieter wie gmail gibt, welche die eMails von postfix nicht akzeptieren wollen. Ich habe mir dazu einen GMX-Account gemacht, von welchen ich dann meine Notifications erhalte.

Die Konfiguration

Zuerst muss man die passenden Module laden. Dies wären mailx, libsasl2-modules und schliesslich postfix. Nach dem installieren beginnt gleich die Konfiguration von postfix. Dies erfolgt anhand verschiedenen Fragen.

Die Konfiguration habe ich Anhand der Wiki-Anleitung im uu.de gemacht. Da diese Anleitung natürlich sehr allgemein gehalten, gehe ich folgend auf wichtige Schritte der Konfiguration ein.

  • Als Einstatzzweck habe ich Satellite System gewählt, da mein Mailserver mich nur informieren und selbst keine Mails empfangen soll.
  • Als Local Network trägt man localhost ein, damit nur der lokale Computer das Recht hat eMails über postfix zu senden.
  • Unter SMTP relay Host trägt man den Mail-Server (mail.gmx.net) des Anbieters ein.
  • Unter Where should mail for root go? sollte man die eMail-Adresse eintragen, welche im Fall eines Ausfalls informiert werden soll.

Bei mir war es der Fall, dass nicht alle Fragen bei der ersten Konfiguration aufgetaucht sind. Also habe ich mit dem Befehl sudo dpkg-reconfigure postfix die Konfiguration nochmal aufgerufen. Nun waren alle Fragen vorhanden.

Passwort für den SMTP-Server setzen

Nun setzen wir noch das Passwort, damit wir uns beim Mail-Server von GMX identifizieren können.

Dazu rufen wir folgende Datei auf:

/etc/postfix/main.cf

dieser Datei fügt man folgende Zeilen hinzu:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
sender_canonical_maps = hash:/etc/postfix/sender_canonical

Nun wird noch eine Datenbank generiert, in welcher postfix das Passwort nachschlagen kann:

Wir erstellen also mit folgendem Befehl eine neue Datei:

sudo touch /etc/postfix/sasl_password

In diese schreiben wir das Passwort nach folgendem Muster:

mail.gmx.net mail.gmx.net:passwort

Bis jetzt ist das aber erst eine Textdatei und noch keine Datenbank. Also generieren wir rasch eine Datenbank:

sudo postmap /etc/postfix/sasl_password

und starten noch postfix neu:

sudo /etc/init.d/postfix restart

Absender setzen

Damit GMX nun glaubt, dass man wirklich ein richtiger Mailserver ist muss man noch eine Absenderadresse stetzen.

Dies klingt wahrscheindlich komplizierter als es ist. Wir erstellen einfach eine Datei /etc/postfix/sender_canonical und schreiben da den Absender nach folgendem Muster rein:

benutzer email.adresse@gmx.net

Nun heisst es nochmal eine Datenbank erzeugen und den Server wieder neustarten:

sudo postmap /etc/postfix/sender_canonical
sudo /etc/init.d/postfix restart

Und schon ist postfix bereit! War doch ganz einfach :-)

Das Starten

Nun muss man nur noch einen Cron-Job generieren, der zum Beispiel alle fünf Minuten den oder die gewünschten Server pingen. Wenn der Server nun nicht erreichbar sein sollte, so kann man über das Terminal mit

mail -s "testbetreff" email@addresse.de < textdatei.txt

ein eMail an eine beliebige Person senden.

Bei mir pingt ein Cron-Job alle 5 Minuten meine Server mit folgendem Befehl:

ping -c 1 compr00t.5x.to > /dev/null

Zum Schluss

Das ganze läuft nun so auf einem Linux-Server und meldet mir immer alle 5 Minuten, wenn ein von mir überwachter Computer amok läuft!

  • Dirk Deimeke

    Wirf mal einen Blick auf nullmailer. Der ist deutlich schlanker als Postfix und vermutlich für Deine Aufgabe besser geeignet.

  • http://encodingit.ch admin

    @dirk: dank dir für den tipp.
    ich werd ihn mir mal anschauen, bin jedoch auch nicht unzufrieden mit postfix :-)

    grz

  • Timo Ostrowsky

    Da ich eine Scripting-Niete bin…
    Besteht die Möglichkeit das Du mir den Teil im CronJob per E-Mail zukommen lässt? Ich habe zwei DynDNS-Adressen die ich gerne damit überprüfen würde. Und denke das es mit Deiner Lösung super klappen würde!
    Danke!

  • http://encodingit.ch Patrick

    Es gibt kein Script oder so. Alles was der CronJob macht, ist einen Server pingen und im Falle eines Fehlers (unerreichbarkeit) eine eMail an den root senden.

    ping -c 1 compr00t.5x.to > /dev/null

    Dies ist also das ganze “Script”, was du brauchst.

    grz

  • dummy

    eine gute Idee, gefällt mir, thx!
    werde damit meine Server überwachen…