Auteur Topic: [Handleiding] Watchdog voor Mailserver  (gelezen 3365 keer)

Offline raptile

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 66
  • -Ontvangen: 131
  • Berichten: 1.263
[Handleiding] Watchdog voor Mailserver
« Gepost op: 13 oktober 2012, 20:10:55 »
Laatst kwam ik er achter dat mijn mail niet werd verstuurd omdat mijn mailserver down was.

Om dit te voorkomen heb ik een script geschreven die controleerd of de mailserver UP of DOWN is.

Indien de mailserver Down is zal de server een schop krijgen en als de schop succesvol is wordt er een mailtje naar je gestuurd met daarin de laatste X aantal regels uit /var/log/messages.


Het script ziet er als volgt uit:
#!/bin/sh

LOGFILE=/var/log/messages                                       # Logfile
MSGUP="De mailserver is UP!"                                    # Bericht als de mailserver UP is
MSGDOWN="De mailserver is DOWN!"                                # Bericht als de mailserver DOWN is
MSGRECOVER="De mailserver leeft weer"                           # Bericht als de mailserver weer UP is na een herstart
MSGSTILLDOWN="Het herstarten van de mailserver is mislukt"      # Bericht als de mailserver na het herstart commando nog steeds down is
PFSTART="/volume1/@appstore/MailServer/sbin/postfix start"      # Start Postfix commando

FROM=VANMIJ@DOMEIN.NLl                              # Van wie moet de mail afkomstig zijn
TO=VOORJOU@DOMEIN.NL                                          # Naar wie moet er een mail verstuurd worden
SUBJECT="Mailserver-watchdog: Mailserver restarted - $(date)"   # Wat moet het onderwerp van de mail zijn
LOGNUM="40"                                                     # Aantal regels messages logfile dan in de mail moet komen te staan

# controleer of de Mailserver UP of DOWN is.
if [ "$( netstat -an | grep  LIST | grep smtp )" ]; then
        # Als de mailserver UP is, laat dit dan weten in de logfile.
                echo $MSGUP >> $LOGFILE
else
        # Als de mailserver DOWN is, laat dit dan weten en herstart de mailserver
                echo $MSGDOWN >> $LOGFILE
                $PFSTART >> $LOGFILE
        # Doe 5 seconden niets, controleer of de mailserver nu wel up is
                sleep 5
                if [ "$( netstat -an | grep  LIST | grep smtp )" ]; then
                        # Als de mailserver nu wel UP is, laat dit weten in de lofgile en stuur een e-mail dat de mailserver weer UP is.
                                echo $MSGRECOVER >> $LOGFILE
                        # Stuur een mailtje dat de server weer up is
                                #HEADERS
                                echo "from: $FROM" > ./mail
                                echo "to:$TO" >> ./mail
                                echo "subject:$SUBJECT" >> ./mail

                                #BODY
                                echo "Last $LOGNUM lines from Messages log:" >> ./mail
                                tail -n $LOGNUM /var/log/messages >> ./mail
                                echo >> ./mail
                                echo >> ./mail
                                echo "Good luck troubleshooting!" >> ./mail

                                #MAIL
                                cat ./mail | sendmail -t
                                rm -f ./mail
                else
                        # Als de herstart niet heeft geholpen, vermeld dit dan in de logfile
                                echo $MSGSTILLDOWN >> $LOGFILE
                fi
fi

Bij mij staat het script in:
/opt/home/

maak het script aan:
vi mailserver_check.sh
plak bovenstaand script in het mailserver_check.sh bestand en pas de waarden aan van je mail adres e.d.

Zorg dat de rechten goed staan zodat het script uitgevoerd kan worden:
chmod 755 mailserver_check.sh

Je kunt het script zo uitvoeren:
./mailserver_check.sh

Dit script kun je in je crontab plaatsen om er voor te zorgen dat dit script bijvoorbeeld elk uur een keer wordt uitgevoerd.

Hoe crontab werkt lees je op de site van wizjos

vi /etc/crontab

Mijn crontab entry ziet er zo uit:
*       */1       *       *       *       root    /opt/home/mailserver_check.sh

crontab herstarten zodat de controle gelijk in gaat:
/usr/syno/etc/rc.d/S04crond.sh stop
/usr/syno/etc/rc.d/S04crond.sh start
If UNIX isn\'t the solution, you\'ve got the wrong problem...

