Pour monitorer la disponibilité d’un hôte et/ou de services, on installe mon :
apt-get install mon
mon prévient d’un problème via syslog, e-mail ou exécute un script donné. Il peut paramétrer chaque alerte selon plusieurs critères :
- heure/jour de la semaine
- combien de fois un problème doit être signalé
Pour connaître son statut, on utilise la commande monshow :
<serveur>:~# monshow server: localhost time: Thu Jul 23 17:15:38 2009 state: scheduler running All systems OK
Le fichier de configuration de l’application se trouve dans /etc/mon/mon.cf
A présent, je vais vous présenter un exemple de configuration de mon dans lequel vous remarquerez entre autres la possibilité de “prendre les ressources” indisponibles du serveur monitoré. Cela se fait au moyen du service heartbeat qui fera bientôt l’objet d’un article détaillé. Sachez juste pour le moment qu’il faut un deuxième serveur qui passera en production lorsqu’il remarquera une défaillance de son…voisin. Car oui, toute l’astuce réside dans le fait de monitorer son voisin plutôt que de se monitorer soi-même !
maxprocs = 20
histlength = 100
randstart = 60s
authtype = getpwnam
hostgroup ADSL 123.123.123.123
hostgroup SRV-TEST 123.123.123.123
# On surveille le routeur du fournisseur d'acces
watch ADSL
service ping
interval 5s
monitor ping.monitor
period wd {Mon-Sun}
alert mail.alert -S "Votre routeur ADSL est down !" votre_email
upalert mail.alert -S "Votre routeur ADSL est up !" votre_email
alert hb_standby
alertafter 5
alertevery 10m
# On surveille le serveur
watch SRV-TEST
# On surveille le protocole SMTP via Postfix
# En cas de probleme on recupere les ressources via heartbeat
service postfix
interval 5s
monitor smtp.monitor
period wd {Mon-Sun}
alert mail.alert -S "Le serveur mail ne repond pas" votre_email
alert hb_takeover
upalert mail.alert -S "Le serveur mail repond de nouveau" votre_email
alertafter 2
alertevery 10m
# On surveille le protocole HTTP via Squid
# En cas de probleme on recupere les ressources via heartbeat
service proxy
interval 5s
monitor http.monitor -p 8080 -u 'http://www.google.fr/'
period wd {Mon-Sun}
alert mail.alert -S "Le proxy ne repond pas" votre_email
alert hb_takeover
upalert mail.alert -S "Le proxy repond de nouveau" votre_email
alertafter 4
alertevery 10m
# On surveille si le port TCP 10443 est ouvert (Reverse Proxy)
# En cas de probleme on recupere les ressources via heartbeat
service reverse_proxy
interval 5s
monitor tcp.monitor -p 10443
period wd {Mon-Sun}
alert mail.alert -S "Le reverse proxy ne repond pas" votre_email
alert hb_takeover
upalert mail.alert -S "Le reverse proxy repond de nouveau" votre_email
alertafter 6
alertevery 10m