Mail Problem

So Hobby Admins stoßen immer mal wieder auf neue Probleme, vor allen Dingen wenn man Lösungen mit irgendwelchen Anbietern umsetzt. Ich verschicke seit fast zwei Jahren Mails von meinem NAS oder auch von meinen Servern an einen EMail-Dienst.

https://forum.frank-mankel.org/topic/705/mail-vom-nas-verschicken

Das funktioniert seit ein paar Tagen nicht mehr, da die Mails als SPAM geflaggt werden. Vieles versucht, Umleitung rausgenommen, anderen Dienst als Ziel usw. Problem blieb aber für mich nicht lösbar. Anders ausgedrückt, ich war unzufrieden.

Der Plan stand, es musste eine andere Lösung her. Ich brauchte den Rat von einem Profi und Nico meinte ganz trocken - mit checkmk 

Rest-Server

Worum geht es denn? Ich benutze einen Rest-Server zur Sicherung von Backups mit dem Tool Restic. Dieser Server hat dann früher die Mails verschickt. Ok, das soll jetzt ersetzt werden mit checkmk.

checkmk läuft auf meinem Haupt-PC in einem Docker Container. Dort soll das jetzt überwacht werden. Da schaue ich regelmäßig rein, so das ich dann auch zeitnah mitbekomme, wenn es mal irgendwo klemmt.

Da der Rest-Server sowieso mit checkmk überwacht wird, sollte das relativ einfach umzusetzen sein. Ok, das war etwas optimistisch, es hat was länger gedauert bis ich alles verstanden hatte.

Lösung

Ich hatte erst ein wenig mit den Plugins rum gespielt. Da bekam ich aber nicht wirklich was ans Laufen.

2d0d3cbc-1e68-42ff-80ed-b9ebcf5d5db8-image.png

Also die Dokumentation von checkmk durchsuchen.... Die ist übrigens vorbildlich! Nach einiger Zeit war klar, ich brauche lokale Checks (Scripte) dafür.

https://docs.checkmk.com/latest/de/localchecks.html

Das mit den Plugins hätte ich auch direkt lassen können, wenn ich die Nachricht vom Nico vernünftig gelesen und verstanden hätte :)

Ins checkmk integrieren über einen selbstgeschriebenen Check

Ok, wir müssen auf dem Server Scripte erstellen, die das entsprechend überwachen und dann eine Meldung erzeugen, die der checkmk Agent lesen kann und dann am checkmk Server angezeigt wird.

Die Scripte kommen nach

/usr/lib/check_mk_agent/local

Dann spielt man ein wenig mit dem Beispielscript der Dokumentation, bis man es angezeigt bekommt.

#!/bin/sh
echo "0 myservice - OK: This is my custom output"

Auf der checkmk Instanz muss man jetzt folgendes machen.

07856181-1120-4c83-93cc-7f70d274d52c-image.png

Das dritte Icon von links bringt uns zur Übersicht der Services.

c32208e4-76b3-4340-bcb4-43b7a63a3a39-image.png

Der Service erscheint hier nach einem Automatic refresh, wenn er nicht schon erkannt wurde. Dann kann man ihn ins Monitoring übernehmen - fertig.

Ok, was sehen wir auf dem Screenshot? Der erste Dienst hat eine Warnung, weil kein File in den letzten 24 Stunden erstellt wurde. Also ein Problem, wir müssen nachsehen! War in diesem Fall einfach, ich hatte gestern den Crontab abgeschaltet ;)

Bei den anderen Diensten ist der Check noch nicht integriert, die geben mir nur die Daten vom letzten Backup aus. Und hier das Script, so als erste Version.

#!/bin/sh

dir=/mnt/HC_Volume_XXXXXX/rest-server/forum/snapshots
cd $dir

# Letztes File ermitteln
file=`ls -t1  |  head -n 1`

# Stat ausgeben
stat=`stat -c %y $file` 
       
# Wir checken ob ein File in den letzten 24 Stunden geändert wurde
if find * -type f -mtime 0 | grep -q .

then
# wenn ja, ein File wurde in den letzten 24 Std.  geändert, dann echo....
echo "0 Backup_Forum - Backup Forum - ${stat}"


else
# wenn kein File in den letzten 24 Std. geändert wurde, geben wir eine Warnung aus.
echo "1 Backup_Forum - Backup Forum"
fi 

Danke Nico!!

Mehr denn je, man muss Lösungen mit eigenen Mitteln erstellen!

Quelle: https://forum.frank-mankel.org