Autorestart Zabbix Server service

25 02 2008

Σήμερα βρήκα τον Zabbix server να μην τρέχει έχοντας error στο log file του.

Κανένα πρόβλημα όσο αφόρα το Zabbix, αλλά ήταν όλο το σαββατοκύριακο κάτω 😦 .

Αποφάσισα λοιπόν να φτιάξω ένα script με το οποίο να ελέγχω την κατάσταση του Zabbix και να ενεργεί ανάλογα με την κατάσταση του.

Το παρακάτω script μπορείτε να το χρησιμοποιήσετε και για αλλά services, με μερικές τροποποιήσεις 😉 φυσικά:

###################################################
# # Check if zabbix server is running. #
# # If running add in logfile ” {DATE} {TIME}Zabbix Server Running #
# # If zabbix server is not running restart zabbix server service #
# # by Nikos Koutelieris mailto: n.koutelieris [at] gmail.com #
###################################################
!/bin/bash
LOGDATE=`date +%d-%m-%y__%k:%M`
logfile=/var/log/zabbix/zabbix_check.log
echo “$LOGDATE – Zabbix_Server Checker Ver.1 ############ ” >> $logfile
stopzabbixserver()
{
/etc/init.d/zabbix-server stop
}
startzabbixserver()
{
DATE=`date +%d%m%y_%k:%M`
stopzabbixserver
echo ” $DATE – Zabbix server is down, restart server…” >> $logfile
/etc/init.d/zabbix-server start
}
checkpid()
{
LOGDATE=`date +%d-%m-%y__%k:%M`
ps –User zabbix |grep zabbix_server
if [ $? != 0 ]
then
echo ” $LOGDATE – Zabbix Server Not Running” >> $logfile
startzabbixserver
else
echo ” $LOGDATE – Zabbix Server Running Normal” >> $logfile
fi
}
checkpid

το παραπάνω script το έκανα save μέσα στον φάκελο /bin με το όνομα zabbix_check.sh

το έκανα εκτελέσιμό δίνοντας από τερματίκο με root access

chmod +x /bin/zabbix_scheck.sh

και πήγα και πρόσθεσα μέσα στο crontab του root το παρακάτω για να τρέχει ανά 5 λεπτά:

*/5 * * * * /bin/zabbix_check.sh

#######_παρατηρήσεις, όπως πάντα καλοδεχούμενες._#######

Nk.