III.2.1.3 MON
(Service Monitoring Daemon)
Heartbeat surveille l'état du système mais pas
des services. Mon viendra aiguiser la surveillance jusqu'au niveau service.
III.2.1.3.1 Installation de MON
Mon n'est pas dans l'arbre des paquets Centos. Il nous faudra
donc l'installer manuellement. Les étapes suivantes sont à
effectuer sur les serveurs primaire et secondaire. Récupérez le
package Mon à l'adresse suivante : http://www.kernel.org/software/mon/.
Puis le copier dans /etc/ha.d et enfin exécutez les commandes suivantes
pour l'installer.
# cd /etc/ha.d
# tar xzvf mon-1.2.0.tar.gz
# mv mon-1.2.0.tar.gz mon
De plus, Mon requiert quelques modules Perl externes. Vous
pouvez utiliser votre CPAN
(Compréhensive Perl Archive Network) que l'on peut
récupérer en utilisant les liens ci-dessous:
Ø Period
[http://search.cpan.org/org/CPAN/authors/id/P/PR/PRYAN/Period-1.20.tar.gz]
Ø Time::HiRes
[http://backpan.perl.org/authors/id/J/JH/JHI/Time-HiRes-1.91.tar.gz]
Ø Convert::BER
[http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Convert-BER-1.3101.tar.gz]
Ø Mon
[http://search.cpan.org/CPAN/authors/id/T/TR/TROCKIJ/Mon-0.11.tar.gz]

Décompressez les archives avec la commande tar xvzf
puis installez les modules en suivant la procédure suivante dans chacun
des dossiers crées.
# perl Makefile.pl
# make && make install
III.2.1.3.2 Configuration
Script démarrage
Nous allons maintenant voir comment configurer la surveillance
des services sur les serveurs avec Mon. Tout d'abord, nous allons avoir besoin
d'un script permettant à Mon de gérer l'état de Heartbeat,
permettant ainsi un passage des ressources en cas de non réponse d'un
service. Le dossier mon.alert contient un ensemble de scripts permettant
à Mon de générer des alertes en cas de défaillance
de services.
Créer le fichier ha-up-down.alert dans
/etc/ha.d/mon/mon.alert.
#!/bin/bash
# arrêt/démarrage du service heartbeat
HEARTBEAT="/etc/rc.d/init.d/heartbeat"
if [ "$9" = "-u" ]; then
$HEARTBEAT start
else
$HEARTBEAT stop
fi
# envoi d'un mail aux administrateurs (argument passé
par mon.cf)
/etc/ha.d/mon/alert.d/mail.alert $*
Le fichier /etc/ha.d/mon/mon.cf
Il est nécessaire de créer le fichier
mon.cf dans /etc/ha.d/mon. Ce fichier contient la liste des services que "mon"
doit surveiller et les actions résultantes de divers
évènements. L'exemple suivant montre comment surveiller
l'état d'un serveur (http, ftp) et basculer les ressources en cas de non
réponse.
# emplacement des fichiers de configuration/d'alerte/logs
cfbasedir = /etc/ha.d/mon/etc
alertdir = /etc/ha.d/mon/alert.d
mondir = /etc/ha.d/mon/mon.d
statedir = /etc/ha.d/mon/state.d
logdir = /var/log/
# type d'authentification
authtype = getpwnam
# le serveur à surveiller
hostgroup server 127.0.0.1
# les services à surveiller sur le serveur
watch servers
service http
interval 30s
monitor http.monitor
period wd {Mon-Sun}
# les actions en cas de panne/retour à la
normale
alert ha-up-down.alert -S "service httpd down !" \
simo@creolink.lan
upalert mail.alert -S "service httpd up !" \
simo@creolink.lan
# délai entre chaque alerte
alertevery 600s
service ftp
interval 30s
monitor ftp.monitor
period wd {Mon-Sun}
# les actions en cas de panne/retour à la
normale
alert ha-up-down.alert -S "service ftps down !" \
simo@creolink.lan
upalert mail.alert -S "service ftp up !" \
simo@creolink.lan
# délai entre chaque alerte
alertevery 600s
On peut alors démarrer mon en faisant
# /etc/ha.d/mon/mon
|