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!