Clark's Home page

Tecnicismi vari di un Sysadmin Linux ma anche qualcosa della sua vita

check_connection per heartbeat —

Versione per heartbeat

Per avere la sicurezza che il nodo principale sia su e in caso contrario che il secondario si elegga si deve in qualche modo controllare che la connessione a internet esista.
Questo sicuramente non è il modo più pulito e migliore però ragionando è credo il più semplice e pratico, in effetti se non si può navigare è ragionevole presumere che la connessione sia interrotta, a questo punto si può far partire il nodo secondario che dirotterà tutto il traffico sulla linea di backup.
lo script di seguito si avvale di un plugin di nagios

#!/bin/bash -x
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib
## some variables
F_HOST=www.google.com
S_HOST=www.amazon.com
T_HOST=www.corriere.it
CHECK=”/usr/lib/nagios/plugins/check_http -w 5 -c 10″
HEART=”heartbeat”

hbalive=0
netalive=0

if ps ax | grep -v grep | grep $HEART > /dev/null

then
echo “heartbeat gira”

hbalive=1
fi

$CHECK $F_HOST || $CHECK $S_HOST || $CHECK $T_HOST
if [ $? == 0 ]
then
netalive=1
fi
echo $hbalive $netalive

###se ( hbalive=1  && netalive=0) -> heartbeat stop
###se ( hbalive=0 && netalive=1) -> heartbeat start
### se ambedue sono  a 0 (rete giu’ heartbeat giu’) o a 1 (rete su heartbeat su) non bisogna fare nulla
if [ $hbalive -eq  $netalive ]
then
echo “tutto ok”
exit 0
fi
### se heartbeat e’ giu a seguito di normale down di rete allora deve ripartire se la rete e’ attiva
if [ $hbalive -lt  $netalive ]
then
/etc/init.d/heartbeat start
fi
### se ucarp e’ su e la rete e’ giu deve fermarsi per fare partire lo slave
if [ $hbalive -gt  $netalive ]
then
/etc/init.d/heartbeat stop
exit 0
fi

Ripeto non sarà la cosa più pulita e stilisticamente perfetta della terra però il suo lavoro lo fa.


Categorised as: Cluster | Linux | Networking | Script | Sistemi operativi | Work

Comments are disabled on this post


Comments are closed.