Is RAID hetzelfde als een backup?

Heeft het antwoord van een gebruiker je geholpen met het oplossen van je probleem?
Geef hem/haar een bedankje door op de bedankt knop te drukken!

Offline Robert Koopman

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 271
  • -Ontvangen: 1801
  • Berichten: 10.981
    • http://www.dwvbb.nl
Re: [Handleiding] Watchdog voor Mailserver
« Reactie #1 Gepost op: 13 oktober 2012, 21:26:33 »
Maar waarom was de mailserver down vraag ik mij af.
Dat hoort toch niet?
RS812+ : 3*WD60EFPX 6.2.4-25556 Update 7 SHR
RS814+ : 3*WD30EFRX 7.1.1-42962 Update 6 Btrfs

Offline raptile

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 66
  • -Ontvangen: 131
  • Berichten: 1.263
Re: [Handleiding] Watchdog voor Mailserver
« Reactie #2 Gepost op: 13 oktober 2012, 22:15:12 »
Citaat van: "Robert Koopman"
Maar waarom was de mailserver down vraag ik mij af.
Dat hoort toch niet?

Dat weet ik dus ook niet vandaar dit script inclusief logging.
Wie weet kom ik er de volgende keer wat sneller achter.

Ik ben bezig met het opzetten van mn eigen mailserver en moet e.e.a. testen dus dit gebeurd met een test email domein.

Mn gewone mail loopt nog via een colocatie.

Maar ik heb het vermoeden dat het komt door zarafa aangezien deze nog in beta is of omdat ik zelf vergeten was de mailserver te activeren na het aanpassen van een aantal config files.

Maar het hebben van watchdogs is voor mij een prettig gevoel.
Is alles UP, is er niets aan de hand. Is er iets DOWN dan wordt het proces herstart en wordt er mail verstuurd met logging zodat ik kan onderzoeken wat er mis is gegaan waardoor een proces DOWN is.

Het is dus een stukje (hopelijk onnodige) monitoring en dat bevalt me wel :)
If UNIX isn\'t the solution, you\'ve got the wrong problem...

Is RAID hetzelfde als een backup?

Heeft het antwoord van een gebruiker je geholpen met het oplossen van je probleem?
Geef hem/haar een bedankje door op de bedankt knop te drukken!

Offline GNOE Inc.

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 6
  • Berichten: 43
Re: [Handleiding] Watchdog voor Mailserver
« Reactie #3 Gepost op: 09 december 2012, 14:23:54 »
Citaat van: "raptile"
Dat weet ik dus ook niet vandaar dit script inclusief logging.
Wie weet kom ik er de volgende keer wat sneller achter.

FYI,

Dit komt door een bug in Dovecot (TimeMovedBackwards). Door het gebruik van de automatische tijd aanpassing treedt deze bug op. Dit was te ondervangen door de automatische tijd synchronisatie (tijdelijk) uit te zetten.

Vandaag heb ik de tijdsynchro functie weer aangezet en het lijkt erop dat het inmiddels is opgelost (sinds update  DSM 4.1-2661).

Verder info is te vinden op: http://forum.synology.com/enu/viewtopic.php?f=132&t=56081&start=90
Wij Weten Alles Van Niets ......


 

VERPLAATST: Shared Folder voor Cloudstation Shared Sync

Gestart door Robert KoopmanBoard Officiële Packages

Reacties: 0
Gelezen: 1512
Laatste bericht 03 januari 2017, 12:56:24
door Robert Koopman
VERPLAATST: Hoe precies de database connectie voor een CMS maken?

Gestart door BirdyBoard Web Station

Reacties: 0
Gelezen: 761
Laatste bericht 08 augustus 2017, 21:28:49
door Birdy
IP-bereik modem/router voor NAS

Gestart door sinoleesBoard Windows

Reacties: 8
Gelezen: 1893
Laatste bericht 02 november 2017, 14:46:40
door Ben(V)
DSDPlayer voor x86_64 nassen

Gestart door GrofwegBoard Logitech Media Server

Reacties: 0
Gelezen: 3912
Laatste bericht 23 december 2017, 10:10:09
door Grofweg
The Force stelt zich voor | planning voor de inrichting van de NAS

Gestart door The ForceBoard The lounge

Reacties: 7
Gelezen: 2899
Laatste bericht 25 september 2014, 11:48:10
door The Force